Restorepoint API (2.0)

Download OpenAPI specification:Download

The Restorepoint RESTful API allows you to trigger all of Restorepoint's operations programatically. Restorepoint's web interface uses the same API for all its operations. Everything you can do through the UI can be done through this API.

We are using swagger-codegen-cli (3.0.0 branch) to generate a Go client library for running end to end tests internally:

java -jar swagger-codegen-cli.jar generate --lang=go --input-spec=swagger.json --output=swagger

Authentication

The Restorepoint API supports cookie based authentication for its web interface and token based authentication for programmatic integrations.

Cookie

The Restorepoint web interface uses session cookies to authenticate API requests coming from a user's browser. Please use authentication tokens when integrating with the Restorepoint API programmatically.

Example header:

Cookie: session=abcde12345; Path=/; HttpOnly
Security Scheme Type API Key
Cookie parameter name: session

Token

To integrate with the Restorepoint API, please use the web interface to create API tokens. API requests via token should pass an Authorization header using the Custom prefix.

Example header:

Authorization: Custom qVUXmMhPsle3NVU...
Security Scheme Type API Key
Header parameter name: Authorization

Permissions

Lists required Permissions for each individual endpoint.

Please note: Whilst this authentication method is listed as an OpenID Connect authentication type, it is only used for the purposes of displaying the required permissions on each endpoint and is not a valid authentication method by itself.

  • ModifyDevice
  • BackupDevice
  • RestoreDevice
  • CommandDevice
  • ViewDeviceauth
  • ViewDevices
  • ListBackups
  • ViewBackup
  • ExportBackup
  • ModifyBackup
  • ViewLogs
  • ViewSyslogs
  • ViewSysadmin
  • UpdateSysadmin
  • ModifyUser
  • ViewUsers
  • ViewUserauth
  • ViewRoles
  • EditRoles
  • ModifyDiscovery
  • ListTemplates
  • ViewTemplate
  • ModifyTemplate
  • PushTemplate
  • ViewFirmware
  • ModifyFirmware
  • PushFirmware
  • ViewCredentials
  • ModifyCredentials
  • ModifyAssets
  • ViewAssets
  • ViewDomain
  • ModifyDomain
  • ViewRules
  • ModifyRules
  • ApplyRules
  • ViewPassrules
  • ModifyPassrules
  • ViewRadius
  • ModifyRadius
  • ViewReports
  • ModifyReports
  • ArchivePlatform
  • ViewSchedule
  • ModifySchedule
  • ViewReportAssets
  • ViewReportCompliance
  • ViewReportAdmin
  • ViewReportConfig
  • ViewReportBackups
  • ViewReportDashboard
  • ViewReportMonitor
  • AddDevice
  • DeleteDevice
  • ExportDevices
  • ExportUsers
  • ModifyLabels
  • ModifyTokens
  • OpenTerminal
Security Scheme Type OpenID Connect
Connect URL https://ignore.example.com

Errors

The API uses standard HTTP status codes to indicate the success or failure of an API call. The body of the response will be JSON in the following format:

{
  "message": "Input validation failed",
  "errors": {
    "Foo": [
      "Foo must not be left blank",
      "Foo needs to be at least four characters"
    ],
    "Bar.Foo": [
      "Member fields can get individual errors"
    ],
    "Baz[0]": [
      "Array can have entries get individual errors"
    ],
    "Baz[1]": [
      "Array can have entries get individual errors"
    ],
    "Bar.Foo.Baz[123].Quoo": [
      "Example of a nested array error"
    ]
  }
}

The errors field can give additional details for parts of a request that led to the current error.

Pagination

Most endpoints that return a list of entities such as devices, credentials, users, etc. support pagination. Please use limit and offset query parameters to specify the range of records you would like to retrieve. Paginated endpoints will return the requested offset, limit and total in the response JSON.

{
  offset: 123,
  limit: 100,
  total: 500,
  data: []
}

Rate limiting

TODO: Add some blurb on how we handle rate limiting.

Schedules

In order to express periodic events, Restorepoint uses a cron-like syntax.

A schedule expression consists of seven parts:

  ┌───────────── minute (0 - 59)
  │ ┌───────────── hour (0 - 23)
  │ │ ┌───────────── day of the month (1 - 31)
  │ │ │ ┌───────────── month (1 - 12)
  │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday) or
  │ │ │ │ │               day of the week / every X weeks
  │ │ │ │ │
  │ │ │ │ │
0 * * * * * *

As an extension to the normal crontab syntax Restorepoint will interpret a step (indicated by a / character) in the day of the week section as the number of weeks between scheduled events. For example the day of week section 4/5 will cause the event to trigger every 5 weeks on the 4th day of the week (Thursday).

Please note: Even though the first and last part are ignored, they have to be provided regardless!

Encryption

When starting up Retorepoint, the data partition will be encrypted. Programmatic access to the API via token will not be possible until Restorepoint has decrypted its encrypted partition.

All endpoints will return 503 Service Unavailable with a JSON payload as shown below until the correct encryption password has been sent via POST /login and decryption has finished.

{
  "EncryptionStatus": "Encrypted"
}

EncryptionStatus will be set to Decrypting during decryption and could end up being set to Failure in case it was impossible to decrypt the encrypted data partition.

Restorepoint Unavailable

Whenever an installation or update is requested, the box is unable to fulfill any API request.

All endpoints will return 503 Service Unavailable with a JSON payload as shown below until the server finishes installing/updating.

{
  "Status": "Installing"
}
{
  "Status": "Updating"
}

Agent

Agents allow a Restorepoint appliance to manage devices located on a remote or otherwise disjointed network, not directly routable by Restorepoint, without the need of complex firewall changes, Network Address Translation, or VPNs. For instance, a Service Provider can set up a central Restorepoint appliance and deploy agents on customer networks, enabling backups of devices on remote sites.

An Agent can be deployed as a Virtual or Hardware appliance on the remote network; the Agent provides faster operations by locally performing all the tasks that would typically require extensive network interaction. Configurations, logs, etc. are processed locally by the agent, and uploaded to the master Restorepoint appliance.

Please note: Agents are only available with an Enterprise licence.

List agents

Retrieve all agents

Authorizations:
CookieTokenPermissions (ViewDevices)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

filter_op
string
Enum: "and" "or"

Filter operation to use, either "and" or "or"

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

domain_id[]
Array of integers

List of domain IDs to include in the results

connected
boolean

Connected status to include in the results

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

filter_op
string
Enum: "and" "or"

Filter operation to use

Array of objects

The sorting parameters used to sort items

Array of objects (Agent)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "filter_op": [
    ],
  • "sort": [
    ],
  • "data": [
    ]
}

Create an agent

Create a new agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
ID
integer

Agent ID

DomainID
integer
Default: 0

ID of the Domain an agent belongs to (if any)

SecondaryToAgentID
integer

ID of an agent this agent is secondary to in a HA setup

Name
required
string

Agent name

Location
string

Location of the agent

StoragePolicy
string
Default: "Master"
Enum: "Master" "Agent" "Both"

Where to store backups

Email
string

Email of person responsible for the upkeep of the agent

DisconnectAlert
boolean
Default: false

Send an email alert if the agent goes offline. If the Email field is not filled in, the default notification address is used

ReconnectAlert
boolean
Default: false

Send an email alert if the agent comes back online. If the Email field is not filled in, the default notification address is used

DisableTFTP
boolean
Default: false

Expose TFTP service on Agent

DisableFTP
boolean
Default: false

Expose FTP service on Agent

ClientKey
string

Connecting agent needs to set this secret in order to connect. Only returned after creating the agent or when reseting the agent password.

Secondary
string

IP address of the secondary node in a HA setup

ResetKey
boolean
Default: false

Reset the client key. This will generate a new client key and return it in the response. The old client key will be invalidated.

Responses

Response Schema: application/json
ID
integer

Agent ID

DomainID
integer
Default: 0

ID of the Domain an agent belongs to (if any)

DomainName
string
Default: "Global"

Name of the Domain an agent belongs to. Defaults to "Global" if no domain is set

SecondaryToAgentID
integer

ID of an agent this agent is secondary to in a HA setup

Name
required
string

Agent name

Location
string

Location of the agent

StoragePolicy
string
Default: "Master"
Enum: "Master" "Agent" "Both"

Where to store backups

Email
string

Email of person responsible for the upkeep of the agent

DisconnectAlert
boolean
Default: false

Send an email alert if the agent goes offline. If the Email field is not filled in, the default notification address is used

ReconnectAlert
boolean
Default: false

Send an email alert if the agent comes back online. If the Email field is not filled in, the default notification address is used

DisableTFTP
boolean
Default: false

Expose TFTP service on Agent

DisableFTP
boolean
Default: false

Expose FTP service on Agent

Connected
boolean

Connection status of an agent

Address
string

IP address of an agent

Port
integer

Address' port of an agent

Version
string

Current build version of an agent

Secondary
string

IP address of the secondary node in a HA setup

LastSeen
string

Timestamp of last successful ping

ResetKey
boolean
Default: false

Reset the client key. This will generate a new client key and return it in the response. The old client key will be invalidated.

Request samples

Content type
application/json
{
  • "ID": 123,
  • "DomainID": 123,
  • "SecondaryToAgentID": 124,
  • "Name": "Agent Fox",
  • "Location": "DC 1 Rack 4",
  • "StoragePolicy": "Master",
  • "Email": "afox@restorepoint.com",
  • "DisconnectAlert": false,
  • "ReconnectAlert": false,
  • "DisableTFTP": false,
  • "DisableFTP": false,
  • "ClientKey": "Sunbreeze123",
  • "Secondary": "127.0.0.1",
  • "ResetKey": false
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DomainID": 123,
  • "DomainName": "Global",
  • "SecondaryToAgentID": 124,
  • "Name": "Agent Fox",
  • "Location": "DC 1 Rack 4",
  • "StoragePolicy": "Master",
  • "Email": "afox@restorepoint.com",
  • "DisconnectAlert": false,
  • "ReconnectAlert": false,
  • "DisableTFTP": false,
  • "DisableFTP": false,
  • "Connected": true,
  • "Address": "127.0.0.1",
  • "Port": 8443,
  • "Version": "20230216143235",
  • "Secondary": "127.0.0.1",
  • "LastSeen": "2021-01-18T23:59:59.999Z",
  • "ResetKey": false
}

Retrieve an agent

Retrieve a single agent

Authorizations:
CookieTokenPermissions (ViewDevices)
path Parameters
id
required
integer

Agent ID

Responses

Response Schema: application/json
ID
integer

Agent ID

DomainID
integer
Default: 0

ID of the Domain an agent belongs to (if any)

DomainName
string
Default: "Global"

Name of the Domain an agent belongs to. Defaults to "Global" if no domain is set

SecondaryToAgentID
integer

ID of an agent this agent is secondary to in a HA setup

Name
required
string

Agent name

Location
string

Location of the agent

StoragePolicy
string
Default: "Master"
Enum: "Master" "Agent" "Both"

Where to store backups

Email
string

Email of person responsible for the upkeep of the agent

DisconnectAlert
boolean
Default: false

Send an email alert if the agent goes offline. If the Email field is not filled in, the default notification address is used

ReconnectAlert
boolean
Default: false

Send an email alert if the agent comes back online. If the Email field is not filled in, the default notification address is used

DisableTFTP
boolean
Default: false

Expose TFTP service on Agent

DisableFTP
boolean
Default: false

Expose FTP service on Agent

Connected
boolean

Connection status of an agent

Address
string

IP address of an agent

Port
integer

Address' port of an agent

Version
string

Current build version of an agent

Secondary
string

IP address of the secondary node in a HA setup

LastSeen
string

Timestamp of last successful ping

ResetKey
boolean
Default: false

Reset the client key. This will generate a new client key and return it in the response. The old client key will be invalidated.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DomainID": 123,
  • "DomainName": "Global",
  • "SecondaryToAgentID": 124,
  • "Name": "Agent Fox",
  • "Location": "DC 1 Rack 4",
  • "StoragePolicy": "Master",
  • "Email": "afox@restorepoint.com",
  • "DisconnectAlert": false,
  • "ReconnectAlert": false,
  • "DisableTFTP": false,
  • "DisableFTP": false,
  • "Connected": true,
  • "Address": "127.0.0.1",
  • "Port": 8443,
  • "Version": "20230216143235",
  • "Secondary": "127.0.0.1",
  • "LastSeen": "2021-01-18T23:59:59.999Z",
  • "ResetKey": false
}

Update a agent

Update an agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Agent ID

Request Body schema: application/json
ID
integer

Agent ID

DomainID
integer
Default: 0

ID of the Domain an agent belongs to (if any)

SecondaryToAgentID
integer

ID of an agent this agent is secondary to in a HA setup

Name
required
string

Agent name

Location
string

Location of the agent

StoragePolicy
string
Default: "Master"
Enum: "Master" "Agent" "Both"

Where to store backups

Email
string

Email of person responsible for the upkeep of the agent

DisconnectAlert
boolean
Default: false

Send an email alert if the agent goes offline. If the Email field is not filled in, the default notification address is used

ReconnectAlert
boolean
Default: false

Send an email alert if the agent comes back online. If the Email field is not filled in, the default notification address is used

DisableTFTP
boolean
Default: false

Expose TFTP service on Agent

DisableFTP
boolean
Default: false

Expose FTP service on Agent

ClientKey
string

Connecting agent needs to set this secret in order to connect. Only returned after creating the agent or when reseting the agent password.

Secondary
string

IP address of the secondary node in a HA setup

ResetKey
boolean
Default: false

Reset the client key. This will generate a new client key and return it in the response. The old client key will be invalidated.

Responses

Response Schema: application/json
ID
integer

Agent ID

DomainID
integer
Default: 0

ID of the Domain an agent belongs to (if any)

DomainName
string
Default: "Global"

Name of the Domain an agent belongs to. Defaults to "Global" if no domain is set

SecondaryToAgentID
integer

ID of an agent this agent is secondary to in a HA setup

Name
required
string

Agent name

Location
string

Location of the agent

StoragePolicy
string
Default: "Master"
Enum: "Master" "Agent" "Both"

Where to store backups

Email
string

Email of person responsible for the upkeep of the agent

DisconnectAlert
boolean
Default: false

Send an email alert if the agent goes offline. If the Email field is not filled in, the default notification address is used

ReconnectAlert
boolean
Default: false

Send an email alert if the agent comes back online. If the Email field is not filled in, the default notification address is used

DisableTFTP
boolean
Default: false

Expose TFTP service on Agent

DisableFTP
boolean
Default: false

Expose FTP service on Agent

Connected
boolean

Connection status of an agent

Address
string

IP address of an agent

Port
integer

Address' port of an agent

Version
string

Current build version of an agent

Secondary
string

IP address of the secondary node in a HA setup

LastSeen
string

Timestamp of last successful ping

ResetKey
boolean
Default: false

Reset the client key. This will generate a new client key and return it in the response. The old client key will be invalidated.

Request samples

Content type
application/json
{
  • "ID": 123,
  • "DomainID": 123,
  • "SecondaryToAgentID": 124,
  • "Name": "Agent Fox",
  • "Location": "DC 1 Rack 4",
  • "StoragePolicy": "Master",
  • "Email": "afox@restorepoint.com",
  • "DisconnectAlert": false,
  • "ReconnectAlert": false,
  • "DisableTFTP": false,
  • "DisableFTP": false,
  • "ClientKey": "Sunbreeze123",
  • "Secondary": "127.0.0.1",
  • "ResetKey": false
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DomainID": 123,
  • "DomainName": "Global",
  • "SecondaryToAgentID": 124,
  • "Name": "Agent Fox",
  • "Location": "DC 1 Rack 4",
  • "StoragePolicy": "Master",
  • "Email": "afox@restorepoint.com",
  • "DisconnectAlert": false,
  • "ReconnectAlert": false,
  • "DisableTFTP": false,
  • "DisableFTP": false,
  • "Connected": true,
  • "Address": "127.0.0.1",
  • "Port": 8443,
  • "Version": "20230216143235",
  • "Secondary": "127.0.0.1",
  • "LastSeen": "2021-01-18T23:59:59.999Z",
  • "ResetKey": false
}

Delete an agent

Delete an agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Agent ID

Responses

Response samples

Content type
application/json
{
  • "message": "Agent does not exist",
  • "errors": {
    }
}

Get agent info

Get agent system info

Authorizations:
path Parameters
id
required
integer

Agent ID

Responses

Response Schema: application/json
Release
string

Current operating system release

Build
string

Timestamp of current agent build

object

Memory statistics in bytes

Load
Array of numbers <float>

1, 5, and 15 minute load averages as reported by uptime

Uptime
integer

Time since the appliance was last started in seconds

object

Disk usage (all values in bytes)

Response samples

Content type
application/json
{
  • "Release": "centos-release-8.2-2.2004.0.2.el8.x86_64",
  • "Build": "2021-01-18T23:59:59.999Z",
  • "Memory": {
    },
  • "Load": [
    ],
  • "Uptime": 123456,
  • "Storage": {
    }
}

Agent/Debug

Endpoints that can aid in debugging agent problems.

Start debug logging

Enables debug logging on agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Agent ID

Responses

Stop debug logging

Disables debug logging on agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Agent ID

Responses

Get agent debug state

Get agent debug state

Authorizations:
path Parameters
id
required
integer

Agent ID

Responses

Response Schema: application/json
IsDebug
boolean

True if debug mode is active on agent

Response samples

Content type
application/json
{
  • "IsDebug": true
}

View debug log

Get agent debug log as a text file

Authorizations:
path Parameters
id
required
integer

Agent ID

Responses

Response Schema: text/plain
string

The debug log content as a plain text file

Agent/Remote

Start and stop remote support access on agents.

Start remote access

Enables remote access on agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Agent ID

Responses

Response Schema: application/json
Port
integer

Port number for remote access

Response samples

Content type
application/json
{
  • "Port": 50000
}

Stop remote access

Stop remote access on agent

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Agent ID

Responses

Command

Restorepoint allows you to send a CLI command to a device or group of devices and capture the output of the command. This is a very convenient tool to perform a task concurrently on a group of devices, such as changing the administrator password.

Using variables

Commands can be parameterised for different devices, using the format $parameter$, where $ is the Variable Delimiter you've set for your Command. For instance, to change the admin password for a number of ScreenOS devices, select the devices and enter the command:

set admin password $password$

When running a parameterised command against devices, you have to pass a replacement value for each device.

Note: A parameter can only consist of letters, numbers, and the underscore character _. If the replacement string contains escape sequences (such as \n), they must be double-escaped (\\n).

List commands

Retrieve all commands

Authorizations:
CookieTokenPermissions (CommandDevice)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Command)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a command

Create a new command

Authorizations:
CookieTokenPermissions (CommandDevice)
Request Body schema: application/json
Name
required
string

Command name

Description
string

Command description

Type
string
Default: "command"
Enum: "command" "lua"

The type of command to run

Timeout
integer
Default: 30

Timeout in seconds. A command will automatically be aborted once the timeout is reached

KeepInput
boolean
Default: false

Keep commands sent to the device in the response

PluginKey
string

A Plugin identifier for the device type that this command is restricted to. If left blank, a command can be run against any device which can have unintended consequences.

Command
required
string

The command or Lua function to run on one or more devices

VariableDelimiter
string
Default: "$"
Enum: "$" "#" "_" "*"

Delimiter to use for variables

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Responses

Response Schema: application/json
ID
integer

Command ID

Name
required
string

Command name

Description
string

Command description

Type
string
Default: "command"
Enum: "command" "lua"

The type of command to run

Timeout
integer
Default: 30

Timeout in seconds. A command will automatically be aborted once the timeout is reached

KeepInput
boolean
Default: false

Keep commands sent to the device in the response

PluginKey
string

A Plugin identifier for the device type that this command is restricted to. If left blank, a command can be run against any device which can have unintended consequences.

PluginName
string

User friendly name of the plugin this command is restricted to

Command
required
string

The command or Lua function to run on one or more devices

VariableDelimiter
string
Default: "$"
Enum: "$" "#" "_" "*"

Delimiter to use for variables

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Request samples

Content type
application/json
Example
{
  • "Name": "Show version",
  • "Description": "Retrieve Cisco IOS version",
  • "Type": "command",
  • "PluginKey": "cisco_ios",
  • "Command": "show version"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Show version",
  • "Description": "Retrieve a version from a Cisco device",
  • "Type": "command",
  • "Timeout": 30,
  • "KeepInput": true,
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "Command": "hostname -b $hostname$",
  • "VariableDelimiter": "$",
  • "ConcatenateMultiple": true
}

Perform a command ad-hoc, without saving the command into the database

Perform a command ad-hoc, without saving the command into the database

Authorizations:
CookieTokenPermissions (CommandDevice)
Request Body schema: application/json
Name
required
string

Command name

Description
string

Command description

Type
string
Default: "command"
Enum: "command" "lua"

The type of command to run

Timeout
integer
Default: 30

Timeout in seconds. A command will automatically be aborted once the timeout is reached

KeepInput
boolean
Default: false

Keep commands sent to the device in the response

PluginKey
string

A Plugin identifier for the device type that this command is restricted to. If left blank, a command can be run against any device which can have unintended consequences.

Command
required
string

The command or Lua function to run on one or more devices

VariableDelimiter
string
Default: "$"
Enum: "$" "#" "_" "*"

Delimiter to use for variables

Array of objects

List of devices to perform a command on

Responses

Response Schema: application/json
Array of objects (Output)

List of outputs for the requested command executed on selected devices

errors
Array of strings

List of errors that occured when trying to execute the requested command on some of the selected devices

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ]
}

Retrieve a command

Retrieve a single command

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command ID

Responses

Response Schema: application/json
ID
integer

Command ID

Name
required
string

Command name

Description
string

Command description

Type
string
Default: "command"
Enum: "command" "lua"

The type of command to run

Timeout
integer
Default: 30

Timeout in seconds. A command will automatically be aborted once the timeout is reached

KeepInput
boolean
Default: false

Keep commands sent to the device in the response

PluginKey
string

A Plugin identifier for the device type that this command is restricted to. If left blank, a command can be run against any device which can have unintended consequences.

PluginName
string

User friendly name of the plugin this command is restricted to

Command
required
string

The command or Lua function to run on one or more devices

VariableDelimiter
string
Default: "$"
Enum: "$" "#" "_" "*"

Delimiter to use for variables

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Show version",
  • "Description": "Retrieve a version from a Cisco device",
  • "Type": "command",
  • "Timeout": 30,
  • "KeepInput": true,
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "Command": "hostname -b $hostname$",
  • "VariableDelimiter": "$",
  • "ConcatenateMultiple": true
}

Update a command

Update a command

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command ID

Request Body schema: application/json
Name
required
string

Command name

Description
string

Command description

Type
string
Default: "command"
Enum: "command" "lua"

The type of command to run

Timeout
integer
Default: 30

Timeout in seconds. A command will automatically be aborted once the timeout is reached

KeepInput
boolean
Default: false

Keep commands sent to the device in the response

PluginKey
string

A Plugin identifier for the device type that this command is restricted to. If left blank, a command can be run against any device which can have unintended consequences.

Command
required
string

The command or Lua function to run on one or more devices

VariableDelimiter
string
Default: "$"
Enum: "$" "#" "_" "*"

Delimiter to use for variables

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Responses

Response Schema: application/json
ID
integer

Command ID

Name
required
string

Command name

Description
string

Command description

Type
string
Default: "command"
Enum: "command" "lua"

The type of command to run

Timeout
integer
Default: 30

Timeout in seconds. A command will automatically be aborted once the timeout is reached

KeepInput
boolean
Default: false

Keep commands sent to the device in the response

PluginKey
string

A Plugin identifier for the device type that this command is restricted to. If left blank, a command can be run against any device which can have unintended consequences.

PluginName
string

User friendly name of the plugin this command is restricted to

Command
required
string

The command or Lua function to run on one or more devices

VariableDelimiter
string
Default: "$"
Enum: "$" "#" "_" "*"

Delimiter to use for variables

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Request samples

Content type
application/json
{
  • "Name": "Show version",
  • "Description": "Retrieve a version from a Cisco device",
  • "Type": "command",
  • "Timeout": 30,
  • "KeepInput": true,
  • "PluginKey": "cisco_ios",
  • "Command": "hostname -b $hostname$",
  • "VariableDelimiter": "$",
  • "ConcatenateMultiple": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Show version",
  • "Description": "Retrieve a version from a Cisco device",
  • "Type": "command",
  • "Timeout": 30,
  • "KeepInput": true,
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "Command": "hostname -b $hostname$",
  • "VariableDelimiter": "$",
  • "ConcatenateMultiple": true
}

Delete a command

Delete a command

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command ID

Responses

Response samples

Content type
application/json
{
  • "message": "Command does not exit",
  • "errors": {
    }
}

Perform command

Perform command

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command ID

Request Body schema: application/json
required
Array of objects

List of devices to perform a command on

Responses

Response Schema: application/json
Array of objects (Output)

List of outputs for the requested command executed on selected devices

errors
Array of strings

List of errors that occured when trying to execute the requested command on some of the selected devices

Request samples

Content type
application/json
{
  • "Devices": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ]
}

Command/Output

Logs from running scheduled commands with StoreLog enabled can be retrieved here.

List command outputs

Retrieve all outputs

Authorizations:
CookieTokenPermissions (CommandDevice)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

created_after
string
Example: created_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

created_before
string
Example: created_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the created date.

deviceid[]
Array of integers
Example: deviceid[]=123&deviceid[]=2875&deviceid[]=3

List of Device IDs to filter command outputs on.

command_id[]
Array of integers
Example: command_id[]=123&command_id[]=2875&command_id[]=3

List of Command IDs to filter command outputs on.

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
required
integer

The total number of items

object

The search parameters used to filter items

object

List of deviceIDs used to filter returned items

Array of objects

The sorting parameters used to sort items

Array of objects (Output)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "deviceid": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Retrieve a command output

Retrieve a single output

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command output ID

Responses

Response Schema: application/json
ID
integer

Command output ID

DeviceID
integer

ID of the Device this output was recorded for

DeviceName
string

Name of the Device this output was recorded for

CommandID
integer

ID of the Command this output was recorded for

CommandName
string

Name of the Command this output was recorded for

CommandScheduleID
integer

ID of the Command Schedule that triggered the recording of this output

CommandOutputGroupID
integer

ID of the Command Output Group this output is a part of

Created
string

Timestamp in RFC3339 format when the output was recorded

Output
string

The recorded output in plain text

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceID": 123,
  • "DeviceName": "My Device",
  • "CommandID": 123,
  • "CommandName": "Show version",
  • "CommandScheduleID": 123,
  • "CommandOutputGroupID": 123,
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Output": "Cisco Internetwork Operating System Software\nIOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA8, RELEASE SOFTWARE (fc1)\nCopyright (c) 1986-2006 by cisco Systems, Inc.\nCompiled Fri 12-May-06 17:19 by myl\nImage text-base: 0x80010000, data-base: 0x8056A000\n\nROM: Bootstrap program is C2950 boot loader\n\ncisco.example.com uptime is 3 days, 2 hours, 18 minutes\nSystem returned to ROM by power-on\nSystem restarted at 09:12:44 UTC Fri Feb 5 2021\nSystem image file is \"flash:c2950-i6q4l2-mz.121-22.EA8.bin\"\n\ncisco WS-C2950-24 (RC32300) processor (revision R0) with 21004K bytes of memory.\nProcessor board ID XXYYZZXXYYZZ\nLast reset from system-reset\nRunning Standard Image\n24 FastEthernet/IEEE 802.3 interface(s)\n\n32K bytes of flash-simulated non-volatile configuration memory.\nBase ethernet MAC Address: 00:1A:2F:94:6A:00\nMotherboard assembly number: 73-5781-14\nPower supply part number: 34-0965-01\nMotherboard serial number: XXYYZZXXYYZZ\nPower supply serial number: XXYYZZXXYYZZ\nModel revision number: R0\nMotherboard revision number: A0\nModel number: WS-C2950-24\nSystem serial number: XXYYZZXXYYZZ\nConfiguration register is 0xF\n"
}

Delete a command output

Delete a output

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command output ID

Responses

Response samples

Content type
application/json
{
  • "message": "Command output does not exit",
  • "errors": {
    }
}

Download a command output

Download a command output as a text file

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command output ID

Responses

Response Schema: text/plain
string

The command output as a plain text file

Response samples

Content type
application/json
{
  • "message": "Command output does not exit",
  • "errors": {
    }
}

Compare outputs

Compare two command outputs

Authorizations:
CookieTokenPermissions (CommandDevice)
Request Body schema: application/json
CommandOutputID1
integer

ID of the first command output to compare

CommandOutputID2
integer

ID of the second command output to compare

CommandOutputGroupID1
integer

ID of the first grouped command output to compare

CommandOutputGroupID2
integer

ID of the second grouped command output to compare

Responses

Response Schema: application/json
Diff
string

The diff as HTML

Request samples

Content type
application/json
{
  • "CommandOutputID1": 123,
  • "CommandOutputID2": 124,
  • "CommandOutputGroupID1": 123,
  • "CommandOutputGroupID2": 124
}

Response samples

Content type
application/json
{
  • "Diff": "32\n<div>Cisco Internetwork Operating System Software </div><div>IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA8, RELEASE SOFTWARE (fc1)</div><div>Copyright (c) 1986-2006 by cisco Systems, Inc.</div><div>Compiled Fri 12-May-06 17:19 by myl</div><div>Image text-base: 0x80010000, data-base: 0x8056A000</div><div>&nbsp;</div><div>ROM: Bootstrap program is C2950 boot loader</div><div>&nbsp;</div><div class=\"diffr\">cisco.example.com uptime is 3 days, 2 hours, 18 minutes</div><div>System returned to ROM by power-on</div><div>System restarted at 09:12:44 UTC Fri Feb 5 2021</div><div>System image file is &#34;flash:c2950-i6q4l2-mz.121-22.EA8.bin&#34;</div><div>&nbsp;</div><div>cisco WS-C2950-24 (RC32300) processor (revision R0) with 21004K bytes of memory.</div><div>Processor board ID XXYYZZXXYYZZ</div><div>Last reset from system-reset</div><div>Running Standard Image</div><div>24 FastEthernet/IEEE 802.3 interface(s)</div><div>&nbsp;</div><div>32K bytes of flash-simulated non-volatile configuration memory.</div><div>Base ethernet MAC Address: 00:1A:2F:94:6A:00</div><div>Motherboard assembly number: 73-5781-14</div><div>Power supply part number: 34-0965-01</div><div>Motherboard serial number: XXYYZZXXYYZZ</div><div>Power supply serial number: XXYYZZXXYYZZ</div><div>Model revision number: R0</div><div>Motherboard revision number: A0</div><div>Model number: WS-C2950-24</div><div>System serial number: XXYYZZXXYYZZ</div><div>Configuration register is 0xF</div><div>&nbsp;</div><div>&nbsp;</div>\n<div>Cisco Internetwork Operating System Software </div><div>IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA8, RELEASE SOFTWARE (fc1)</div><div>Copyright (c) 1986-2006 by cisco Systems, Inc.</div><div>Compiled Fri 12-May-06 17:19 by myl</div><div>Image text-base: 0x80010000, data-base: 0x8056A000</div><div>&nbsp;</div><div>ROM: Bootstrap program is C2950 boot loader</div><div>&nbsp;</div><div class=\"diffr\">cisco.example.com uptime is 3 days, 2 hours, 32 minutes</div><div>System returned to ROM by power-on</div><div>System restarted at 09:12:44 UTC Fri Feb 5 2021</div><div>System image file is &#34;flash:c2950-i6q4l2-mz.121-22.EA8.bin&#34;</div><div>&nbsp;</div><div>cisco WS-C2950-24 (RC32300) processor (revision R0) with 21004K bytes of memory.</div><div>Processor board ID XXYYZZXXYYZZ</div><div>Last reset from system-reset</div><div>Running Standard Image</div><div>24 FastEthernet/IEEE 802.3 interface(s)</div><div>&nbsp;</div><div>32K bytes of flash-simulated non-volatile configuration memory.</div><div>Base ethernet MAC Address: 00:1A:2F:94:6A:00</div><div>Motherboard assembly number: 73-5781-14</div><div>Power supply part number: 34-0965-01</div><div>Motherboard serial number: XXYYZZXXYYZZ</div><div>Power supply serial number: XXYYZZXXYYZZ</div><div>Model revision number: R0</div><div>Motherboard revision number: A0</div><div>Model number: WS-C2950-24</div><div>System serial number: XXYYZZXXYYZZ</div><div>Configuration register is 0xF</div><div>&nbsp;</div><div>&nbsp;</div>"
}

Command/Schedule

Commands can be scheduled to run automatically at defined intervals or once.

List all schedules

Retrieve all command schedules

Authorizations:
CookieTokenPermissions (CommandDevice)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Schedule)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

List schedules by command id

Retrieve all schedules by command id

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command ID

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Schedule)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a schedule

Create a new schedule

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command ID

Request Body schema: application/json
CommandID
required
integer

ID of the Command that is scheduled

DeviceIDs
required
Array of integers
Default: []

A list of Device IDs to assign to this scheduled command. Note: When retrieving a list of command schedules, this field will be left blank for performance reasons.

Type
required
string
Default: "Scheduled"
Enum: "Scheduled" "OnceAt"

Type of schedule. Commands can be performed as Scheduled or OnceAt at given time

Schedule
string

A cron-like expression if the type of schedule is set to "Scheduled"

KeepLast
integer >= 1
Default: 1

How many versions of the last Command Output to store

EmailAddress
string

Email address which will receive this scheduled Command Output

PolicyID
integer
Default: 0

ID of Policy to be applied after the scheduled command has run. 0 means no policy will be applied

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Array of objects (CommandScheduleVariable)

Schedule variables when the command has any.

Responses

Response Schema: application/json
ID
integer

Command schedule ID

CommandName
string

Name of the Command that is scheduled

CommandID
required
integer

ID of the Command that is scheduled

DeviceIDs
required
Array of integers
Default: []

A list of Device IDs to assign to this scheduled command. Note: When retrieving a list of command schedules, this field will be left blank for performance reasons.

DeviceNames
string

A system generated list of device names assigned to this credential set. This is limited to the first 50 devices.

Type
required
string
Default: "Scheduled"
Enum: "Scheduled" "OnceAt"

Type of schedule. Commands can be performed as Scheduled or OnceAt at given time

Schedule
string

A cron-like expression if the type of schedule is set to "Scheduled"

NextRun
string <date-time>

Timestamp in RFC3339 format when to run this command. Type of schedule has to be set to "OnceAt"

KeepLast
integer >= 1
Default: 1

How many versions of the last Command Output to store

EmailAddress
string

Email address which will receive this scheduled Command Output

PolicyName
string

Name of Policy to be applied after the scheduled command has run

PolicyID
integer
Default: 0

ID of Policy to be applied after the scheduled command has run. 0 means no policy will be applied

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Array of objects (CommandScheduleVariable)

Schedule variables when the command has any.

Request samples

Content type
application/json
Example
{
  • "CommandID": 123,
  • "DeviceIDs": [
    ],
  • "Type": "Scheduled",
  • "Schedule": "15 * * * *",
  • "KeepLast": 3
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "CommandName": "The Command",
  • "CommandID": 123,
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Device A, Device B, Device C, ...",
  • "Type": "Scheduled",
  • "Schedule": "15 * * * *",
  • "NextRun": "2222-02-22T22:22:22.000Z",
  • "KeepLast": 3,
  • "EmailAddress": "afox@restorepoint.com",
  • "PolicyName": "The policy",
  • "PolicyID": 123,
  • "ConcatenateMultiple": true,
  • "Variables": [
    ]
}

Retrieve a schedule

Retrieve a single schedule

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
schedule_id
required
integer

Schedule ID

id
required
integer

Command ID

Responses

Response Schema: application/json
ID
integer

Command schedule ID

CommandName
string

Name of the Command that is scheduled

CommandID
required
integer

ID of the Command that is scheduled

DeviceIDs
required
Array of integers
Default: []

A list of Device IDs to assign to this scheduled command. Note: When retrieving a list of command schedules, this field will be left blank for performance reasons.

DeviceNames
string

A system generated list of device names assigned to this credential set. This is limited to the first 50 devices.

Type
required
string
Default: "Scheduled"
Enum: "Scheduled" "OnceAt"

Type of schedule. Commands can be performed as Scheduled or OnceAt at given time

Schedule
string

A cron-like expression if the type of schedule is set to "Scheduled"

NextRun
string <date-time>

Timestamp in RFC3339 format when to run this command. Type of schedule has to be set to "OnceAt"

KeepLast
integer >= 1
Default: 1

How many versions of the last Command Output to store

EmailAddress
string

Email address which will receive this scheduled Command Output

PolicyName
string

Name of Policy to be applied after the scheduled command has run

PolicyID
integer
Default: 0

ID of Policy to be applied after the scheduled command has run. 0 means no policy will be applied

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Array of objects (CommandScheduleVariable)

Schedule variables when the command has any.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "CommandName": "The Command",
  • "CommandID": 123,
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Device A, Device B, Device C, ...",
  • "Type": "Scheduled",
  • "Schedule": "15 * * * *",
  • "NextRun": "2222-02-22T22:22:22.000Z",
  • "KeepLast": 3,
  • "EmailAddress": "afox@restorepoint.com",
  • "PolicyName": "The policy",
  • "PolicyID": 123,
  • "ConcatenateMultiple": true,
  • "Variables": [
    ]
}

Update a schedule

Update a schedule

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
schedule_id
required
integer

Schedule ID

id
required
integer

Command ID

Request Body schema: application/json
CommandID
required
integer

ID of the Command that is scheduled

DeviceIDs
required
Array of integers
Default: []

A list of Device IDs to assign to this scheduled command. Note: When retrieving a list of command schedules, this field will be left blank for performance reasons.

Type
required
string
Default: "Scheduled"
Enum: "Scheduled" "OnceAt"

Type of schedule. Commands can be performed as Scheduled or OnceAt at given time

Schedule
string

A cron-like expression if the type of schedule is set to "Scheduled"

KeepLast
integer >= 1
Default: 1

How many versions of the last Command Output to store

EmailAddress
string

Email address which will receive this scheduled Command Output

PolicyID
integer
Default: 0

ID of Policy to be applied after the scheduled command has run. 0 means no policy will be applied

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Array of objects (CommandScheduleVariable)

Schedule variables when the command has any.

Responses

Response Schema: application/json
ID
integer

Command schedule ID

CommandName
string

Name of the Command that is scheduled

CommandID
required
integer

ID of the Command that is scheduled

DeviceIDs
required
Array of integers
Default: []

A list of Device IDs to assign to this scheduled command. Note: When retrieving a list of command schedules, this field will be left blank for performance reasons.

DeviceNames
string

A system generated list of device names assigned to this credential set. This is limited to the first 50 devices.

Type
required
string
Default: "Scheduled"
Enum: "Scheduled" "OnceAt"

Type of schedule. Commands can be performed as Scheduled or OnceAt at given time

Schedule
string

A cron-like expression if the type of schedule is set to "Scheduled"

NextRun
string <date-time>

Timestamp in RFC3339 format when to run this command. Type of schedule has to be set to "OnceAt"

KeepLast
integer >= 1
Default: 1

How many versions of the last Command Output to store

EmailAddress
string

Email address which will receive this scheduled Command Output

PolicyName
string

Name of Policy to be applied after the scheduled command has run

PolicyID
integer
Default: 0

ID of Policy to be applied after the scheduled command has run. 0 means no policy will be applied

ConcatenateMultiple
boolean
Default: false

Concatenates multiple device outputs into a single output

Array of objects (CommandScheduleVariable)

Schedule variables when the command has any.

Request samples

Content type
application/json
{
  • "CommandID": 123,
  • "DeviceIDs": [
    ],
  • "Type": "Scheduled",
  • "Schedule": "15 * * * *",
  • "KeepLast": 3,
  • "EmailAddress": "afox@restorepoint.com",
  • "PolicyID": 123,
  • "ConcatenateMultiple": true,
  • "Variables": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "CommandName": "The Command",
  • "CommandID": 123,
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Device A, Device B, Device C, ...",
  • "Type": "Scheduled",
  • "Schedule": "15 * * * *",
  • "NextRun": "2222-02-22T22:22:22.000Z",
  • "KeepLast": 3,
  • "EmailAddress": "afox@restorepoint.com",
  • "PolicyName": "The policy",
  • "PolicyID": 123,
  • "ConcatenateMultiple": true,
  • "Variables": [
    ]
}

Delete a schedule

Delete a schedule

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
schedule_id
required
integer

Schedule ID

id
required
integer

Command ID

Responses

Response samples

Content type
application/json
{
  • "message": "Command schedule does not exit",
  • "errors": {
    }
}

Command/Variables

Commands can have one or multiple variables. The user can upload a csv file with a list of variables and they will be parsed and used when running the command.

Parses a csv file and returns a list of command variables

Parses the variable name, value and device address from a csv file and returns a list of command variables

Authorizations:
CookieTokenPermissions (CommandDevice)
Request Body schema: multipart/form-data
file
string

CSV data

Responses

Response Schema: application/json
Array of objects (CommandVariable)

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Credential

Set of username and up to two passwords that can be used across multiple devices.

List credentials

Retrieve all credentials

Authorizations:
CookieTokenPermissions (ViewCredentials)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

filter_op
string
Enum: "and" "or"

Filter operation to use, either "and" or "or"

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

domain_id[]
Array of integers

List of domain IDs to include in the results

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

filter_op
string
Enum: "and" "or"

Filter operation to use

Array of objects

The sorting parameters used to sort items

Array of objects (Credential)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "filter_op": [
    ],
  • "sort": [
    ],
  • "data": [
    ]
}

Create credentials

Create a new credential

Authorizations:
CookieTokenPermissions (ModifyCredentials)
Request Body schema: application/json
Name
required
string

Name of the credential set

Username
string

Credential username

Password
string

Credential password

Password2
string

Credential secondary password

DomainID
integer
Default: 0

ID of the Domain a set of credentials belong to (if any)

DeviceIDs
Array of integers
Default: []

A list of Device IDs to assign to this set of credentials. Note: When retrieving a list of credentials, this field will be left blank for performance reasons.

CustomFieldKeys
Array of strings
Default: []

List of custom credential names to be assigned secret values retrieved by a credential provider identified by ProviderID and ProviderType.

Responses

Response Schema: application/json
ID
integer

Credential set ID

Name
required
string

Name of the credential set

Username
string

Credential username

Password
string

Credential password

Password2
string

Credential secondary password

DomainID
integer
Default: 0

ID of the Domain a set of credentials belong to (if any)

DomainName
string
Default: "Global"

Name of the Domain a set of credentials belong to. Defaults to "Global" if no domain is set

DeviceIDs
Array of integers
Default: []

A list of Device IDs to assign to this set of credentials. Note: When retrieving a list of credentials, this field will be left blank for performance reasons.

DeviceNames
string

A system generated list of device names assigned to this credential set. This is limited to the first 50 devices.

ProviderID
integer
Default: 0

ID of the external credential provider (e.g. CyberArk provider) to retrieve secret values from vault and fill the CustomFields with them.

ProviderType
string
Default: ""
Enum: "" "CyberArk"

Type of the credential provider identified by ProviderID.

CustomFieldKeys
Array of strings
Default: []

List of custom credential names to be assigned secret values retrieved by a credential provider identified by ProviderID and ProviderType.

Request samples

Content type
application/json
{
  • "Name": "Sample credentials",
  • "Username": "root",
  • "Password": "Sunbreeze123",
  • "Password2": "Password123",
  • "DomainID": 123,
  • "DeviceIDs": [
    ],
  • "CustomFieldKeys": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Sample credentials",
  • "Username": "root",
  • "Password": "Sunbreeze123",
  • "Password2": "Password123",
  • "DomainID": 123,
  • "DomainName": "Global",
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Device A, Device B, Device C, ...",
  • "ProviderID": 123,
  • "ProviderType": "CyberArk",
  • "CustomFieldKeys": [
    ]
}

Retrieve credentials

Retrieve a single credential set

Authorizations:
CookieTokenPermissions (ModifyCredentials)
path Parameters
id
required
integer

Credential ID

Responses

Response Schema: application/json
ID
integer

Credential set ID

Name
required
string

Name of the credential set

Username
string

Credential username

Password
string

Credential password

Password2
string

Credential secondary password

DomainID
integer
Default: 0

ID of the Domain a set of credentials belong to (if any)

DomainName
string
Default: "Global"

Name of the Domain a set of credentials belong to. Defaults to "Global" if no domain is set

DeviceIDs
Array of integers
Default: []

A list of Device IDs to assign to this set of credentials. Note: When retrieving a list of credentials, this field will be left blank for performance reasons.

DeviceNames
string

A system generated list of device names assigned to this credential set. This is limited to the first 50 devices.

ProviderID
integer
Default: 0

ID of the external credential provider (e.g. CyberArk provider) to retrieve secret values from vault and fill the CustomFields with them.

ProviderType
string
Default: ""
Enum: "" "CyberArk"

Type of the credential provider identified by ProviderID.

CustomFieldKeys
Array of strings
Default: []

List of custom credential names to be assigned secret values retrieved by a credential provider identified by ProviderID and ProviderType.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Sample credentials",
  • "Username": "root",
  • "Password": "Sunbreeze123",
  • "Password2": "Password123",
  • "DomainID": 123,
  • "DomainName": "Global",
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Device A, Device B, Device C, ...",
  • "ProviderID": 123,
  • "ProviderType": "CyberArk",
  • "CustomFieldKeys": [
    ]
}

Update credentials

Update a credential set

Authorizations:
CookieTokenPermissions (ModifyCredentials)
path Parameters
id
required
integer

Credential ID

Request Body schema: application/json
Name
required
string

Name of the credential set

Username
string

Credential username

Password
string

Credential password

Password2
string

Credential secondary password

DomainID
integer
Default: 0

ID of the Domain a set of credentials belong to (if any)

DeviceIDs
Array of integers
Default: []

A list of Device IDs to assign to this set of credentials. Note: When retrieving a list of credentials, this field will be left blank for performance reasons.

CustomFieldKeys
Array of strings
Default: []

List of custom credential names to be assigned secret values retrieved by a credential provider identified by ProviderID and ProviderType.

Responses

Response Schema: application/json
ID
integer

Credential set ID

Name
required
string

Name of the credential set

Username
string

Credential username

Password
string

Credential password

Password2
string

Credential secondary password

DomainID
integer
Default: 0

ID of the Domain a set of credentials belong to (if any)

DomainName
string
Default: "Global"

Name of the Domain a set of credentials belong to. Defaults to "Global" if no domain is set

DeviceIDs
Array of integers
Default: []

A list of Device IDs to assign to this set of credentials. Note: When retrieving a list of credentials, this field will be left blank for performance reasons.

DeviceNames
string

A system generated list of device names assigned to this credential set. This is limited to the first 50 devices.

ProviderID
integer
Default: 0

ID of the external credential provider (e.g. CyberArk provider) to retrieve secret values from vault and fill the CustomFields with them.

ProviderType
string
Default: ""
Enum: "" "CyberArk"

Type of the credential provider identified by ProviderID.

CustomFieldKeys
Array of strings
Default: []

List of custom credential names to be assigned secret values retrieved by a credential provider identified by ProviderID and ProviderType.

Request samples

Content type
application/json
{
  • "Name": "Sample credentials",
  • "Username": "root",
  • "Password": "Sunbreeze123",
  • "Password2": "Password123",
  • "DomainID": 123,
  • "DeviceIDs": [
    ],
  • "CustomFieldKeys": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Sample credentials",
  • "Username": "root",
  • "Password": "Sunbreeze123",
  • "Password2": "Password123",
  • "DomainID": 123,
  • "DomainName": "Global",
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Device A, Device B, Device C, ...",
  • "ProviderID": 123,
  • "ProviderType": "CyberArk",
  • "CustomFieldKeys": [
    ]
}

Delete credentials

Delete a credential set

Authorizations:
CookieTokenPermissions (ModifyCredentials)
path Parameters
id
required
integer

Credential ID

Responses

Response samples

Content type
application/json
{
  • "message": "Credential set does not exit",
  • "errors": {
    }
}

Credential/Bulk

Allows creating or updating multiple credentials at once. It will create a scheduled task with the given credentials and create a log entry for the beginning and end of the credentials creation/modification.

Create credentials in bulk

Bulk creates given credentials asynchronously.

Authorizations:
CookieTokenPermissions (ModifyCredential)
Request Body schema: application/json
required
Array of objects (Credential)

List of Credentials objects to create

Responses

Request samples

Content type
application/json
{
  • "Credentials": [
    ]
}

Response samples

Content type
application/json
{
  • "JobUID": 0
}

Update credentials in bulk

Bulk update given credentials asynchronously. Must pass the credential ID to update.

Authorizations:
CookieTokenPermissions (ModifyCredential)
Request Body schema: application/json
required
Array of objects (Credential)

List of Credentials objects to update

Responses

Request samples

Content type
application/json
{
  • "Credentials": [
    ]
}

Response samples

Content type
application/json
{
  • "JobUID": 0
}

Credential/Provider/CyberArk

Allows retrieving credentials from the external vault.

List CyberArk providers

Retrieve all CyberArk credential providers

Authorizations:
CookieTokenPermissions (ViewCredentials)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (CyberArk credential provider request)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create CyberArk provider

Create a new CyberArk credential provider

Authorizations:
CookieTokenPermissions (ModifyCredentials)
Request Body schema: application/json
Name
required
string

Name of the CyberArk credential provider

BaseURL
required
string

URL of CyberArk vault (service).

ApplicationID
required
string

Identifies an application to CyberArk vault.

ClientCert
string

Contains PEM-encoded x509 client certificate for establishing secure TLS connection with CyberArk vault.

ClientKey
string

Contains PEM-encoded client private key.

RootCACert
string

Contains PEM-encoded x509 root CA certificate for establishing secure TLS connection with CyberArk vault.

RequestTimeout
integer

Timeout in seconds for sending HTTP request to CyberArk vault.

Array of objects (QueryMap)

List of query map entries, each one mapping a pair of Credential.ID and Credential.CustomField.Key to a CyberArk Vault Secret (described by a query string).

Responses

Response Schema: application/json
ID
integer

CyberArk credential provider ID

Name
required
string

Name of the CyberArk credential provider

BaseURL
required
string

URL of CyberArk vault (service).

ApplicationID
required
string

Identifies an application to CyberArk vault.

ClientCertID
string

Certificate issuer's common name concatenated with certificate's serial number.

ClientKeyID
string

RSA private key string

RootCACertID
string

Certificate issuer's common name concatenated with certificate's serial number.

RequestTimeout
integer

Timeout in seconds for sending HTTP request to CyberArk vault.

Array of objects (QueryMap)

List of query map entries, each one mapping a pair of Credential.ID and Credential.CustomField.Key to a CyberArk Vault Secret (described by a query string).

Request samples

Content type
application/json
{
  • "Name": "Sample credential provider",
  • "ApplicationID": "Sample application ID",
  • "ClientCert": "string",
  • "ClientKey": "string",
  • "RootCACert": "string",
  • "RequestTimeout": 60,
  • "QueryMap": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Sample credential provider",
  • "ApplicationID": "Sample application ID",
  • "ClientCertID": "example.com, S/N: 12345\n",
  • "ClientKeyID": "RSA private key",
  • "RootCACertID": "example.com, S/N: 12345\n",
  • "RequestTimeout": 60,
  • "QueryMap": [
    ]
}

Retrieve CyberArk provider

Retrieve a single CyberArk credential provider

Authorizations:
CookieTokenPermissions (ViewCredentials)
path Parameters
id
required
integer

CyberArk provider ID

Responses

Response Schema: application/json
ID
integer

CyberArk credential provider ID

Name
required
string

Name of the CyberArk credential provider

BaseURL
required
string

URL of CyberArk vault (service).

ApplicationID
required
string

Identifies an application to CyberArk vault.

ClientCertID
string

Certificate issuer's common name concatenated with certificate's serial number.

ClientKeyID
string

RSA private key string

RootCACertID
string

Certificate issuer's common name concatenated with certificate's serial number.

RequestTimeout
integer

Timeout in seconds for sending HTTP request to CyberArk vault.

Array of objects (QueryMap)

List of query map entries, each one mapping a pair of Credential.ID and Credential.CustomField.Key to a CyberArk Vault Secret (described by a query string).

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Sample credential provider",
  • "ApplicationID": "Sample application ID",
  • "ClientCertID": "example.com, S/N: 12345\n",
  • "ClientKeyID": "RSA private key",
  • "RootCACertID": "example.com, S/N: 12345\n",
  • "RequestTimeout": 60,
  • "QueryMap": [
    ]
}

Update CyberArk provider

Update a CyberArk credential provider

Authorizations:
CookieTokenPermissions (ModifyCredentials)
path Parameters
id
required
integer

CyberArk provider ID

Request Body schema: application/json
Name
required
string

Name of the CyberArk credential provider

BaseURL
required
string

URL of CyberArk vault (service).

ApplicationID
required
string

Identifies an application to CyberArk vault.

ClientCert
string

Contains PEM-encoded x509 client certificate for establishing secure TLS connection with CyberArk vault.

ClientKey
string

Contains PEM-encoded client private key.

RootCACert
string

Contains PEM-encoded x509 root CA certificate for establishing secure TLS connection with CyberArk vault.

RequestTimeout
integer

Timeout in seconds for sending HTTP request to CyberArk vault.

Array of objects (QueryMap)

List of query map entries, each one mapping a pair of Credential.ID and Credential.CustomField.Key to a CyberArk Vault Secret (described by a query string).

Responses

Response Schema: application/json
ID
integer

CyberArk credential provider ID

Name
required
string

Name of the CyberArk credential provider

BaseURL
required
string

URL of CyberArk vault (service).

ApplicationID
required
string

Identifies an application to CyberArk vault.

ClientCertID
string

Certificate issuer's common name concatenated with certificate's serial number.

ClientKeyID
string

RSA private key string

RootCACertID
string

Certificate issuer's common name concatenated with certificate's serial number.

RequestTimeout
integer

Timeout in seconds for sending HTTP request to CyberArk vault.

Array of objects (QueryMap)

List of query map entries, each one mapping a pair of Credential.ID and Credential.CustomField.Key to a CyberArk Vault Secret (described by a query string).

Request samples

Content type
application/json
{
  • "Name": "Sample credential provider",
  • "ApplicationID": "Sample application ID",
  • "ClientCert": "string",
  • "ClientKey": "string",
  • "RootCACert": "string",
  • "RequestTimeout": 60,
  • "QueryMap": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Sample credential provider",
  • "ApplicationID": "Sample application ID",
  • "ClientCertID": "example.com, S/N: 12345\n",
  • "ClientKeyID": "RSA private key",
  • "RootCACertID": "example.com, S/N: 12345\n",
  • "RequestTimeout": 60,
  • "QueryMap": [
    ]
}

Delete CyberArk provider

Delete a CyberArk credential provider

Authorizations:
CookieTokenPermissions (ModifyCredentials)
path Parameters
id
required
integer

CyberArk provider ID

Responses

Response samples

Content type
application/json
{
  • "message": "CyberArk credential provider does not exit",
  • "errors": {
    }
}

Backup

A device backup can encapsulates one or more device configurations. Depending on the type of device, a device backup might be a simple text file or a multi-gigabyte TGZ.

List backups

List backups of a device

Authorizations:
CookieTokenPermissions (ListBackups)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

device_id[]
Array of integers
Example: device_id[]=123&device_id[]=2875&device_id[]=3

List of Device IDs to limit the log output to.

not[device_id][]
Array of integers
Example: not[device_id][]=67

List of Device IDs to exclude from the returned log entries.

created_after
string
Example: created_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

created_before
string
Example: created_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the created date.

firmware[]
Array of strings
Example: firmware[]=IOS 12.1(22)EA4&firmware[]=IOS 11.4(14)EA4

List of firmwares to include in the results

not[firmware][]
Array of strings
Example: not[firmware][]=IOS 10.1(34)EA2

List of firmwares to exclude from the results

sort
string
Example: sort=Created,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant. Sortable fields are: Name, Created, Size, Firmware, Initiator, Version, and MD5.

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Backup)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Device

Devices are Restorepoint's representation of physical or virtual network devices.

List devices

Retrieve all devices

Authorizations:
CookieTokenPermissions (ViewDevices)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

force_domains
boolean
Default: false

If true, given domain param values will be used for base filtering, instead of user's domains.

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

filter_op
string
Enum: "and" "or"

Filter operation to use, either "and" or "or"

fulltext
string

Only return records matching the search term. Must have at least 3 characters

updated_after
string
Example: updated_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

updated_before
string
Example: updated_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the updated date.

label_id[]
Array of strings

List of labels IDs to include in the results

not[label_id][]
Array of strings

List of label IDs to exclude from the results

manufacturer[]
Array of strings
Example: manufacturer[]=Cisco&manufacturer[]=BigIP

List of manufacturers to include in the results

not[manufacturer][]
Array of strings
Example: not[manufacturer][]=Solarwinds

List of manufacturers to exclude from the results

plugin_key[]
Array of strings
Example: plugin_key[]=cisco_ios

List of plugin keys to include in the results

not[plugin_key][]
Array of strings
Example: not[plugin_key][]=cisco_asa

List of plugin keys to exclude from the results

location[]
Array of strings
Example: location[]=Comms Rack&location[]=ESX Server 1

List of locations to include in the results

not[location][]
Array of strings
Example: not[location][]=Home Office

List of locations to exclude from the results

domain_id[]
Array of integers

List of domain IDs to include in the results

not[domain_id][]
Array of integers

List of domain IDs to exclude from the results

backupstatusstring[]
Array of strings
Example: backupstatusstring[]=OK

List of backup status to include in the results

not[backupstatusstring][]
Array of strings
Example: not[backupstatusstring][]=Failed

List of backup status to exclude from the results

agent_id[]
Array of integers

List of agent IDs to include in the results

not[agent_id][]
Array of integers

List of agent IDs to exclude from the results

protocol[]
Array of strings
Example: protocol[]=ssh&protocol[]=ftp

List of protocols to include in the results

not[protocol][]
Array of strings
Example: not[protocol][]=telnet/tftp

List of protocols to exclude from the results

compliancestatus[]
Array of strings

List of compliance status to include in the results

not[compliancestatus][]
Array of strings

List of compliance status to exclude from the results

lastbackupattempt_before
string

Timestamp to include results before the last backup attempt date.

lastbackupattempt_after
string

Timestamp to include results after the last backup attempt date.

lastbackup_before
string

Timestamp to include results before the last backup.

lastbackup_after
string

Timestamp to include results after the last backup date.

disabled
boolean

Disabled status to include in the results

up
boolean

Device monitored up status to include in the results

serial[]
Array of strings
Example: serial[]=FCZ1047W0F9&serial[]=FKD1227W0F9

List of serial numbers to include in the results

not[serial][]
Array of strings
Example: not[serial][]=FJJ13427W0D1

List of serial numbers to exclude from the results

firmware[]
Array of strings
Example: firmware[]=IOS 12.1(22)EA4&firmware[]=IOS 11.4(14)EA4

List of firmwares to include in the results

not[firmware][]
Array of strings
Example: not[firmware][]=IOS 10.1(34)EA2

List of firmwares to exclude from the results

assetid[]
Array of strings
Example: assetid[]=10101010ID&assetid[]=ThisAssetiD

List of assetids to include in the results

not[assetid][]
Array of strings
Example: not[assetid][]=10101010Id

List of assetids to exclude from the results

baseline[]
Array of strings
Example: baseline[]=1

Baseline status to include in the results

not[baseline][]
Array of strings
Example: not[baseline][]=0

Baseline status to exclude in the results

nextbackup_before
string

Timestamp to include results before the next backup attempt date.

nextbackup_after
string

Timestamp to include results after the next backup attempt date.

model[]
Array of strings
Example: model[]=WS-C2950-24

List of models to include in the results

not[model][]
Array of strings
Example: not[model][]=WS-C2950-24

List of models to exclude in the results

state[]
Array of strings
Example: state[]=Idle

List of states to include in the results

not[state][]
Array of strings
Example: not[state][]=Idle

List of states to exclude in the results

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

filter_op
string
Enum: "and" "or"

Filter operation to use

Array of objects

The sorting parameters used to sort items

Array of objects (Device)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "filter_op": [
    ],
  • "sort": [
    ],
  • "data": [
    ]
}

Create a device

Create a new device

Authorizations:
Request Body schema: application/json
Name
required
string

Device name

DomainID
integer
Default: 0

ID of the Domain a device belongs to (if any). Defaults to 0 if no domain is set

LabelIDs
Array of integers

A list of Label IDs attached to this device

Disabled
boolean
Default: false

Disable or enable a device

DisabledUntil
string

Timestamp of when to re-enable a device if it is disabled. Pass an empty string "" to disable a device forever.

DisabledReason
string

Reason for disabling a device

object

Define device monitoring settings

Array of objects

List of Assetfields with device specific data

object

List of additional information values originating either from device's plugin (e.g. interfaces, static routes, version, location) or info commands.

PluginKey
required
string

A Plugin identifier (key) that sets the plugin a device uses

required
Array of objects (DevicePluginFields)

List of additional fields for a device, determined by the device plugin. Common field names are username, password, password2, backup_port, nat_bc.

PublicKey
string

Device SSH public key used by a device to communicate with Restorepoint when PluginKey is push_device and Protocol is sftp

NotificationEmails
Array of strings

Email addresses for notifications. Defaults to the email address of the user creating a device.

object

Triggers for sending notification emails to the device owner

Array of objects

Please note: Backup schedules inherit defaults from the /settings/device endpoint.

ManualConfigTypes
Array of strings
Default: ["_default"]

List of configuration types that will be backed up if a manual backup is triggered.

BackupPrefix
string

Prefix for backup filenames

Address
required
string

Network address of the device. Supports IPv4, IPv6 and Hostnames

AgentID
integer
Default: 0

ID of an Agent this device should communicate through. The default 0 means that Restorepoint will communicate with a device directly

Protocol
required
string

Connection protocol to use. Check device's plugin for supported protocols

CredentialID
integer
Default: 0

ID of the Credential assigned to this device. Credentials take precedence over any username or password set for the device

object

What should Restorepoint to when a device encounters an error taking backups. Please note: Inherits defaults from the Settings/Device endpoint.

UseAutoApply
boolean
Default: false

If a compliance policy's auto apply rule matches and this flag is set to true, then those rules will be automatically applied only on device creation.

PolicyIDs
Array of integers
Default: []

A list of Compliance policies to apply to this device. Please note: if UseAutoApply is set to true on device creation, PolicyIDs is set automatically with any policies that match and any provided values are ignored.

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating device connections over SSH. See Settings/PublicKey how to retrieve those for your appliance.

DisableStrictHostKeyChecking
boolean
Default: false

Disables the ssh host key validation when performing ssh connections. Logs whether or not the key has changed.

Up
boolean

Whether or not a device is up. Omitted if no monitors are set for this device.

Responses

Response Schema: application/json
ID
integer

Device ID

Name
required
string

Device name

DomainID
integer
Default: 0

ID of the Domain a device belongs to (if any). Defaults to 0 if no domain is set

DomainName
string
Default: "Global"

Name of the Domain a device belongs to. Defaults to "Global" if no domain is set

Array of objects (Label)

A list of Label attached to this device

Disabled
boolean
Default: false

Disable or enable a device

DisabledUntil
string

Timestamp of when to re-enable a device if it is disabled. Pass an empty string "" to disable a device forever.

DisabledReason
string

Reason for disabling a device

object

Define device monitoring settings

Array of objects

List of Assetfields with device specific data

object

List of additional information values originating either from device's plugin (e.g. interfaces, static routes, version, location) or info commands.

PluginKey
required
string

A Plugin identifier (key) that sets the plugin a device uses

PluginName
string

User friendly name of the plugin this device uses

required
Array of objects (DevicePluginFields)

List of additional fields for a device, determined by the device plugin. Common field names are username, password, password2, backup_port, nat_bc.

PublicKey
string

Device SSH public key used by a device to communicate with Restorepoint when PluginKey is push_device and Protocol is sftp

NotificationEmails
Array of strings

Email addresses for notifications. Defaults to the email address of the user creating a device.

object

Triggers for sending notification emails to the device owner

Array of objects

Please note: Backup schedules inherit defaults from the /settings/device endpoint.

ManualConfigTypes
Array of strings
Default: ["_default"]

List of configuration types that will be backed up if a manual backup is triggered.

BackupPrefix
string

Prefix for backup filenames

BackupStatus
string
Enum: "OK" "Failed"

Status for the last device backup

Address
required
string

Network address of the device. Supports IPv4, IPv6 and Hostnames

AgentID
integer
Default: 0

ID of an Agent this device should communicate through. The default 0 means that Restorepoint will communicate with a device directly

AgentName
string

Name of the Agent that a device uses (if set)

Protocol
required
string

Connection protocol to use. Check device's plugin for supported protocols

CredentialID
integer
Default: 0

ID of the Credential assigned to this device. Credentials take precedence over any username or password set for the device

object

What should Restorepoint to when a device encounters an error taking backups. Please note: Inherits defaults from the Settings/Device endpoint.

PolicyIDs
Array of integers
Default: []

A list of Compliance policies to apply to this device. Please note: if UseAutoApply is set to true on device creation, PolicyIDs is set automatically with any policies that match and any provided values are ignored.

Array of objects (Policy violation)

A list of Compliancy policy violations for the last backup this device has.

Array of objects (Policy violation)

A list of Compliancy policy violations for all backups except the last one this device has.

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating device connections over SSH. See Settings/PublicKey how to retrieve those for your appliance.

DisableStrictHostKeyChecking
boolean
Default: false

Disables the ssh host key validation when performing ssh connections. Logs whether or not the key has changed.

BackupInterval
string
Default: "Manual"

Human readable string of the current backup interval for a device if a schedule is set. Defaults to Manual unless it's a Generic Push Device where it will default to N/A.

LastBackupAttempt
string

Timestamp of last attempted backup.

LastSuccessfulBackup
string

Timestamp of last completed backup.

NextBackup
string

Timestamp of next scheduled backup.

Baseline
boolean

Whether the current backup is an approved configuration.

State
string

Current state of the device.

Status
string
Enum: "Error" "Disabled" "InProgress" "OK"

Current status indicator.

ComplianceScore
integer

The percentage compliance score of the device. Omitted if no compliance policies have been run against the device.

ComplianceStatus
string
Enum: "Passed" "Failed" "N/A"

The compliance status of the device based on compliance score. Passed if 100, Failed if between 0 and 100 and N/A if -1 policies have been run against the device.

Up
boolean

Whether or not a device is up. Omitted if no monitors are set for this device.

Uptime
number

Percentage of time the device has been monitored as up. -1 means Not Monitored.

BackupSize
integer

Size of all backups for this device on disk in bytes.

SetupComplete
boolean

Whether or not a device setup is completed. A completed device setup includes enough information to take a backup.

Model
string

Device's model.

LastSuccessfulBackupID
integer

ID of the last successful backup

Request samples

Content type
application/json
{
  • "Name": "Demo device",
  • "DomainID": 123,
  • "LabelIDs": [
    ],
  • "Disabled": true,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "Monitor": {
    },
  • "AssetFields": [
    ],
  • "AdditionalInformation": {
    },
  • "PluginKey": "cisco_ios",
  • "PluginFields": [
    ],
  • "PublicKey": "ssh-rsa AAAAB3N...",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "BackupSchedules": [
    ],
  • "ManualConfigTypes": [
    ],
  • "BackupPrefix": "string",
  • "Address": [
    ],
  • "AgentID": 0,
  • "Protocol": "scp",
  • "CredentialID": 123,
  • "FailurePolicy": {
    },
  • "UseAutoApply": true,
  • "PolicyIDs": [
    ],
  • "UsePublicKeyAuthentication": false,
  • "DisableStrictHostKeyChecking": false,
  • "Up": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Demo device",
  • "DomainID": 123,
  • "DomainName": "Global",
  • "Labels": [
    ],
  • "Disabled": true,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "Monitor": {
    },
  • "AssetFields": [
    ],
  • "AdditionalInformation": {
    },
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "PluginFields": [
    ],
  • "PublicKey": "ssh-rsa AAAAB3N...",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "BackupSchedules": [
    ],
  • "ManualConfigTypes": [
    ],
  • "BackupPrefix": "string",
  • "BackupStatus": "OK",
  • "Address": [
    ],
  • "AgentID": 0,
  • "AgentName": "An Agent",
  • "Protocol": "scp",
  • "CredentialID": 123,
  • "FailurePolicy": {
    },
  • "PolicyIDs": [
    ],
  • "CurrentPolicyViolations": [
    ],
  • "PastPolicyViolations": [
    ],
  • "UsePublicKeyAuthentication": false,
  • "DisableStrictHostKeyChecking": false,
  • "BackupInterval": "Every 15th minute past every hour",
  • "LastBackupAttempt": "2021-01-18T23:59:59.999Z",
  • "LastSuccessfulBackup": "2021-01-16T23:59:59.999Z",
  • "NextBackup": "2021-01-20T23:59:59.999Z",
  • "Baseline": true,
  • "State": "Processing",
  • "Status": "InProgress",
  • "ComplianceScore": 69,
  • "ComplianceStatus": "Failed",
  • "Up": true,
  • "Uptime": 100,
  • "BackupSize": 123456,
  • "SetupComplete": true,
  • "Model": "WS-C2950-24",
  • "LastSuccessfulBackupID": 123456
}

Retrieve a device

Retrieve a single device

Authorizations:
CookieTokenPermissions (ViewDevices)
path Parameters
id
required
integer

device id

Responses

Response Schema: application/json
ID
integer

Device ID

Name
required
string

Device name

DomainID
integer
Default: 0

ID of the Domain a device belongs to (if any). Defaults to 0 if no domain is set

DomainName
string
Default: "Global"

Name of the Domain a device belongs to. Defaults to "Global" if no domain is set

Array of objects (Label)

A list of Label attached to this device

Disabled
boolean
Default: false

Disable or enable a device

DisabledUntil
string

Timestamp of when to re-enable a device if it is disabled. Pass an empty string "" to disable a device forever.

DisabledReason
string

Reason for disabling a device

object

Define device monitoring settings

Array of objects

List of Assetfields with device specific data

object

List of additional information values originating either from device's plugin (e.g. interfaces, static routes, version, location) or info commands.

PluginKey
required
string

A Plugin identifier (key) that sets the plugin a device uses

PluginName
string

User friendly name of the plugin this device uses

required
Array of objects (DevicePluginFields)

List of additional fields for a device, determined by the device plugin. Common field names are username, password, password2, backup_port, nat_bc.

PublicKey
string

Device SSH public key used by a device to communicate with Restorepoint when PluginKey is push_device and Protocol is sftp

NotificationEmails
Array of strings

Email addresses for notifications. Defaults to the email address of the user creating a device.

object

Triggers for sending notification emails to the device owner

Array of objects

Please note: Backup schedules inherit defaults from the /settings/device endpoint.

ManualConfigTypes
Array of strings
Default: ["_default"]

List of configuration types that will be backed up if a manual backup is triggered.

BackupPrefix
string

Prefix for backup filenames

BackupStatus
string
Enum: "OK" "Failed"

Status for the last device backup

Address
required
string

Network address of the device. Supports IPv4, IPv6 and Hostnames

AgentID
integer
Default: 0

ID of an Agent this device should communicate through. The default 0 means that Restorepoint will communicate with a device directly

AgentName
string

Name of the Agent that a device uses (if set)

Protocol
required
string

Connection protocol to use. Check device's plugin for supported protocols

CredentialID
integer
Default: 0

ID of the Credential assigned to this device. Credentials take precedence over any username or password set for the device

object

What should Restorepoint to when a device encounters an error taking backups. Please note: Inherits defaults from the Settings/Device endpoint.

PolicyIDs
Array of integers
Default: []

A list of Compliance policies to apply to this device. Please note: if UseAutoApply is set to true on device creation, PolicyIDs is set automatically with any policies that match and any provided values are ignored.

Array of objects (Policy violation)

A list of Compliancy policy violations for the last backup this device has.

Array of objects (Policy violation)

A list of Compliancy policy violations for all backups except the last one this device has.

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating device connections over SSH. See Settings/PublicKey how to retrieve those for your appliance.

DisableStrictHostKeyChecking
boolean
Default: false

Disables the ssh host key validation when performing ssh connections. Logs whether or not the key has changed.

BackupInterval
string
Default: "Manual"

Human readable string of the current backup interval for a device if a schedule is set. Defaults to Manual unless it's a Generic Push Device where it will default to N/A.

LastBackupAttempt
string

Timestamp of last attempted backup.

LastSuccessfulBackup
string

Timestamp of last completed backup.

NextBackup
string

Timestamp of next scheduled backup.

Baseline
boolean

Whether the current backup is an approved configuration.

State
string

Current state of the device.

Status
string
Enum: "Error" "Disabled" "InProgress" "OK"

Current status indicator.

ComplianceScore
integer

The percentage compliance score of the device. Omitted if no compliance policies have been run against the device.

ComplianceStatus
string
Enum: "Passed" "Failed" "N/A"

The compliance status of the device based on compliance score. Passed if 100, Failed if between 0 and 100 and N/A if -1 policies have been run against the device.

Up
boolean

Whether or not a device is up. Omitted if no monitors are set for this device.

Uptime
number

Percentage of time the device has been monitored as up. -1 means Not Monitored.

BackupSize
integer

Size of all backups for this device on disk in bytes.

SetupComplete
boolean

Whether or not a device setup is completed. A completed device setup includes enough information to take a backup.

Model
string

Device's model.

LastSuccessfulBackupID
integer

ID of the last successful backup

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Demo device",
  • "DomainID": 123,
  • "DomainName": "Global",
  • "Labels": [
    ],
  • "Disabled": true,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "Monitor": {
    },
  • "AssetFields": [
    ],
  • "AdditionalInformation": {
    },
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "PluginFields": [
    ],
  • "PublicKey": "ssh-rsa AAAAB3N...",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "BackupSchedules": [
    ],
  • "ManualConfigTypes": [
    ],
  • "BackupPrefix": "string",
  • "BackupStatus": "OK",
  • "Address": [
    ],
  • "AgentID": 0,
  • "AgentName": "An Agent",
  • "Protocol": "scp",
  • "CredentialID": 123,
  • "FailurePolicy": {
    },
  • "PolicyIDs": [
    ],
  • "CurrentPolicyViolations": [
    ],
  • "PastPolicyViolations": [
    ],
  • "UsePublicKeyAuthentication": false,
  • "DisableStrictHostKeyChecking": false,
  • "BackupInterval": "Every 15th minute past every hour",
  • "LastBackupAttempt": "2021-01-18T23:59:59.999Z",
  • "LastSuccessfulBackup": "2021-01-16T23:59:59.999Z",
  • "NextBackup": "2021-01-20T23:59:59.999Z",
  • "Baseline": true,
  • "State": "Processing",
  • "Status": "InProgress",
  • "ComplianceScore": 69,
  • "ComplianceStatus": "Failed",
  • "Up": true,
  • "Uptime": 100,
  • "BackupSize": 123456,
  • "SetupComplete": true,
  • "Model": "WS-C2950-24",
  • "LastSuccessfulBackupID": 123456
}

Update a device

Update a device

Authorizations:
CookieTokenPermissions (ModifyDevice)
path Parameters
id
required
integer

device id

Request Body schema: application/json
Name
required
string

Device name

DomainID
integer
Default: 0

ID of the Domain a device belongs to (if any). Defaults to 0 if no domain is set

LabelIDs
Array of integers

A list of Label IDs attached to this device

Disabled
boolean
Default: false

Disable or enable a device

DisabledUntil
string

Timestamp of when to re-enable a device if it is disabled. Pass an empty string "" to disable a device forever.

DisabledReason
string

Reason for disabling a device

object

Define device monitoring settings

Array of objects

List of Assetfields with device specific data

object

List of additional information values originating either from device's plugin (e.g. interfaces, static routes, version, location) or info commands.

PluginKey
required
string

A Plugin identifier (key) that sets the plugin a device uses

required
Array of objects (DevicePluginFields)

List of additional fields for a device, determined by the device plugin. Common field names are username, password, password2, backup_port, nat_bc.

PublicKey
string

Device SSH public key used by a device to communicate with Restorepoint when PluginKey is push_device and Protocol is sftp

NotificationEmails
Array of strings

Email addresses for notifications. Defaults to the email address of the user creating a device.

object

Triggers for sending notification emails to the device owner

Array of objects

Please note: Backup schedules inherit defaults from the /settings/device endpoint.

ManualConfigTypes
Array of strings
Default: ["_default"]

List of configuration types that will be backed up if a manual backup is triggered.

BackupPrefix
string

Prefix for backup filenames

Address
required
string

Network address of the device. Supports IPv4, IPv6 and Hostnames

AgentID
integer
Default: 0

ID of an Agent this device should communicate through. The default 0 means that Restorepoint will communicate with a device directly

Protocol
required
string

Connection protocol to use. Check device's plugin for supported protocols

CredentialID
integer
Default: 0

ID of the Credential assigned to this device. Credentials take precedence over any username or password set for the device

object

What should Restorepoint to when a device encounters an error taking backups. Please note: Inherits defaults from the Settings/Device endpoint.

UseAutoApply
boolean
Default: false

If a compliance policy's auto apply rule matches and this flag is set to true, then those rules will be automatically applied only on device creation.

PolicyIDs
Array of integers
Default: []

A list of Compliance policies to apply to this device. Please note: if UseAutoApply is set to true on device creation, PolicyIDs is set automatically with any policies that match and any provided values are ignored.

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating device connections over SSH. See Settings/PublicKey how to retrieve those for your appliance.

DisableStrictHostKeyChecking
boolean
Default: false

Disables the ssh host key validation when performing ssh connections. Logs whether or not the key has changed.

Up
boolean

Whether or not a device is up. Omitted if no monitors are set for this device.

Responses

Response Schema: application/json
ID
integer

Device ID

Name
required
string

Device name

DomainID
integer
Default: 0

ID of the Domain a device belongs to (if any). Defaults to 0 if no domain is set

DomainName
string
Default: "Global"

Name of the Domain a device belongs to. Defaults to "Global" if no domain is set

Array of objects (Label)

A list of Label attached to this device

Disabled
boolean
Default: false

Disable or enable a device

DisabledUntil
string

Timestamp of when to re-enable a device if it is disabled. Pass an empty string "" to disable a device forever.

DisabledReason
string

Reason for disabling a device

object

Define device monitoring settings

Array of objects

List of Assetfields with device specific data

object

List of additional information values originating either from device's plugin (e.g. interfaces, static routes, version, location) or info commands.

PluginKey
required
string

A Plugin identifier (key) that sets the plugin a device uses

PluginName
string

User friendly name of the plugin this device uses

required
Array of objects (DevicePluginFields)

List of additional fields for a device, determined by the device plugin. Common field names are username, password, password2, backup_port, nat_bc.

PublicKey
string

Device SSH public key used by a device to communicate with Restorepoint when PluginKey is push_device and Protocol is sftp

NotificationEmails
Array of strings

Email addresses for notifications. Defaults to the email address of the user creating a device.

object

Triggers for sending notification emails to the device owner

Array of objects

Please note: Backup schedules inherit defaults from the /settings/device endpoint.

ManualConfigTypes
Array of strings
Default: ["_default"]

List of configuration types that will be backed up if a manual backup is triggered.

BackupPrefix
string

Prefix for backup filenames

BackupStatus
string
Enum: "OK" "Failed"

Status for the last device backup

Address
required
string

Network address of the device. Supports IPv4, IPv6 and Hostnames

AgentID
integer
Default: 0

ID of an Agent this device should communicate through. The default 0 means that Restorepoint will communicate with a device directly

AgentName
string

Name of the Agent that a device uses (if set)

Protocol
required
string

Connection protocol to use. Check device's plugin for supported protocols

CredentialID
integer
Default: 0

ID of the Credential assigned to this device. Credentials take precedence over any username or password set for the device

object

What should Restorepoint to when a device encounters an error taking backups. Please note: Inherits defaults from the Settings/Device endpoint.

PolicyIDs
Array of integers
Default: []

A list of Compliance policies to apply to this device. Please note: if UseAutoApply is set to true on device creation, PolicyIDs is set automatically with any policies that match and any provided values are ignored.

Array of objects (Policy violation)

A list of Compliancy policy violations for the last backup this device has.

Array of objects (Policy violation)

A list of Compliancy policy violations for all backups except the last one this device has.

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating device connections over SSH. See Settings/PublicKey how to retrieve those for your appliance.

DisableStrictHostKeyChecking
boolean
Default: false

Disables the ssh host key validation when performing ssh connections. Logs whether or not the key has changed.

BackupInterval
string
Default: "Manual"

Human readable string of the current backup interval for a device if a schedule is set. Defaults to Manual unless it's a Generic Push Device where it will default to N/A.

LastBackupAttempt
string

Timestamp of last attempted backup.

LastSuccessfulBackup
string

Timestamp of last completed backup.

NextBackup
string

Timestamp of next scheduled backup.

Baseline
boolean

Whether the current backup is an approved configuration.

State
string

Current state of the device.

Status
string
Enum: "Error" "Disabled" "InProgress" "OK"

Current status indicator.

ComplianceScore
integer

The percentage compliance score of the device. Omitted if no compliance policies have been run against the device.

ComplianceStatus
string
Enum: "Passed" "Failed" "N/A"

The compliance status of the device based on compliance score. Passed if 100, Failed if between 0 and 100 and N/A if -1 policies have been run against the device.

Up
boolean

Whether or not a device is up. Omitted if no monitors are set for this device.

Uptime
number

Percentage of time the device has been monitored as up. -1 means Not Monitored.

BackupSize
integer

Size of all backups for this device on disk in bytes.

SetupComplete
boolean

Whether or not a device setup is completed. A completed device setup includes enough information to take a backup.

Model
string

Device's model.

LastSuccessfulBackupID
integer

ID of the last successful backup

Request samples

Content type
application/json
{
  • "Name": "Demo device",
  • "DomainID": 123,
  • "LabelIDs": [
    ],
  • "Disabled": true,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "Monitor": {
    },
  • "AssetFields": [
    ],
  • "AdditionalInformation": {
    },
  • "PluginKey": "cisco_ios",
  • "PluginFields": [
    ],
  • "PublicKey": "ssh-rsa AAAAB3N...",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "BackupSchedules": [
    ],
  • "ManualConfigTypes": [
    ],
  • "BackupPrefix": "string",
  • "Address": [
    ],
  • "AgentID": 0,
  • "Protocol": "scp",
  • "CredentialID": 123,
  • "FailurePolicy": {
    },
  • "UseAutoApply": true,
  • "PolicyIDs": [
    ],
  • "UsePublicKeyAuthentication": false,
  • "DisableStrictHostKeyChecking": false,
  • "Up": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Demo device",
  • "DomainID": 123,
  • "DomainName": "Global",
  • "Labels": [
    ],
  • "Disabled": true,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "Monitor": {
    },
  • "AssetFields": [
    ],
  • "AdditionalInformation": {
    },
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "PluginFields": [
    ],
  • "PublicKey": "ssh-rsa AAAAB3N...",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "BackupSchedules": [
    ],
  • "ManualConfigTypes": [
    ],
  • "BackupPrefix": "string",
  • "BackupStatus": "OK",
  • "Address": [
    ],
  • "AgentID": 0,
  • "AgentName": "An Agent",
  • "Protocol": "scp",
  • "CredentialID": 123,
  • "FailurePolicy": {
    },
  • "PolicyIDs": [
    ],
  • "CurrentPolicyViolations": [
    ],
  • "PastPolicyViolations": [
    ],
  • "UsePublicKeyAuthentication": false,
  • "DisableStrictHostKeyChecking": false,
  • "BackupInterval": "Every 15th minute past every hour",
  • "LastBackupAttempt": "2021-01-18T23:59:59.999Z",
  • "LastSuccessfulBackup": "2021-01-16T23:59:59.999Z",
  • "NextBackup": "2021-01-20T23:59:59.999Z",
  • "Baseline": true,
  • "State": "Processing",
  • "Status": "InProgress",
  • "ComplianceScore": 69,
  • "ComplianceStatus": "Failed",
  • "Up": true,
  • "Uptime": 100,
  • "BackupSize": 123456,
  • "SetupComplete": true,
  • "Model": "WS-C2950-24",
  • "LastSuccessfulBackupID": 123456
}

Delete a device

Delete a device

Authorizations:
CookieTokenPermissions (DeleteDevice)
path Parameters
id
required
integer

device id

Responses

Response samples

Content type
application/json
{
  • "message": "Device not disabled",
  • "errors": {
    }
}

Retrieve monitor measurements

Get the a device's most recent monitor responses

Authorizations:
CookieTokenPermissions (ViewDeviceauth)
path Parameters
id
required
integer

device id

query Parameters
period
required
integer

Number of seconds between measurements. If requested period is narrower then the monitor's period, all measurements will be retrieved

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

Responses

Response Schema: application/json
Period
integer

Requested number of seconds between measurements

Array of objects

List of measurements

Response samples

Content type
application/json
{
  • "Period": 5,
  • "Measurements": [
    ]
}

Clear SSH known hosts

Clear known SSH hosts for a device

Authorizations:
CookieTokenPermissions (ModifyDevices)
path Parameters
id
required
integer

device id

Responses

Response samples

Content type
application/json
{
  • "message": "Device does not exit",
  • "errors": {
    }
}

Test device compliance

Test compliance policies against a device's latest configuration.

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
id
required
integer

device id

query Parameters
policy_id[]
required
Array of integers

List of compliance policy IDs to run.

Responses

Response Schema: application/json
Array of objects

A list of compliance rule test results.

Response samples

Content type
application/json
{
  • "Results": [
    ]
}

Perform a plugin command on a device

Perform a plugin command on a device primarily to get a device asset value

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Device ID

command
required
string

Plugin command name

Responses

Response Schema: application/json
Result
required
string

Plugin command result

Response samples

Content type
application/json
{
  • "Result": "FGVMEVHSBXXV7Z10"
}

Import devices

Import devices from a CSV files

Authorizations:
CookieTokenPermissions (ModifyDevice)
Request Body schema: multipart/form-data
overwrite
boolean
Default: false

Overwrite existing devices

file
string

CSV data (see Export for format)

Responses

Response Schema: application/json
NumberImported
integer

Number of devices that have been imported

object

Map of device's IP address to the corresponding error message(s) that occurred during import of the device

Response samples

Content type
application/json
{
  • "NumberImported": 123,
  • "DevicesNotImported": {
    }
}

Export devices

Export a selection of devices as CSV

Authorizations:
CookieTokenPermissions (ExportDevices)
Request Body schema: application/json
DeviceIDs
required
Array of integers
Default: []

A list of Device IDs to export

Filename
string
Default: "RPDevices"

Filename of the resulting CSV file

RedactCredentials
boolean
Default: false

Omit columns containing sensitive information

ExportCredentialsSet
boolean
Default: false

Exports credential set ID

IncludeAssets
boolean
Default: true

Wether to include asset information fields in the export

OmitEmptyColumns
boolean
Default: false

Omit empty columns from the resulting CSV

Responses

Response Headers
Content-Disposition
string
Example: "attachment; filename=\"RestorepointDevices.csv\""
Response Schema: text/csv
string

Request samples

Content type
application/json
{
  • "DeviceIDs": [
    ],
  • "Filename": "RPDevices",
  • "RedactCredentials": true,
  • "ExportCredentialsSet": true,
  • "IncludeAssets": false,
  • "OmitEmptyColumns": true
}

Response samples

Content type
text/csv
name,plugin,ip_address,protocol,owner,backup_interval,ccinform,keep_backup,notes,serial_no,asset_id,location,domain_name,snmp_version,use_dsa,monitor_ping,monitor_port,monitor_email,monitor_email_up,monitor_freq,monitor_fail,syslog_trigger,no_syslog_email,backup_config_types,email_backup_start,email_backup_end,backup_prefix,max_retries,Firmware_assetkey_text,Manufacturer_assetkey_text,Model_assetkey_text
example1,Cisco ASA,123.123.123.123,ssh,afox@restorepoint.com,,N,5,,,,Example Rack,Global,,N,N,,N,N,,,N,N,startup#running#full,N,N,id#name#,2,7.2(3),Cisco,ASA/FWSM
example2,Cisco ASA,123.123.123.123,ssh,afox@restorepoint.com,,N,5,,,,,Global,,N,N,22,Y,N,5,1,N,N,startup#running,N,N,id##,2,9.9(2)18,Cisco,ASAv

Test device login

Test device connection and login details

Authorizations:
Request Body schema: application/json
DomainID
integer
Default: 0

ID of the Domain a device belongs to (if any). Only allowed to be set during device creation.

PluginKey
required
string

A Plugin identifier (key) that sets the plugin a device uses

required
Array of objects (DevicePluginFields)

List of additional fields for a device, determined by the device plugin. Common field names are username, password, password2, backup_port, nat_bc.

Address
required
string

Network address of the device

AgentID
integer
Default: 0

ID of an Agent this device should communicate through. The default 0 means that Restorepoint will communicate with a device directly

Protocol
required
string

Connection protocol to use. Check device's plugin for supported protocols

CredentialID
integer
Default: 0

ID of the Credential assigned to this device. Credentials take precedence over any username or password set for the device

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating device connections over SSH. See Settings/PublicKey how to retrieve those for your appliance.

Responses

Response Schema: application/json
Device
string

Name of the device

Result
string

Result of the connection attempt

IsError
boolean

If the connection attempt was successful

Log
string

A log of the connection attempt

Request samples

Content type
application/json
{
  • "DomainID": 123,
  • "PluginKey": "cisco_ios",
  • "PluginFields": [
    ],
  • "Address": "127.0.0.1",
  • "AgentID": 0,
  • "Protocol": "scp",
  • "CredentialID": 123,
  • "UsePublicKeyAuthentication": false
}

Response samples

Content type
application/json
{
  • "Device": "New Device",
  • "Result": "Timeout",
  • "IsError": true,
  • "Log": "Progress: 1/46 (2%)\tTime:0.00s\tStatus: Startup Device: Control linux_server ssh (v25519)\nProgress: 2/46 (4%)\tTime:0.00s\tStatus: /usr/bin/ssh -p 22 127.0.0.1\nProgress: 3/46 (6%)\tTime:0.08s\tStatus: Running Custom Login sequence\nProgress: 4/46 (8%)\tTime:0.14s\tStatus: Running ssh Login sequence\nProgress: 13/46 (28%)\tTime:0.18s\tStatus: Wait Cmd (90s): No route to host,IDENTIFICATION HAS CHANGED,onnection refused,onnection timed out,co...l major versions differ: 2 vs. 1,no matching host key,ermission denied,User,assword,passwd:,PASSCODE\nProgress: 14/46 (30%)\tTime:0.18s\tStatus: Got Cmd: assword\nProgress: 15/46 (32%)\tTime:2.18s\tStatus: Send Cmd: \\n\nProgress: 21/46 (45%)\tTime:2.28s\tStatus: Wait Cmd (60s): >,#,$,option:,Main menu,TERM\nProgress: 22/46 (47%)\tTime:62.29s\tStatus: Error - Timeout\nProgress: 23/46 (50%)\tTime:62.29s\tStatus: Finished ssh Login sequence\nProgress: 24/46 (52%)\tTime:62.29s\tStatus: Closing ssh\nProgress: 25/46 (54%)\tTime:63.29s\tStatus: Closed ssh\nProgress: 26/46 (56%)\tTime:63.29s\tStatus: Stopping Connection: ssh\nProgress: 27/46 (58%)\tTime:63.29s\tStatus: Closing ssh\nProgress: 28/46 (60%)\tTime:64.29s\tStatus: Closed ssh\nProgress: 29/46 (63%)\tTime:64.29s\tStatus: Stop Device: ssh\nProgress: 30/46 (65%)\tTime:64.29s\tStatus: Finished Control\n\nTranscript for RP00000006: linux_server (v25519) Control using ssh.\n\nRECV: 0.04s: Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.\\r\\n\\rroot@127.0.0.1's password: \nSEND: 2.28s: \\n\nRECV: 2.28s: \\nPermission denied, please try again.\\r\\n\\rroot@127.0.0.1's password: \\n"
}

Get total number of devices grouped by some device field

Get total number of devices grouped by some device field

Authorizations:
CookieTokenPermissions (ViewDeviceauth)
query Parameters
group
required
string
Example: group=agent_id

a device search parameter that should be used to group device counter

filter_op
string
Enum: "and" "or"

Filter operation to use, either "and" or "or"

fulltext
string

Only return records matching the search term. Must have at least 3 characters

label_id[]
Array of strings

List of labels IDs to include in the results

not[label_id][]
Array of strings

List of label IDs to exclude from the results

manufacturer[]
Array of strings
Example: manufacturer[]=Cisco&manufacturer[]=BigIP

List of manufacturers to include in the results

not[manufacturer][]
Array of strings
Example: not[manufacturer][]=Solarwinds

List of manufacturers to exclude from the results

plugin_key[]
Array of strings
Example: plugin_key[]=cisco_ios

List of plugin keys to include in the results

not[plugin_key][]
Array of strings
Example: not[plugin_key][]=cisco_asa

List of plugin keys to exclude from the results

location[]
Array of strings
Example: location[]=Comms Rack&location[]=ESX Server 1

List of locations to include in the results

not[location][]
Array of strings
Example: not[location][]=Home Office

List of locations to exclude from the results

domain_id[]
Array of integers

List of domain IDs to include in the results

not[domain_id][]
Array of integers

List of domain IDs to exclude from the results

backupstatusstring[]
Array of strings
Example: backupstatusstring[]=OK

List of backup status to include in the results

not[backupstatusstring][]
Array of strings
Example: not[backupstatusstring][]=Failed

List of backup status to exclude from the results

agent_id[]
Array of integers

List of agent IDs to include in the results

not[agent_id][]
Array of integers

List of agent IDs to exclude from the results

protocol[]
Array of strings
Example: protocol[]=ssh&protocol[]=ftp

List of protocols to include in the results

compliancestatus[]
Array of strings

List of compliance status to include in the results

not[compliancestatus][]
Array of strings

List of compliance status to exclude from the results

not[protocol][]
Array of strings
Example: not[protocol][]=telnet/tftp

List of protocols to exclude from the results

lastbackupattempt_before
string

Timestamp to include results before the last backup attempt date.

lastbackupattempt_after
string

Timestamp to include results after the last backup attempt date.

lastbackup_before
string

Timestamp to include results before the last backup.

lastbackup_after
string

Timestamp to include results after the last backup date.

disabled
boolean

Disabled status to include in the results

up
boolean

Device monitored up status to include in the results

serial[]
Array of strings
Example: serial[]=FCZ1047W0F9&serial[]=FKD1227W0F9

List of serial numbers to include in the results

not[serial][]
Array of strings
Example: not[serial][]=FJJ13427W0D1

List of serial numbers to exclude from the results

firmware[]
Array of strings
Example: firmware[]=IOS 12.1(22)EA4&firmware[]=IOS 11.4(14)EA4

List of firmwares to include in the results

not[firmware][]
Array of strings
Example: not[firmware][]=IOS 10.1(34)EA2

List of firmwares to exclude from the results

assetid[]
Array of strings
Example: assetid[]=10101010ID&assetid[]=ThisAssetiD

List of assetids to include in the results

not[assetid][]
Array of strings
Example: not[assetid][]=10101010Id

List of assetids to exclude from the results

baseline[]
Array of strings
Example: baseline[]=1

Baseline status to include in the results

not[baseline][]
Array of strings
Example: not[baseline][]=0

Baseline status to exclude in the results

Responses

Response Schema: application/json
Array of objects

Response samples

Content type
application/json
{
  • "Counters": [
    ]
}

Upload a file for an assetfield

Upload a file as a device's assetfield value. The asset field has to be of type file.

Authorizations:
CookieTokenPermissions (ModifyDevice)
path Parameters
assetfield_id
required
integer

Assetfield ID

id
required
integer

Device ID

Request Body schema: multipart/form-data
file
required
string <binary>

The actual file

Responses

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Update policy's devices' compliance scores

Update policy's devices' compliance scores

Authorizations:
CookieTokenPermissions (ModifyDevice)
path Parameters
id
required
integer

Policy ID

Request Body schema: application/json
object

Responses

Response Schema: text/plain
string

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "message": "Policy does not exit",
  • "errors": {
    }
}

Device/Backup

A device backup can encapsulates one or more device configurations. Depending on the type of device, a device backup might be a simple text file or a multi-gigabyte TGZ.

Compare backups

Compare two backups

Authorizations:
Request Body schema: application/json
Array of objects 2 items

The two device backups to compare

OnlyDifferences
boolean
Default: false

Only return differences

HideIgnored
boolean
Default: false

Hide ignored differences with respect to plugin configuration

Context
integer
Default: 0

How many lines to return for context around differences if OnlyDifferences is set

Offset
integer
Default: 0

At what line to start a diff

Limit
integer
Default: 200

How many lines to return

HTML
boolean
Default: false

Return diff in HTML format

Responses

Response Schema: application/json
Diff
string

The diff as a HTML or plain text string

Total
integer

The maximum number of lines of the longest file

Request samples

Content type
application/json
{
  • "Backups": [
    ],
  • "OnlyDifferences": false,
  • "HideIgnored": false,
  • "Context": 3,
  • "Offset": 0,
  • "Limit": 200,
  • "HTML": false
}

Response samples

Content type
application/json
{
  • "Diff": "startup: radius-server host 172.16.0.1 auth-port 1812 acct-port 1813 key Cis$ko\nradius-server retransmit 4\n138c138\n< banner login \u0003welcome to Restorepoint\u0003\n---\n> banner login \u0003 test login banner \u0003\n!\nline con 0\n\n",
  • "Total": 320
}

List backups for a device

List backups of a device

Authorizations:
CookieTokenPermissions (ListBackups)
path Parameters
id
required
integer

Device ID

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Created,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant. Sortable fields are: Name, Created, Size, Firmware, Initiator, Version, and MD5.

search
string

TODO

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Backup)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Trigger a manual backup

Trigger a manual backup for this device. Please note that this will queue a backup request in the internal scheduler. The response will be a redirect to the resulting Job.

Authorizations:
CookieTokenPermissions (BackupDevice)
path Parameters
id
required
integer

Device ID

Responses

Import a backup

Import a configuration for a device

Authorizations:
CookieTokenPermissions (ModifyBackup)
path Parameters
id
required
integer

Device ID

Request Body schema: multipart/form-data
type
required
string
Default: "default"

Configuration type to be imported. See a device's Plugin for allowed types

file
required
string <binary>

Uploaded file

Responses

Response Schema: application/json
ID
integer

Device backup ID

DeviceID
integer

ID of the Device a backup belongs to

Name
string

Name of this backup, defaults to its filename

BackupFileID
integer

ID of the backup file a backup belongs to

Created
string

Timestamp in RFC3339 format when backup was created

Size
integer

Size of a backup in bytes

Firmware
string

Firmware version of the device at the time of backup

Initiator
string

Username of the user triggering a backup or "Auto" for backups triggered by a schedule

Version
integer
Default: 1

Unique version number of the backup

IsBaseline
boolean
Default: false

Allows to set a configuration version as a baseline version. Restoring a non-baseline configuration version to a device with a baseline configuration version will cause a compliance alert.

IsMilestone
boolean
Default: false

A configuration version can be retained indefinitely if it is set as a milestone configuration. This overrules any retention policy settings for this backup version.

Comment
string

Add a comment for this backup

ConfigurationTypes
Array of strings

List of configuration types that are part of this backup version

ScheduleName
string

Human readable schedule expression or "Manual" for manually triggered backups

Array of objects

List of MD5 sum for each configuration

Array of objects

List of SHA256 checksum for each of the backup's configuration types

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceID": 123,
  • "Name": "1-20210128151648",
  • "BackupFileID": 123,
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Size": 1024,
  • "Firmware": "IOS 12.1(22)EA8",
  • "Initiator": "string",
  • "Version": 12,
  • "IsBaseline": true,
  • "IsMilestone": false,
  • "Comment": "string",
  • "ConfigurationTypes": [
    ],
  • "ScheduleName": "Every 15th minute past every hour",
  • "MD5s": [
    ],
  • "SHA256Sums": [
    ]
}

Export a backup

Export one or more device backups

Authorizations:
CookieTokenPermissions (ExportBackup)
path Parameters
id
required
integer

Device ID

Request Body schema: application/json
BackupIDs
required
Array of integers

List of Backup IDs to export

ConfigurationTypes
Array of strings

List of Configuration Types to export for each Backup.

Method
string
Default: "email"
Enum: "download" "email" "local" "server"

Delivery method of how to transfer the backup to the requestor.

EmailAddress
string

Email address that an exported backup will be sent to. Requires Method to be set to "email"

FileServerID
integer

ID of a Fileserver to use for the export

Locations
Array of strings

If not empty and backup is multi-file, every location will act as the Filepath to filter backup files

Responses

Response Headers
Content-Disposition
string
Example: "attachment; filename=\"some_config.txt\""
Response Schema: application/json
BackupIDs
Array of integers

List of exported Backup IDs

ConfigurationTypes
Array of strings

List of Configuration Types to export for each Backup.

Array of objects

Details for backup files to download

EmailAddress
string

Email address that an exported backup was sent to if Method was set to "email"

object

Local SFTP/FTP/TFTP details when local was selected as the export method. Files and account will be deleted after 1 hour.

FileServerID
integer

ID of a Fileserver that was used for exporting

Request samples

Content type
application/json
Example
{
  • "BackupIDs": [
    ],
  • "Method": "download"
}

Response samples

Content type
application/json
{
  • "BackupIDs": [
    ],
  • "ConfigurationTypes": [
    ],
  • "DownloadFiles": [
    ],
  • "EmailAddress": "afox@restorepoint.com",
  • "DownloadDetails": {
    },
  • "FileServerID": 123
}

Retrieve backup details

Retrieve backup meta data

Authorizations:
path Parameters
backup_id
required
integer

Backup ID

id
required
integer

Device ID

Responses

Response Schema: application/json
ID
integer

Device backup ID

DeviceID
integer

ID of the Device a backup belongs to

Name
string

Name of this backup, defaults to its filename

BackupFileID
integer

ID of the backup file a backup belongs to

Created
string

Timestamp in RFC3339 format when backup was created

Size
integer

Size of a backup in bytes

Firmware
string

Firmware version of the device at the time of backup

Initiator
string

Username of the user triggering a backup or "Auto" for backups triggered by a schedule

Version
integer
Default: 1

Unique version number of the backup

IsBaseline
boolean
Default: false

Allows to set a configuration version as a baseline version. Restoring a non-baseline configuration version to a device with a baseline configuration version will cause a compliance alert.

IsMilestone
boolean
Default: false

A configuration version can be retained indefinitely if it is set as a milestone configuration. This overrules any retention policy settings for this backup version.

Comment
string

Add a comment for this backup

ConfigurationTypes
Array of strings

List of configuration types that are part of this backup version

ScheduleName
string

Human readable schedule expression or "Manual" for manually triggered backups

Array of objects

List of MD5 sum for each configuration

Array of objects

List of SHA256 checksum for each of the backup's configuration types

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceID": 123,
  • "Name": "1-20210128151648",
  • "BackupFileID": 123,
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Size": 1024,
  • "Firmware": "IOS 12.1(22)EA8",
  • "Initiator": "string",
  • "Version": 12,
  • "IsBaseline": true,
  • "IsMilestone": false,
  • "Comment": "string",
  • "ConfigurationTypes": [
    ],
  • "ScheduleName": "Every 15th minute past every hour",
  • "MD5s": [
    ],
  • "SHA256Sums": [
    ]
}

Update backup details

Set flags and comments on a backup (its underlying version)

Authorizations:
CookieTokenPermissions (ModifyBackup)
path Parameters
backup_id
required
integer

Backup ID

id
required
integer

Device ID

Request Body schema: application/json
Name
string

Name of this backup, defaults to its filename

IsBaseline
boolean
Default: false

Allows to set a configuration version as a baseline version. Restoring a non-baseline configuration version to a device with a baseline configuration version will cause a compliance alert.

IsMilestone
boolean
Default: false

A configuration version can be retained indefinitely if it is set as a milestone configuration. This overrules any retention policy settings for this backup version.

Comment
string

Add a comment for this backup

Responses

Response Schema: application/json
ID
integer

Device backup ID

DeviceID
integer

ID of the Device a backup belongs to

Name
string

Name of this backup, defaults to its filename

BackupFileID
integer

ID of the backup file a backup belongs to

Created
string

Timestamp in RFC3339 format when backup was created

Size
integer

Size of a backup in bytes

Firmware
string

Firmware version of the device at the time of backup

Initiator
string

Username of the user triggering a backup or "Auto" for backups triggered by a schedule

Version
integer
Default: 1

Unique version number of the backup

IsBaseline
boolean
Default: false

Allows to set a configuration version as a baseline version. Restoring a non-baseline configuration version to a device with a baseline configuration version will cause a compliance alert.

IsMilestone
boolean
Default: false

A configuration version can be retained indefinitely if it is set as a milestone configuration. This overrules any retention policy settings for this backup version.

Comment
string

Add a comment for this backup

ConfigurationTypes
Array of strings

List of configuration types that are part of this backup version

ScheduleName
string

Human readable schedule expression or "Manual" for manually triggered backups

Array of objects

List of MD5 sum for each configuration

Array of objects

List of SHA256 checksum for each of the backup's configuration types

Request samples

Content type
application/json
{
  • "Name": "1-20210128151648",
  • "IsBaseline": true,
  • "IsMilestone": false,
  • "Comment": "string"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceID": 123,
  • "Name": "1-20210128151648",
  • "BackupFileID": 123,
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Size": 1024,
  • "Firmware": "IOS 12.1(22)EA8",
  • "Initiator": "string",
  • "Version": 12,
  • "IsBaseline": true,
  • "IsMilestone": false,
  • "Comment": "string",
  • "ConfigurationTypes": [
    ],
  • "ScheduleName": "Every 15th minute past every hour",
  • "MD5s": [
    ],
  • "SHA256Sums": [
    ]
}

Delete a backup

Delete a backup

Authorizations:
CookieTokenPermissions (ModifyBackup)
path Parameters
backup_id
required
integer

Backup ID

id
required
integer

Device ID

query Parameters
reason
string

Reason for deleting the required backup

Responses

Response samples

Content type
application/json
{
  • "message": "Backup does not exit",
  • "errors": {
    }
}

Configuration details

Retrieve details for a backup config

Authorizations:
path Parameters
backup_id
required
integer

Backup ID

id
required
integer

Device ID

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

Request Body schema: application/json
ConfigType
string

Configuration type to retrieve

Location
string

Filepath to retrieve for a multi-file backup. Passing an empty Location will return a list of files for a multi-file backup

Search
string

Search configuration for a specific phrase

Responses

Response Schema: application/json
IsList
boolean
Default: false

Whether or not the response is a list of files or configuration data

Array of objects

Directory entries for a multi-file backup. Entries are flattened and returned with their full path.

Lines
Array of strings

HTML encoded configuration data, every line becoming an entry in the array

Search
string

Requested search phrase

SearchIndex
Array of integers

Indices of lines matching Search

Offset
integer

Requested offset

Limit
integer

Requested limit

NumLines
integer <= 500

Number of lines returned

TotalLines
integer

Total number of lines returned

Request samples

Content type
application/json
{
  • "ConfigType": "startup",
  • "Location": "foo/bar.baz",
  • "Search": "eth0"
}

Response samples

Content type
application/json
{
  • "IsList": true,
  • "List": [
    ],
  • "Lines": [
    ],
  • "Search": "eth0",
  • "SearchIndex": [
    ],
  • "Offset": 123,
  • "Limit": 900,
  • "NumLines": 123,
  • "TotalLines": 1234
}

Restore a backup

Restore a device configuration from a backup or clone a backup to a different device

Authorizations:
CookieTokenPermissions (RestoreDevice)
path Parameters
backup_id
required
integer

Backup ID

id
required
integer

Device ID

Request Body schema: application/json
TargetDeviceID
integer

A different device (of the same type) to restore this backup to

SourceConfigType
string

Which configuration to restore (if there are multiple)

TargetConfigType
string

Which configuration type to restore into (if there are multiple)

ResetAfter
boolean
Default: false

Reboot the device after successful restore

Responses

Request samples

Content type
application/json
Example
{
  • "SourceConfigType": "running",
  • "TargetConfigType": "startup",
  • "ResetAfter": false
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Device/BulkEdit

Allows editing multiple devices at once. This losely follows the structure of the Device model.

Restorepoint will aggregate values for individual settings.

String values that are not the same across all selected devices will be returned as [Multiple]. You can either override all values by setting a different value or leave unchanged by passing back [Multiple].

Boolean values on the Device model will have their equivalent field as integers, with -1 meaning multiple values, 0 for false and 1 for true. Either set a new value for a field or pass back -1 to leave it unchanged.

Integers will use -1 to denote multiple values. Either set a new value for a field or pass back -1 to leave it unchanged.

Please note that not all fields of the Device model can be edited this way.

Retrieve multiple devices for editing

Retrieve aggregated devices for editing by passing two or more device IDs

Authorizations:
CookieTokenPermissions (ViewDevices)
Request Body schema: application/json
DeviceIDs
required
Array of integers >= 2 items

List of Device IDs to edit in bulk

Responses

Response Schema: application/json
DeviceIDs
required
Array of integers

List of Device IDs to edit in bulk

DeviceNames
required
string

Aggregated list of device names for display purposes

PluginKey
string

Key of Plugin used for all devices or [Multiple]

PushDevices
boolean

Set to true if any selected device uses a "push" type plugin

DomainID
required
integer

ID of Domain. -1 will be returned for multiple, 0 for Global

LabelIDs
required
Array of integers

A list of Labels that are shared across all selected devices.

AgentID
required
integer

ID of Agent. -1 will be returned for multiple, 0 when no agent was used

Disabled
required
integer

Device disabled status, -1 - Multiple, 0 - Off, 1 - On

DisabledUntil
required
string

Timestamp of when to re-enable devices if they are disabled or [Multiple]. Pass an empty string "" to disable a device forever.

DisabledReason
required
string

Reason for disabling devices

BackupPrefix
required
string

Prefix for backup filenames, [Multiple] for multiple values

NotificationEmails
required
Array of strings

Notification email addresses, that are shared across all selected devices.

required
object

Notification settings

required
object

A Monitor represents a single monitor schedule and detail

Protocol
required
string

Connection protocol to use. This has to be one of the returned Protocols or [Multiple] to leave unchanged

Protocols
Array of strings

List of supported protocols for the selected devices. Will be an empty list [] if there's no possible delta

required
object

Map of data fields common to all devices. Values will be either whatever is common across all devices or [Multiple]

CredentialID
required
integer

Credentials to use across selected devices. 0 for none, -1 for multiple

BackupScheduleName
string

Return a human-readable description of a schedule across all devices or [Multiple]

UpdatedCount
integer

Returns the amount of devices the user has permission to update

required
object

What should Restorepoint to when a device encounters an error taking backups.

Array of objects

List of Assetfields with device specific data (or [Multiple] for multiple values)

PolicyIDs
required
Array of integers

A list of Compliance policies' IDs that are shared across all selected devices.

required
object

Additional information common to devices.

Request samples

Content type
application/json
{
  • "DeviceIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Foo, Bar, Baz and 123 others.",
  • "PluginKey": "cisco_ios",
  • "PushDevices": false,
  • "DomainID": 0,
  • "LabelIDs": [
    ],
  • "AgentID": 0,
  • "Disabled": 0,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "BackupPrefix": "string",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "Monitor": {
    },
  • "Protocol": "[Multiple]",
  • "Protocols": [
    ],
  • "Data": {
    },
  • "CredentialID": -1,
  • "BackupScheduleName": "Every hour, on the hour",
  • "UpdatedCount": 135,
  • "FailurePolicy": {
    },
  • "AssetFields": [
    ],
  • "PolicyIDs": [
    ],
  • "AdditionalInformation": {
    }
}

Update multiple devices

Update multiple devices at once

Authorizations:
CookieTokenPermissions (ModifyDevice)
query Parameters
async
boolean
Default: false

Update the devices asynchronously. Responds with an empty 202 if update task is queued.

Request Body schema: application/json
DeviceIDs
required
Array of integers

List of Device IDs to edit in bulk

PluginKey
string

Key of Plugin used for all devices or [Multiple]

DomainID
required
integer

ID of Domain. -1 will be returned for multiple, 0 for Global

LabelIDs
required
Array of integers

A list of Labels that are shared across all selected devices.

AgentID
required
integer

ID of Agent. -1 will be returned for multiple, 0 when no agent was used

Disabled
required
integer

Device disabled status, -1 - Multiple, 0 - Off, 1 - On

DisabledUntil
required
string

Timestamp of when to re-enable devices if they are disabled or [Multiple]. Pass an empty string "" to disable a device forever.

DisabledReason
required
string

Reason for disabling devices

BackupPrefix
required
string

Prefix for backup filenames, [Multiple] for multiple values

NotificationEmails
required
Array of strings

Notification email addresses, that are shared across all selected devices.

required
object

Notification settings

required
object

A Monitor represents a single monitor schedule and detail

Protocol
required
string

Connection protocol to use. This has to be one of the returned Protocols or [Multiple] to leave unchanged

required
object

Map of data fields common to all devices. Values will be either whatever is common across all devices or [Multiple]

CredentialID
required
integer

Credentials to use across selected devices. 0 for none, -1 for multiple

BackupScheduleMode
string
Default: "add"
Enum: "replace" "add"

Replace or add backup schedules to devices. Pass replace and an empty array for BackupSchedules to delete all existing schedules.

Array of objects

Allows you to set one or more schedules for all devices

required
object

What should Restorepoint to when a device encounters an error taking backups.

Array of objects

List of Assetfields with device specific data (or [Multiple] for multiple values)

PolicyIDs
required
Array of integers

A list of Compliance policies' IDs that are shared across all selected devices.

required
object

Additional information common to devices.

Responses

Response Schema: application/json
DeviceIDs
required
Array of integers

List of Device IDs to edit in bulk

DeviceNames
required
string

Aggregated list of device names for display purposes

PluginKey
string

Key of Plugin used for all devices or [Multiple]

PushDevices
boolean

Set to true if any selected device uses a "push" type plugin

DomainID
required
integer

ID of Domain. -1 will be returned for multiple, 0 for Global

LabelIDs
required
Array of integers

A list of Labels that are shared across all selected devices.

AgentID
required
integer

ID of Agent. -1 will be returned for multiple, 0 when no agent was used

Disabled
required
integer

Device disabled status, -1 - Multiple, 0 - Off, 1 - On

DisabledUntil
required
string

Timestamp of when to re-enable devices if they are disabled or [Multiple]. Pass an empty string "" to disable a device forever.

DisabledReason
required
string

Reason for disabling devices

BackupPrefix
required
string

Prefix for backup filenames, [Multiple] for multiple values

NotificationEmails
required
Array of strings

Notification email addresses, that are shared across all selected devices.

required
object

Notification settings

required
object

A Monitor represents a single monitor schedule and detail

Protocol
required
string

Connection protocol to use. This has to be one of the returned Protocols or [Multiple] to leave unchanged

Protocols
Array of strings

List of supported protocols for the selected devices. Will be an empty list [] if there's no possible delta

required
object

Map of data fields common to all devices. Values will be either whatever is common across all devices or [Multiple]

CredentialID
required
integer

Credentials to use across selected devices. 0 for none, -1 for multiple

BackupScheduleName
string

Return a human-readable description of a schedule across all devices or [Multiple]

UpdatedCount
integer

Returns the amount of devices the user has permission to update

required
object

What should Restorepoint to when a device encounters an error taking backups.

Array of objects

List of Assetfields with device specific data (or [Multiple] for multiple values)

PolicyIDs
required
Array of integers

A list of Compliance policies' IDs that are shared across all selected devices.

required
object

Additional information common to devices.

Request samples

Content type
application/json
{
  • "DeviceIDs": [
    ],
  • "PluginKey": "cisco_ios",
  • "DomainID": 0,
  • "LabelIDs": [
    ],
  • "AgentID": 0,
  • "Disabled": 0,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "BackupPrefix": "string",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "Monitor": {
    },
  • "Protocol": "[Multiple]",
  • "Data": {
    },
  • "CredentialID": -1,
  • "BackupScheduleMode": "add",
  • "BackupSchedules": [
    ],
  • "FailurePolicy": {
    },
  • "AssetFields": [
    ],
  • "PolicyIDs": [
    ],
  • "AdditionalInformation": {
    }
}

Response samples

Content type
application/json
{
  • "DeviceIDs": [
    ],
  • "DeviceNames": "Foo, Bar, Baz and 123 others.",
  • "PluginKey": "cisco_ios",
  • "PushDevices": false,
  • "DomainID": 0,
  • "LabelIDs": [
    ],
  • "AgentID": 0,
  • "Disabled": 0,
  • "DisabledUntil": "2021-01-18T23:59:59.999Z",
  • "DisabledReason": "string",
  • "BackupPrefix": "string",
  • "NotificationEmails": [
    ],
  • "Notifications": {
    },
  • "Monitor": {
    },
  • "Protocol": "[Multiple]",
  • "Protocols": [
    ],
  • "Data": {
    },
  • "CredentialID": -1,
  • "BackupScheduleName": "Every hour, on the hour",
  • "UpdatedCount": 135,
  • "FailurePolicy": {
    },
  • "AssetFields": [
    ],
  • "PolicyIDs": [
    ],
  • "AdditionalInformation": {
    }
}

Spread device schedules

Allows spreading the schedule of two or more devices evenly over a given time period. This will replace all existing schedules for selected devices.

Authorizations:
CookieTokenPermissions (ModifyDevice)
Request Body schema: application/json
DeviceIDs
required
Array of integers

List of Device IDs to set the schedule for

SpreadAcross
required
string
Enum: "Day" "Week" "Month"

Time period to spread the selected device's schedules across.

RetainVersions
integer
Default: 10

How many different versions of backups to keep for the created schedule (0 for unlimited)

StartHour
integer [ 0 .. 23 ]
Default: 0

Hour of the day to start the schedule from

EndHour
integer [ 0 .. 23 ]
Default: 23

Hour of the day to run the schedule to (up until the last minute of that hour)

StartDayOfWeek
string
Default: "Sunday"
Enum: "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday"

Day of the week to start schedule from (when SpreadAcross is set to Week)

EndDayOfWeek
string
Default: "Saturday"
Enum: "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday"

Day of the week to run schedule to including (when SpreadAcross is set to Week)

StartDayOfMonth
integer [ 1 .. 28 ]
Default: 1

Day of the month to start schedule from (when SpreadAcross is set to Month)

EndDayOfMonth
integer [ 1 .. 28 ]
Default: 28

Day of the month to run schedule to including (when SpreadAcross is set to Month)

Responses

Response Schema: application/json
UpdatedCount
integer

Request samples

Content type
application/json
{
  • "DeviceIDs": [
    ],
  • "SpreadAcross": "Day",
  • "RetainVersions": 5,
  • "StartHour": 6,
  • "EndHour": 12,
  • "StartDayOfWeek": "Sunday",
  • "EndDayOfWeek": "Saturday",
  • "StartDayOfMonth": 5,
  • "EndDayOfMonth": 15
}

Response samples

Content type
application/json
{
  • "UpdatedCount": "Number of updated devices"
}

Device/BulkCreate

Allows creating multiple devices at once. It will create a scheduled task with the given devices and create a log entry for each device creation and one when all the devices are created.

Create devices in bulk

Bulk creates given devices asynchronously.

Authorizations:
Request Body schema: application/json
required
Array of objects (Device)

List of Device objects to create

Responses

Request samples

Content type
application/json
{
  • "Devices": [
    ]
}

Response samples

Content type
application/json
{
  • "JobUID": 0
}

Dictionary

Dictionaries for various auto-complete and search filter settings.

Retrieve a dictionary

Retrieve a dictionary for a given type

Authorizations:
path Parameters
type
required
string
Enum: "device-locations" "device-manufacturers" "device-protocols" "device-serials" "device-firmwares" "device-models" "device-states" "device-owners" "domain-contacts" "domain-emails" "log-objecttypes" "log-actions" "backup-firmwareversions" "device-assetids"

Dictionary identifier

Responses

Response Schema: application/json
property name*
string

Response samples

Content type
application/json
Example
{
  • "telnet": "Telnet",
  • "ssh": "SSH",
  • "scp": "SCP",
  • "ftp": "FTP",
  • "sftp": "SFTP",
  • "tftp": "TFTP",
  • "http": "HTTP",
  • "https": "HTTPS",
  • "ibap": "IBAP"
}

Discovery

The Restorepoint device discovery engine uses a variety of methods to discover hosts on your network that can be imported into the main device list. You can also be notified by email of new devices that are installed on your network.

Note: Device discovery is not guaranteed to discover all the relevant devices on your network; firewalls or the device configuration itself may negatively affect the discovery process. Similarly, the device type may not always be detected correctly; however, when you import a device, you will be able to override the detected type.

Run device discovery

Triggers a manual device discovery run, based on the current Discovery Settings.

Authorizations:
CookieTokenPermissions (ModifyDiscovery)

Responses

Import discovered devices

Import previously discovered devices

Authorizations:
CookieTokenPermissions (ModifyDiscovery)
Request Body schema: application/json
required
Array of objects

List of discovered device IDs and optional plugin overrides

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Rescan discovered devices

Run discovery on already discovered devices

Authorizations:
CookieTokenPermissions (ModifyDiscovery)
Request Body schema: application/json
IDs
Array of integers

IDs of already discovered devices to be re-scanned.

Responses

Request samples

Content type
application/json
{
  • "IDs": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Discovery/Device

New devices as discovered by a manual or scheduled device discovery run will appear here.

List discovered devices

Retrieve all discovered devices. By default, ignored devices are excluded from result

Authorizations:
CookieTokenPermissions (ModifyDiscovery)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

ignored
boolean

If set to true, only ignored discovered devices are fetched

fulltext
string

Only return records matching the search term. Must have at least 3 characters

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Discovered Device)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Change discovered device settings

Change one or more discovered device's Ignore value

Authorizations:
CookieTokenPermissions (ModifyDiscovery)
Request Body schema: application/json
required
Array of objects

List of discovered device IDs and their Ignored status

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Domain

Domains allow you to organise devices into separate domains, and delegate their management to Domain Administrators.

A typical use is for Service Providers managing multiple customers, or large enterprises with separate teams, where it is essential to restrict the scope of administrators to a subset of network devices.

Please note: Domains are only available with an Enterprise licence.

List domains

Retrieve all domains

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

contact[]
Array of strings

List of contacts to include in the results

not[contact][]
Array of strings

List of contacts to exclude from the results

email[]
Array of strings

List of emails to include in the results

not[email][]
Array of strings

List of emails to exclude from the results

licence_expiry_before
string

Timestamp to include results before the licence expiry date.

licence_expiry_after
string

Timestamp to include results after the licence expiry date.

domain_id[]
Array of integers

List of domain IDs to include in the results

not[domain_id][]
Array of integers

List of domain IDs to exclude from the results

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Domain)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a domain

Create a new domain

Authorizations:
CookieTokenPermissions (ModifyDomain)
Request Body schema: application/json
Name
required
string

Domain name

Networks
Array of strings
Default: []

One or more IP address ranges that are allowed for this domain (CIDR notation)

NatAddress
string

A domain-wide NAT IP address, which overrides the system-wide setting. This setting can in turn be overridden by the device-specific setting.

Contact
string

Name of the main contact for this domain

Phone
string

Contact telephone number

Email
string

Contact email

Address
string

Customer or Business Unit address

Notes
string

Additional information

MaxDevices
integer
Default: 0

Maximum permitted number of devices that can be added to this domain. 0 means no limit.

Logo
string

Domain specific branding as a Base64 encoded string. For optimal results, the logo should be exactly 100 pixels wide and up to 100 pixels tall, and no more than 40KB in size.

RemoveLicence
boolean
Default: false

Hide the expiration date for users in this domain

RemoveSerial
boolean
Default: false

Hide the appliance serial for users in this domain

RemoveHelp
boolean
Default: false

Disallow access to the help for users in this domain

UseLicence
boolean
Default: false

Enfoce license will expire a domain at a given date, see LicenceExpiry field

LicenceExpiry
string

License expiration timestamp in RFC3339 format

DisableDevices
boolean
Default: false

Stop all scheduled jobs for this domain when LicenceExpiry date and time is reached

PreventLogin
boolean
Default: false

Disallow users of this domain from accessing the appliance when LicenceExpiry date and time is reached

Responses

Response Schema: application/json
ID
integer

Domain ID

DeviceIDs
Array of integers

A list of Device IDs to assign to this domain. Note: When retrieving a list of domains, this field will be left blank for performance reasons.

DeviceCount
integer
Default: 0

Number of devices in a domain

Name
required
string

Domain name

Networks
Array of strings
Default: []

One or more IP address ranges that are allowed for this domain (CIDR notation)

NatAddress
string

A domain-wide NAT IP address, which overrides the system-wide setting. This setting can in turn be overridden by the device-specific setting.

Contact
string

Name of the main contact for this domain

Phone
string

Contact telephone number

Email
string

Contact email

Address
string

Customer or Business Unit address

Notes
string

Additional information

MaxDevices
integer
Default: 0

Maximum permitted number of devices that can be added to this domain. 0 means no limit.

Logo
string

Domain specific branding as a Base64 encoded string. For optimal results, the logo should be exactly 100 pixels wide and up to 100 pixels tall, and no more than 40KB in size.

RemoveLicence
boolean
Default: false

Hide the expiration date for users in this domain

RemoveSerial
boolean
Default: false

Hide the appliance serial for users in this domain

RemoveHelp
boolean
Default: false

Disallow access to the help for users in this domain

UseLicence
boolean
Default: false

Enfoce license will expire a domain at a given date, see LicenceExpiry field

LicenceExpiry
string

License expiration timestamp in RFC3339 format

DisableDevices
boolean
Default: false

Stop all scheduled jobs for this domain when LicenceExpiry date and time is reached

PreventLogin
boolean
Default: false

Disallow users of this domain from accessing the appliance when LicenceExpiry date and time is reached

Request samples

Content type
application/json
{
  • "Name": "Example domain",
  • "Networks": [
    ],
  • "NatAddress": "172.16.0.1",
  • "Contact": "Anna Fox",
  • "Phone": "+44 844 571 8120",
  • "Email": "afox@restorepoint.com",
  • "Address": "4 Tannery Ln, Send, Woking GU23 7EF",
  • "Notes": "Just an example",
  • "MaxDevices": 100,
  • "Logo": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
  • "RemoveLicence": true,
  • "RemoveSerial": true,
  • "RemoveHelp": true,
  • "UseLicence": true,
  • "LicenceExpiry": "2021-05-20T00:00:00Z",
  • "DisableDevices": true,
  • "PreventLogin": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceIDs": [
    ],
  • "DeviceCount": 123,
  • "Name": "Example domain",
  • "Networks": [
    ],
  • "NatAddress": "172.16.0.1",
  • "Contact": "Anna Fox",
  • "Phone": "+44 844 571 8120",
  • "Email": "afox@restorepoint.com",
  • "Address": "4 Tannery Ln, Send, Woking GU23 7EF",
  • "Notes": "Just an example",
  • "MaxDevices": 100,
  • "Logo": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
  • "RemoveLicence": true,
  • "RemoveSerial": true,
  • "RemoveHelp": true,
  • "UseLicence": true,
  • "LicenceExpiry": "2021-05-20T00:00:00Z",
  • "DisableDevices": true,
  • "PreventLogin": true
}

Retrieve a domain

Retrieve a single domain

Authorizations:
path Parameters
id
required
integer

Domain ID

Responses

Response Schema: application/json
ID
integer

Domain ID

DeviceIDs
Array of integers

A list of Device IDs to assign to this domain. Note: When retrieving a list of domains, this field will be left blank for performance reasons.

DeviceCount
integer
Default: 0

Number of devices in a domain

Name
required
string

Domain name

Networks
Array of strings
Default: []

One or more IP address ranges that are allowed for this domain (CIDR notation)

NatAddress
string

A domain-wide NAT IP address, which overrides the system-wide setting. This setting can in turn be overridden by the device-specific setting.

Contact
string

Name of the main contact for this domain

Phone
string

Contact telephone number

Email
string

Contact email

Address
string

Customer or Business Unit address

Notes
string

Additional information

MaxDevices
integer
Default: 0

Maximum permitted number of devices that can be added to this domain. 0 means no limit.

Logo
string

Domain specific branding as a Base64 encoded string. For optimal results, the logo should be exactly 100 pixels wide and up to 100 pixels tall, and no more than 40KB in size.

RemoveLicence
boolean
Default: false

Hide the expiration date for users in this domain

RemoveSerial
boolean
Default: false

Hide the appliance serial for users in this domain

RemoveHelp
boolean
Default: false

Disallow access to the help for users in this domain

UseLicence
boolean
Default: false

Enfoce license will expire a domain at a given date, see LicenceExpiry field

LicenceExpiry
string

License expiration timestamp in RFC3339 format

DisableDevices
boolean
Default: false

Stop all scheduled jobs for this domain when LicenceExpiry date and time is reached

PreventLogin
boolean
Default: false

Disallow users of this domain from accessing the appliance when LicenceExpiry date and time is reached

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceIDs": [
    ],
  • "DeviceCount": 123,
  • "Name": "Example domain",
  • "Networks": [
    ],
  • "NatAddress": "172.16.0.1",
  • "Contact": "Anna Fox",
  • "Phone": "+44 844 571 8120",
  • "Email": "afox@restorepoint.com",
  • "Address": "4 Tannery Ln, Send, Woking GU23 7EF",
  • "Notes": "Just an example",
  • "MaxDevices": 100,
  • "Logo": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
  • "RemoveLicence": true,
  • "RemoveSerial": true,
  • "RemoveHelp": true,
  • "UseLicence": true,
  • "LicenceExpiry": "2021-05-20T00:00:00Z",
  • "DisableDevices": true,
  • "PreventLogin": true
}

Update a domain

Update a domain

Authorizations:
CookieTokenPermissions (ModifyDomain)
path Parameters
id
required
integer

Domain ID

Request Body schema: application/json
Name
required
string

Domain name

Networks
Array of strings
Default: []

One or more IP address ranges that are allowed for this domain (CIDR notation)

NatAddress
string

A domain-wide NAT IP address, which overrides the system-wide setting. This setting can in turn be overridden by the device-specific setting.

Contact
string

Name of the main contact for this domain

Phone
string

Contact telephone number

Email
string

Contact email

Address
string

Customer or Business Unit address

Notes
string

Additional information

MaxDevices
integer
Default: 0

Maximum permitted number of devices that can be added to this domain. 0 means no limit.

Logo
string

Domain specific branding as a Base64 encoded string. For optimal results, the logo should be exactly 100 pixels wide and up to 100 pixels tall, and no more than 40KB in size.

RemoveLicence
boolean
Default: false

Hide the expiration date for users in this domain

RemoveSerial
boolean
Default: false

Hide the appliance serial for users in this domain

RemoveHelp
boolean
Default: false

Disallow access to the help for users in this domain

UseLicence
boolean
Default: false

Enfoce license will expire a domain at a given date, see LicenceExpiry field

LicenceExpiry
string

License expiration timestamp in RFC3339 format

DisableDevices
boolean
Default: false

Stop all scheduled jobs for this domain when LicenceExpiry date and time is reached

PreventLogin
boolean
Default: false

Disallow users of this domain from accessing the appliance when LicenceExpiry date and time is reached

Responses

Response Schema: application/json
ID
integer

Domain ID

DeviceIDs
Array of integers

A list of Device IDs to assign to this domain. Note: When retrieving a list of domains, this field will be left blank for performance reasons.

DeviceCount
integer
Default: 0

Number of devices in a domain

Name
required
string

Domain name

Networks
Array of strings
Default: []

One or more IP address ranges that are allowed for this domain (CIDR notation)

NatAddress
string

A domain-wide NAT IP address, which overrides the system-wide setting. This setting can in turn be overridden by the device-specific setting.

Contact
string

Name of the main contact for this domain

Phone
string

Contact telephone number

Email
string

Contact email

Address
string

Customer or Business Unit address

Notes
string

Additional information

MaxDevices
integer
Default: 0

Maximum permitted number of devices that can be added to this domain. 0 means no limit.

Logo
string

Domain specific branding as a Base64 encoded string. For optimal results, the logo should be exactly 100 pixels wide and up to 100 pixels tall, and no more than 40KB in size.

RemoveLicence
boolean
Default: false

Hide the expiration date for users in this domain

RemoveSerial
boolean
Default: false

Hide the appliance serial for users in this domain

RemoveHelp
boolean
Default: false

Disallow access to the help for users in this domain

UseLicence
boolean
Default: false

Enfoce license will expire a domain at a given date, see LicenceExpiry field

LicenceExpiry
string

License expiration timestamp in RFC3339 format

DisableDevices
boolean
Default: false

Stop all scheduled jobs for this domain when LicenceExpiry date and time is reached

PreventLogin
boolean
Default: false

Disallow users of this domain from accessing the appliance when LicenceExpiry date and time is reached

Request samples

Content type
application/json
{
  • "Name": "Example domain",
  • "Networks": [
    ],
  • "NatAddress": "172.16.0.1",
  • "Contact": "Anna Fox",
  • "Phone": "+44 844 571 8120",
  • "Email": "afox@restorepoint.com",
  • "Address": "4 Tannery Ln, Send, Woking GU23 7EF",
  • "Notes": "Just an example",
  • "MaxDevices": 100,
  • "Logo": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
  • "RemoveLicence": true,
  • "RemoveSerial": true,
  • "RemoveHelp": true,
  • "UseLicence": true,
  • "LicenceExpiry": "2021-05-20T00:00:00Z",
  • "DisableDevices": true,
  • "PreventLogin": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "DeviceIDs": [
    ],
  • "DeviceCount": 123,
  • "Name": "Example domain",
  • "Networks": [
    ],
  • "NatAddress": "172.16.0.1",
  • "Contact": "Anna Fox",
  • "Phone": "+44 844 571 8120",
  • "Email": "afox@restorepoint.com",
  • "Address": "4 Tannery Ln, Send, Woking GU23 7EF",
  • "Notes": "Just an example",
  • "MaxDevices": 100,
  • "Logo": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
  • "RemoveLicence": true,
  • "RemoveSerial": true,
  • "RemoveHelp": true,
  • "UseLicence": true,
  • "LicenceExpiry": "2021-05-20T00:00:00Z",
  • "DisableDevices": true,
  • "PreventLogin": true
}

Delete a domain

Delete a domain

Authorizations:
CookieTokenPermissions (ModifyDomain)
path Parameters
id
required
integer

Domain ID

Responses

Response samples

Content type
application/json
{
  • "message": "Domain does not exit",
  • "errors": {
    }
}

Export domain's relationships

Export single domain's relationships

Authorizations:
path Parameters
id
required
integer

Domain ID

Responses

Response samples

Content type
application/json
{
  • "message": "Domain does not exit",
  • "errors": {
    }
}

Download

An endpoint to download files from.

Download a file

Download a file for a given identifier

Authorizations:
path Parameters
id
required
string
Example: 542e5156-5fc0-4d6e-a16f-173a4b27e22c

Download ID

Responses

Response Schema: application/octet-stream
string <binary>

File contents.

Response samples

Content type
application/json
{
  • "message": "Download does not exist",
  • "errors": {
    }
}

Export

Allows you to export device configurations, logs and settings for multiple devices or domains.

Create an export

Create an new export

Authorizations:
CookieTokenPermissions (ExportDevices)
Request Body schema: application/json
DeviceIDs
Array of integers

List of Device IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

DomainIDs
Array of integers

List of Domain IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

Configurations
required
string
Enum: "None" "MostRecent" "All"

Which device configurations to export

IncludeLogs
boolean
Default: false

Include device logs in the export

IncludeData
boolean
Default: false

Include device data in the export

Format
string
Default: "TGZ"
Enum: "TGZ" "ZIP" "IndividualFiles"

File format for the export. IndividualFiles directly exports the individual config files.

Method
string
Default: "download"
Enum: "download" "server"

Delivery method of how to transfer the backup to the requestor.

ChunkSize
required
integer

Chunk size for exported data in bytes

FileServerID
integer

ID of a Fileserver to use for the export

Responses

Response Headers
Content-Disposition
string
Example: "attachment; filename=\"data.zip\""
Response Schema: application/json
DeviceIDs
Array of integers

List of exported Device IDs

DomainIDs
Array of integers

List of exported Domain IDs

FileServerID
integer

ID of a Fileserver that was used for exporting

DownloadURL
string

URL to download the exported firmware(s) from

Request samples

Content type
application/json
Example
{
  • "DeviceIDs": [
    ],
  • "Configurations": "All",
  • "Format": "TGZ",
  • "Method": "download",
  • "ChunkSize": 256000000
}

Response samples

Content type
application/json
{
  • "DeviceIDs": [
    ],
  • "DomainIDs": [
    ],
  • "FileServerID": 123,
  • "DownloadURL": "/downloads/90404db7-a6a4-4601-b1fa-9e7df327b984"
}

Export/Policy

Automatically export device configurations to a specified file server.

Please do not mistake this for the device policy export endpoint.

List policies

Retrieve all policies

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Policy)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a policy

Create a new policy

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
FileserverID
required
integer

ID of the Fileserver to use for exports

DeviceIDs
Array of integers

List of Device IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

DomainIDs
Array of integers

List of Domain IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

Mode
required
string
Default: "AllDevices"
Enum: "AllDevices" "Devices" "Domains"

What to export. Can be AllDevices for all configurations for all devices, Devices for a given list of devices as defined in DeviceIDs or Domains for a list of domains as set via DomainIDs

Policy
string
Default: "Always"
Enum: "Always" "NewVersions" "BeforeDeletion"

Select when to automatically export configurations to your external server. Always will export when a backup is completed, NewVersions will export when a backup is completed and the version number of the backup has changed, and BeforeDeletion will export only the backups that are due for removal from the Restorepoint appliance.

GPGPassphrase
string

Passphrase that will be used to encrypt exported backups with GPG. If not passed, encryption will be disabled.

UseRetentionPolicy
boolean
Default: false

If true, exported backups will be deleted if retention policy is expired

IncludeDeviceName
boolean
Default: false

The filename / path on the remote server will include a Device's name

IncludeDomainName
boolean
Default: false

The filename / path on the remote server will include a device's Domain name

Disabled
boolean
Default: false

Disables an export policy

Responses

Response Schema: application/json
ID
integer

Export policy ID

FileserverID
required
integer

ID of the Fileserver to use for exports

FileserverName
string

Name of the Fileserver to use for exports

DeviceIDs
Array of integers

List of Device IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

DomainIDs
Array of integers

List of Domain IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

Summary
string

A summary of what a policy contains for display purposes, either "All devices", a list of device names or domain names

Mode
required
string
Default: "AllDevices"
Enum: "AllDevices" "Devices" "Domains"

What to export. Can be AllDevices for all configurations for all devices, Devices for a given list of devices as defined in DeviceIDs or Domains for a list of domains as set via DomainIDs

Policy
string
Default: "Always"
Enum: "Always" "NewVersions" "BeforeDeletion"

Select when to automatically export configurations to your external server. Always will export when a backup is completed, NewVersions will export when a backup is completed and the version number of the backup has changed, and BeforeDeletion will export only the backups that are due for removal from the Restorepoint appliance.

GPGPassphrase
string

Passphrase that will be used to encrypt exported backups with GPG. If not passed, encryption will be disabled.

UseRetentionPolicy
boolean
Default: false

If true, exported backups will be deleted if retention policy is expired

IncludeDeviceName
boolean
Default: false

The filename / path on the remote server will include a Device's name

IncludeDomainName
boolean
Default: false

The filename / path on the remote server will include a device's Domain name

Disabled
boolean
Default: false

Disables an export policy

Request samples

Content type
application/json
{
  • "FileserverID": 123,
  • "DeviceIDs": [
    ],
  • "DomainIDs": [ ],
  • "Mode": "AllDevices",
  • "Policy": "Always",
  • "GPGPassphrase": "Sunnybreeze123",
  • "UseRetentionPolicy": false,
  • "IncludeDeviceName": false,
  • "IncludeDomainName": false,
  • "Disabled": false
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "FileserverID": 123,
  • "FileserverName": "NAS123",
  • "DeviceIDs": [
    ],
  • "DomainIDs": [ ],
  • "Summary": "All devices",
  • "Mode": "AllDevices",
  • "Policy": "Always",
  • "GPGPassphrase": "Sunnybreeze123",
  • "UseRetentionPolicy": false,
  • "IncludeDeviceName": false,
  • "IncludeDomainName": false,
  • "Disabled": false
}

Retrieve a policy

Retrieve a single policy

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Policy ID

Responses

Response Schema: application/json
ID
integer

Export policy ID

FileserverID
required
integer

ID of the Fileserver to use for exports

FileserverName
string

Name of the Fileserver to use for exports

DeviceIDs
Array of integers

List of Device IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

DomainIDs
Array of integers

List of Domain IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

Summary
string

A summary of what a policy contains for display purposes, either "All devices", a list of device names or domain names

Mode
required
string
Default: "AllDevices"
Enum: "AllDevices" "Devices" "Domains"

What to export. Can be AllDevices for all configurations for all devices, Devices for a given list of devices as defined in DeviceIDs or Domains for a list of domains as set via DomainIDs

Policy
string
Default: "Always"
Enum: "Always" "NewVersions" "BeforeDeletion"

Select when to automatically export configurations to your external server. Always will export when a backup is completed, NewVersions will export when a backup is completed and the version number of the backup has changed, and BeforeDeletion will export only the backups that are due for removal from the Restorepoint appliance.

GPGPassphrase
string

Passphrase that will be used to encrypt exported backups with GPG. If not passed, encryption will be disabled.

UseRetentionPolicy
boolean
Default: false

If true, exported backups will be deleted if retention policy is expired

IncludeDeviceName
boolean
Default: false

The filename / path on the remote server will include a Device's name

IncludeDomainName
boolean
Default: false

The filename / path on the remote server will include a device's Domain name

Disabled
boolean
Default: false

Disables an export policy

Response samples

Content type
application/json
{
  • "ID": 123,
  • "FileserverID": 123,
  • "FileserverName": "NAS123",
  • "DeviceIDs": [
    ],
  • "DomainIDs": [ ],
  • "Summary": "All devices",
  • "Mode": "AllDevices",
  • "Policy": "Always",
  • "GPGPassphrase": "Sunnybreeze123",
  • "UseRetentionPolicy": false,
  • "IncludeDeviceName": false,
  • "IncludeDomainName": false,
  • "Disabled": false
}

Update a policy

Update a policy

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Policy ID

Request Body schema: application/json
FileserverID
required
integer

ID of the Fileserver to use for exports

DeviceIDs
Array of integers

List of Device IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

DomainIDs
Array of integers

List of Domain IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

Mode
required
string
Default: "AllDevices"
Enum: "AllDevices" "Devices" "Domains"

What to export. Can be AllDevices for all configurations for all devices, Devices for a given list of devices as defined in DeviceIDs or Domains for a list of domains as set via DomainIDs

Policy
string
Default: "Always"
Enum: "Always" "NewVersions" "BeforeDeletion"

Select when to automatically export configurations to your external server. Always will export when a backup is completed, NewVersions will export when a backup is completed and the version number of the backup has changed, and BeforeDeletion will export only the backups that are due for removal from the Restorepoint appliance.

GPGPassphrase
string

Passphrase that will be used to encrypt exported backups with GPG. If not passed, encryption will be disabled.

UseRetentionPolicy
boolean
Default: false

If true, exported backups will be deleted if retention policy is expired

IncludeDeviceName
boolean
Default: false

The filename / path on the remote server will include a Device's name

IncludeDomainName
boolean
Default: false

The filename / path on the remote server will include a device's Domain name

Disabled
boolean
Default: false

Disables an export policy

Responses

Response Schema: application/json
ID
integer

Export policy ID

FileserverID
required
integer

ID of the Fileserver to use for exports

FileserverName
string

Name of the Fileserver to use for exports

DeviceIDs
Array of integers

List of Device IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

DomainIDs
Array of integers

List of Domain IDs to export. Either DeviceIDs or DomainIDs can be passed, but not both

Summary
string

A summary of what a policy contains for display purposes, either "All devices", a list of device names or domain names

Mode
required
string
Default: "AllDevices"
Enum: "AllDevices" "Devices" "Domains"

What to export. Can be AllDevices for all configurations for all devices, Devices for a given list of devices as defined in DeviceIDs or Domains for a list of domains as set via DomainIDs

Policy
string
Default: "Always"
Enum: "Always" "NewVersions" "BeforeDeletion"

Select when to automatically export configurations to your external server. Always will export when a backup is completed, NewVersions will export when a backup is completed and the version number of the backup has changed, and BeforeDeletion will export only the backups that are due for removal from the Restorepoint appliance.

GPGPassphrase
string

Passphrase that will be used to encrypt exported backups with GPG. If not passed, encryption will be disabled.

UseRetentionPolicy
boolean
Default: false

If true, exported backups will be deleted if retention policy is expired

IncludeDeviceName
boolean
Default: false

The filename / path on the remote server will include a Device's name

IncludeDomainName
boolean
Default: false

The filename / path on the remote server will include a device's Domain name

Disabled
boolean
Default: false

Disables an export policy

Request samples

Content type
application/json
{
  • "FileserverID": 123,
  • "DeviceIDs": [
    ],
  • "DomainIDs": [ ],
  • "Mode": "AllDevices",
  • "Policy": "Always",
  • "GPGPassphrase": "Sunnybreeze123",
  • "UseRetentionPolicy": false,
  • "IncludeDeviceName": false,
  • "IncludeDomainName": false,
  • "Disabled": false
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "FileserverID": 123,
  • "FileserverName": "NAS123",
  • "DeviceIDs": [
    ],
  • "DomainIDs": [ ],
  • "Summary": "All devices",
  • "Mode": "AllDevices",
  • "Policy": "Always",
  • "GPGPassphrase": "Sunnybreeze123",
  • "UseRetentionPolicy": false,
  • "IncludeDeviceName": false,
  • "IncludeDomainName": false,
  • "Disabled": false
}

Delete a policy

Delete a policy

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Policy ID

Responses

Response samples

Content type
application/json
{
  • "message": "Policy does not exit",
  • "errors": {
    }
}

Fileserver

A file server represents a remote storage location that can be used for archiving Restorepoint, exporting backups and automated exports.

Supported connection methods

CIFS version

Restorepoint uses smbmount for CIFS. You can specify an optional CifsVersion parameter to set the version corresponding to the file server you are trying to connect to:

  • 3.0 is SMB3 i.e. Windows 8, Windows Server 2012
  • 2.1 is SMB2_10 i.e. Windows 7, Windows Server 2008 R2
  • 2.0 is SMB2_02 i.e. Vista SP1, Windows Server 2008
  • 1.0 is NT1 i.e. Windows 95, NT 4.0

List fileservers

Retrieve all fileservers

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Fileserver)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a fileserver

Create a new fileserver

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Name
required
string

Fileserver name

Method
required
string
Enum: "FTP" "SFTP" "SCP" "CIFS" "S3" "Azure"

Connection method

Location
string

Server's hostname or address. For S3 type connections, pass the AWS region.

Path
string

Path on remote server

Username
string

Name of user for FTP/SFTP/SCP type connection. Doubles as access key ID for AWS and storage account name for Azure Blob Storage

Password
string

Password of remote server user. Doubles as secret access key for AWS

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating connections over SFTP/SCP. See Settings/PublicKey how to retrieve those for your appliance.

PublicKeyAuthenticationType
string
Default: "RSA/DSA"
Enum: "RSA/DSA" "RSA" "DSA"

Which public key to use to authenticate, defaults to trying both RSA/DSA

CifsVersion
string

Which version of CIFS to use when attempting to mount a CIFS share. See explanation on CIFS version

Bucket
string

For Amazon S3 this corresponds to the Bucket. For Azure it is the Container.

Responses

Response Schema: application/json
ID
integer

Fileserver ID

Name
required
string

Fileserver name

Method
required
string
Enum: "FTP" "SFTP" "SCP" "CIFS" "S3" "Azure"

Connection method

Location
string

Server's hostname or address. For S3 type connections, pass the AWS region.

Path
string

Path on remote server

Username
string

Name of user for FTP/SFTP/SCP type connection. Doubles as access key ID for AWS and storage account name for Azure Blob Storage

Password
string

Password of remote server user. Doubles as secret access key for AWS

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating connections over SFTP/SCP. See Settings/PublicKey how to retrieve those for your appliance.

PublicKeyAuthenticationType
string
Default: "RSA/DSA"
Enum: "RSA/DSA" "RSA" "DSA"

Which public key to use to authenticate, defaults to trying both RSA/DSA

CifsVersion
string

Which version of CIFS to use when attempting to mount a CIFS share. See explanation on CIFS version

Bucket
string

For Amazon S3 this corresponds to the Bucket. For Azure it is the Container.

Request samples

Content type
application/json
Example
{
  • "Name": "ftp example",
  • "Method": "FTP",
  • "Location": "ftp.example.com",
  • "Username": "transfer",
  • "Password": "Sunbreeze123",
  • "Path": "/var/ftp/foo/bar"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "NAS123",
  • "Method": "SFTP",
  • "Location": "example.com",
  • "Path": "/foo/bar",
  • "Username": "user123",
  • "Password": "Sunbreeze123",
  • "UsePublicKeyAuthentication": false,
  • "PublicKeyAuthenticationType": "RSA/DSA",
  • "CifsVersion": "3.0",
  • "Bucket": "my-bucket.s3.us-west-2.amazonaws.com"
}

Retrieve a fileserver

Retrieve a single fileserver

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Fileserver ID

Responses

Response Schema: application/json
ID
integer

Fileserver ID

Name
required
string

Fileserver name

Method
required
string
Enum: "FTP" "SFTP" "SCP" "CIFS" "S3" "Azure"

Connection method

Location
string

Server's hostname or address. For S3 type connections, pass the AWS region.

Path
string

Path on remote server

Username
string

Name of user for FTP/SFTP/SCP type connection. Doubles as access key ID for AWS and storage account name for Azure Blob Storage

Password
string

Password of remote server user. Doubles as secret access key for AWS

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating connections over SFTP/SCP. See Settings/PublicKey how to retrieve those for your appliance.

PublicKeyAuthenticationType
string
Default: "RSA/DSA"
Enum: "RSA/DSA" "RSA" "DSA"

Which public key to use to authenticate, defaults to trying both RSA/DSA

CifsVersion
string

Which version of CIFS to use when attempting to mount a CIFS share. See explanation on CIFS version

Bucket
string

For Amazon S3 this corresponds to the Bucket. For Azure it is the Container.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "NAS123",
  • "Method": "SFTP",
  • "Location": "example.com",
  • "Path": "/foo/bar",
  • "Username": "user123",
  • "Password": "Sunbreeze123",
  • "UsePublicKeyAuthentication": false,
  • "PublicKeyAuthenticationType": "RSA/DSA",
  • "CifsVersion": "3.0",
  • "Bucket": "my-bucket.s3.us-west-2.amazonaws.com"
}

Update a fileserver

Update a fileserver

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Fileserver ID

Request Body schema: application/json
Name
required
string

Fileserver name

Method
required
string
Enum: "FTP" "SFTP" "SCP" "CIFS" "S3" "Azure"

Connection method

Location
string

Server's hostname or address. For S3 type connections, pass the AWS region.

Path
string

Path on remote server

Username
string

Name of user for FTP/SFTP/SCP type connection. Doubles as access key ID for AWS and storage account name for Azure Blob Storage

Password
string

Password of remote server user. Doubles as secret access key for AWS

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating connections over SFTP/SCP. See Settings/PublicKey how to retrieve those for your appliance.

PublicKeyAuthenticationType
string
Default: "RSA/DSA"
Enum: "RSA/DSA" "RSA" "DSA"

Which public key to use to authenticate, defaults to trying both RSA/DSA

CifsVersion
string

Which version of CIFS to use when attempting to mount a CIFS share. See explanation on CIFS version

Bucket
string

For Amazon S3 this corresponds to the Bucket. For Azure it is the Container.

Responses

Response Schema: application/json
ID
integer

Fileserver ID

Name
required
string

Fileserver name

Method
required
string
Enum: "FTP" "SFTP" "SCP" "CIFS" "S3" "Azure"

Connection method

Location
string

Server's hostname or address. For S3 type connections, pass the AWS region.

Path
string

Path on remote server

Username
string

Name of user for FTP/SFTP/SCP type connection. Doubles as access key ID for AWS and storage account name for Azure Blob Storage

Password
string

Password of remote server user. Doubles as secret access key for AWS

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating connections over SFTP/SCP. See Settings/PublicKey how to retrieve those for your appliance.

PublicKeyAuthenticationType
string
Default: "RSA/DSA"
Enum: "RSA/DSA" "RSA" "DSA"

Which public key to use to authenticate, defaults to trying both RSA/DSA

CifsVersion
string

Which version of CIFS to use when attempting to mount a CIFS share. See explanation on CIFS version

Bucket
string

For Amazon S3 this corresponds to the Bucket. For Azure it is the Container.

Request samples

Content type
application/json
{
  • "Name": "NAS123",
  • "Method": "SFTP",
  • "Location": "example.com",
  • "Path": "/foo/bar",
  • "Username": "user123",
  • "Password": "Sunbreeze123",
  • "UsePublicKeyAuthentication": false,
  • "PublicKeyAuthenticationType": "RSA/DSA",
  • "CifsVersion": "3.0",
  • "Bucket": "my-bucket.s3.us-west-2.amazonaws.com"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "NAS123",
  • "Method": "SFTP",
  • "Location": "example.com",
  • "Path": "/foo/bar",
  • "Username": "user123",
  • "Password": "Sunbreeze123",
  • "UsePublicKeyAuthentication": false,
  • "PublicKeyAuthenticationType": "RSA/DSA",
  • "CifsVersion": "3.0",
  • "Bucket": "my-bucket.s3.us-west-2.amazonaws.com"
}

Delete a fileserver

Delete a fileserver

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
path Parameters
id
required
integer

Fileserver ID

Responses

Response samples

Content type
application/json
{
  • "message": "Fileserver does not exit",
  • "errors": {
    }
}

Test a fileserver

Test a fileserver for connectivity and ability to push files.

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Name
required
string

Fileserver name

Method
required
string
Enum: "FTP" "SFTP" "SCP" "CIFS" "S3" "Azure"

Connection method

Location
string

Server's hostname or address. For S3 type connections, pass the AWS region.

Path
string

Path on remote server

Username
string

Name of user for FTP/SFTP/SCP type connection. Doubles as access key ID for AWS and storage account name for Azure Blob Storage

Password
string

Password of remote server user. Doubles as secret access key for AWS

UsePublicKeyAuthentication
boolean
Default: false

Use public key for authenticating connections over SFTP/SCP. See Settings/PublicKey how to retrieve those for your appliance.

PublicKeyAuthenticationType
string
Default: "RSA/DSA"
Enum: "RSA/DSA" "RSA" "DSA"

Which public key to use to authenticate, defaults to trying both RSA/DSA

CifsVersion
string

Which version of CIFS to use when attempting to mount a CIFS share. See explanation on CIFS version

Bucket
string

For Amazon S3 this corresponds to the Bucket. For Azure it is the Container.

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Firmware

Restorepoint can act as a repository for device firmware/software, allowing you to upload files like firmware images and ISO images to the appliance. Software images can also be pushed to supported devices.

List all firmware

Retrieve all firmware metadata

Authorizations:
CookieTokenPermissions (ViewFirmware)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

uploaded_after
string
Example: uploaded_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the uploaded date.

uploaded_before
string
Example: uploaded_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the uploaded date.

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Firmware)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Upload firmware

Upload a firmware image

Authorizations:
CookieTokenPermissions (ModifyFirmware)
Request Body schema: multipart/form-data
PluginKey
string

Key of the Plugin that corresponds to the device type of the firmware being uploaded

Description
string

A description of or notes aboue the firmware being uploaded

File
required
string <binary>

The actual file

Responses

Response Schema: application/json
ID
integer

Firmware ID

Description
string

A description of or notes aboue the firmware being uploaded

PluginKey
string

A Plugin identifier for the device type that this firmware is restricted to. If left blank, an image can be appliad to any device which can have unintended side effects

PluginName
string

User friendly name of the plugin this firmware image is restricted to

Filename
required
string

Filename of the uploaded file

Size
integer

Size of the firmware in bytes

Uploaded
string

Timestamp in RFC3339 format when the firmware was uploaded

MD5
string

MD5 hash of the uploaded file

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Description": "Catalyst 6500 Series / 7600 Series ASA Services Module",
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "Filename": "fwsm_migration_mac-1.0.18.zip",
  • "Size": 1024,
  • "Uploaded": "2222-02-22T22:22:22.000Z",
  • "MD5": "9cad0367c675eb1473fa492f05c0b718"
}

Get firmware metadata

Get metadata for a firmware image

Authorizations:
CookieTokenPermissions (ViewFirmware)
path Parameters
id
required
integer

Firmware ID

Responses

Response Schema: application/json
ID
integer

Firmware ID

Description
string

A description of or notes aboue the firmware being uploaded

PluginKey
string

A Plugin identifier for the device type that this firmware is restricted to. If left blank, an image can be appliad to any device which can have unintended side effects

PluginName
string

User friendly name of the plugin this firmware image is restricted to

Filename
required
string

Filename of the uploaded file

Size
integer

Size of the firmware in bytes

Uploaded
string

Timestamp in RFC3339 format when the firmware was uploaded

MD5
string

MD5 hash of the uploaded file

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Description": "Catalyst 6500 Series / 7600 Series ASA Services Module",
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "Filename": "fwsm_migration_mac-1.0.18.zip",
  • "Size": 1024,
  • "Uploaded": "2222-02-22T22:22:22.000Z",
  • "MD5": "9cad0367c675eb1473fa492f05c0b718"
}

Update firmware metadata

Update metadata for a firmware image

Authorizations:
CookieTokenPermissions (ModifyFirmware)
path Parameters
id
required
integer

Firmware ID

Request Body schema: application/json
Description
string

A description of or notes aboue the firmware being uploaded

PluginKey
string

A Plugin identifier for the device type that this firmware is restricted to. If left blank, an image can be appliad to any device which can have unintended side effects

Filename
required
string

Filename of the uploaded file

Responses

Response Schema: application/json
ID
integer

Firmware ID

Description
string

A description of or notes aboue the firmware being uploaded

PluginKey
string

A Plugin identifier for the device type that this firmware is restricted to. If left blank, an image can be appliad to any device which can have unintended side effects

PluginName
string

User friendly name of the plugin this firmware image is restricted to

Filename
required
string

Filename of the uploaded file

Size
integer

Size of the firmware in bytes

Uploaded
string

Timestamp in RFC3339 format when the firmware was uploaded

MD5
string

MD5 hash of the uploaded file

Request samples

Content type
application/json
{
  • "Description": "Catalyst 6500 Series / 7600 Series ASA Services Module",
  • "PluginKey": "cisco_ios",
  • "Filename": "fwsm_migration_mac-1.0.18.zip"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Description": "Catalyst 6500 Series / 7600 Series ASA Services Module",
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "Filename": "fwsm_migration_mac-1.0.18.zip",
  • "Size": 1024,
  • "Uploaded": "2222-02-22T22:22:22.000Z",
  • "MD5": "9cad0367c675eb1473fa492f05c0b718"
}

Delete a firmware

Delete a firmware

Authorizations:
CookieTokenPermissions (ModifyFirmware)
path Parameters
id
required
integer

Firmware ID

Responses

Response samples

Content type
application/json
{
  • "message": "Firmware does not exit",
  • "errors": {
    }
}

Push firmware to devices

Push firmware to one or more devices. A device plugin needs to expose an upgrade function to support pushing firmware updates.

Note: Restorepoint allows you to push firmware that is not restricted to a plugin/device type to ALL devices. This can have unintended consequences.

Authorizations:
CookieTokenPermissions (PushFirmware)
path Parameters
id
required
integer

Firmware ID

Request Body schema: application/json
DeviceIDs
required
Array of integers

A list of Device IDs to push this firmware to.

Responses

Request samples

Content type
application/json
{
  • "DeviceIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Export firmware

Export one or more firmware images

Authorizations:
CookieTokenPermissions (PushFirmware)
Request Body schema: application/json
FirmwareIDs
required
Array of integers

List of Firmware IDs to export

Method
string
Default: "download"
Enum: "download" "email" "server"

Delivery method of how to transfer the firmware to the requestor.

EmailAddress
string

Email address that an exported firmware will be sent to. Requires Method to be set to "email"

FileServerID
integer

ID of a Fileserver to use for the export

Responses

Response Schema: application/json
FirmwareIDs
Array of integers

List of exported Firmware IDs

Array of objects

Details for firmware files to download

EmailAddress
string

Email address that an exported firmware was sent to if Method was set to "email"

FileServerID
integer

ID of a Fileserver that was used for exporting

Request samples

Content type
application/json
Example
{
  • "FirmwareIDs": [
    ],
  • "Method": "download"
}

Response samples

Content type
application/json
{
  • "FirmwareIDs": [
    ],
  • "DownloadFiles": [
    ],
  • "EmailAddress": "afox@restorepoint.com",
  • "FileServerID": 123
}

Job

Jobs represent a running task in Restorepoint, such as a running device backup, command or creating an archive of Restorepoint.

Normally, a job transitions from:

Pending -> Running -> Done

Once a job is done, it will stay visible for an additional 5 seconds.

List jobs

Retrieve all currently running jobs

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Job)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Abort all

Aborts all running jobs

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Retrieve a job

Retrieve details for a single job

Authorizations:
path Parameters
id
required
integer

Job ID

Responses

Response Schema: application/json
ID
required
integer

Job ID

Type
string

The type of the running job

Description
string

A short summary what the job is about

DeviceID
integer
Default: 0

ID of a Device this job relates to (if at all)

DeviceName
string

Name of the device a job relates to (if at all)

Progress
required
integer

Completion percentage of the job

User
string
Default: "system"

User that initiated a job. Scheduled jobs will appear as initiated by system.

Created
string

Timestamp in RFC3339 format when job was created

Updated
string

Timestamp in RFC3339 format when job was last updated

Duration
integer

The time elapsed since the job was created, in nanoseconds.

Status
string
Enum: "Pending" "Running" "Paused" "Error" "Stopped" "Done"

A job's status

Messages
Array of strings

The messages generated whilst job has been running. Messages appear in the order in which they occur during the job run.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Type": "Backup",
  • "Description": "Backup CiscoFW1",
  • "DeviceID": 123,
  • "DeviceName": "CiscoFW1",
  • "Progress": 75,
  • "User": "system",
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Updated": "2222-02-22T22:22:22.000Z",
  • "Duration": 5577006791,
  • "Status": "Paused",
  • "Messages": [
    ]
}

Cancel a job

Cancel a job

Authorizations:
path Parameters
id
required
integer

Job ID

Responses

Response samples

Content type
application/json
{
  • "message": "Job does not exit",
  • "errors": {
    }
}

Label

Labels are a way of attaching meta information to devices. They allow for arbitrary grouping and selection of devices that can go beyond the use of device specific information fields. They help you organize and tag your devices so you can track and find the devices for a given task or operation.

You can define an unlimited number of labels and assign as many labels to a device as you like. You can use colours to distinguish labels and use that as a way to differentiate between process, state or some other secondary categorisation.

Examples

You could use Lab, Dev, PreProd, Prod to denote device deployment state.

You could define a TODO label to mark devices that need manual checking at a later date.

You could attach a Primary and Secondary labels to devices in high availibility scenarios where your organisation might have standby devices.

List labels

Retrieve all labels

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

filter_op
string
Enum: "and" "or"

Filter operation to use, either "and" or "or"

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

domain_id[]
Array of integers

List of domain IDs to include in the results

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

filter_op
string
Enum: "and" "or"

Filter operation to use

Array of objects

The sorting parameters used to sort items

Array of objects (Label)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "filter_op": [
    ],
  • "sort": [
    ],
  • "data": [
    ]
}

Create a label

Create a new label

Authorizations:
CookieTokenPermissions (ModifyLabels)
Request Body schema: application/json
Name
required
string

The name of the label. This has to be unique across all labels (case-insensitive).

Description
string

The description of the label

Colour
required
string

The color of the label given in 6-digit hex notation with leading # sign

DomainID
integer
Default: 0

ID of the Domain a label belongs to (if any). Can only be set on label creation.

Responses

Response Schema: application/json
ID
integer

Label ID

Name
required
string

The name of the label. This has to be unique across all labels (case-insensitive).

Description
string

The description of the label

Colour
required
string

The color of the label given in 6-digit hex notation with leading # sign

DomainID
integer
Default: 0

ID of the Domain a label belongs to (if any). Can only be set on label creation.

DomainName
string
Default: 0

Name of the Domain a label belongs to (if any).

Request samples

Content type
application/json
{
  • "Name": "TODO",
  • "Description": "Device that needs checking",
  • "Colour": "#FFAABB",
  • "DomainID": 123
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "TODO",
  • "Description": "Device that needs checking",
  • "Colour": "#FFAABB",
  • "DomainID": 123,
  • "DomainName": 123
}

Retrieve a label

Retrieve a single label

Authorizations:
path Parameters
id
required
integer

Label ID

Responses

Response Schema: application/json
ID
integer

Label ID

Name
required
string

The name of the label. This has to be unique across all labels (case-insensitive).

Description
string

The description of the label

Colour
required
string

The color of the label given in 6-digit hex notation with leading # sign

DomainID
integer
Default: 0

ID of the Domain a label belongs to (if any). Can only be set on label creation.

DomainName
string
Default: 0

Name of the Domain a label belongs to (if any).

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "TODO",
  • "Description": "Device that needs checking",
  • "Colour": "#FFAABB",
  • "DomainID": 123,
  • "DomainName": 123
}

Update a label

Update a label

Authorizations:
CookieTokenPermissions (ModifyLabels)
path Parameters
id
required
integer

Label ID

Request Body schema: application/json
Name
required
string

The name of the label. This has to be unique across all labels (case-insensitive).

Description
string

The description of the label

Colour
required
string

The color of the label given in 6-digit hex notation with leading # sign

DomainID
integer
Default: 0

ID of the Domain a label belongs to (if any). Can only be set on label creation.

Responses

Response Schema: application/json
ID
integer

Label ID

Name
required
string

The name of the label. This has to be unique across all labels (case-insensitive).

Description
string

The description of the label

Colour
required
string

The color of the label given in 6-digit hex notation with leading # sign

DomainID
integer
Default: 0

ID of the Domain a label belongs to (if any). Can only be set on label creation.

DomainName
string
Default: 0

Name of the Domain a label belongs to (if any).

Request samples

Content type
application/json
{
  • "Name": "TODO",
  • "Description": "Device that needs checking",
  • "Colour": "#FFAABB",
  • "DomainID": 123
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "TODO",
  • "Description": "Device that needs checking",
  • "Colour": "#FFAABB",
  • "DomainID": 123,
  • "DomainName": 123
}

Delete a label

Delete a label

Authorizations:
CookieTokenPermissions (ModifyLabels)
path Parameters
id
required
integer

Label ID

Responses

Response samples

Content type
application/json
{
  • "message": "Label does not exit",
  • "errors": {
    }
}

Log

Almost every system activity will be logged and can be retrieved

List logs. If no sort param is passed, logs will be ordered by 'Created', in a descending method

Retrieve all logs

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

device_id[]
Array of integers
Example: device_id[]=123&device_id[]=2875&device_id[]=3

List of Device IDs to limit the log output to.

not[device_id][]
Array of integers
Example: not[device_id][]=67

List of Device IDs to exclude from the returned log entries.

created_after
string
Example: created_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

created_before
string
Example: created_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the created date.

level[]
Array of integers
Example: level[]=1&level[]=2&level[]=3

List of syslog like severity levels to include in the returned log entries

not[level][]
Array of integers
Example: not[level][]=6

List of syslog like severity levels to exclude from the returned log entries

object_type[]
Array of strings
Example: object_type[]=Device

List of Object types to limit the log output to.

not[object_type][]
Array of strings
Example: not[object_type][]=User

List of Object types to exclude from the returned log entries.

user_id[]
Array of integers
Example: user_id[]=123&user_id[]=2875&user_id[]=3

List of User IDs to limit the log output to.

not[user_id][]
Array of integers
Example: not[user_id][]=67

List of User IDs to exclude from the returned log entries.

action[]
Array of strings
Example: action[]=Backup&action[]=Delete

List of Log Actions to include in the results.

not[action][]
Array of strings
Example: not[action][]=Backup&not[action][]=Delete

List of Log Actions to exclude from the results.

domain_id[]
Array of integers

List of domain IDs to include in the results

not[domain_id][]
Array of integers

List of domain IDs to exclude from the results

shorten_transcript
boolean
Default: false

If true, then return the shortened transcript message in retrieved logs

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

device_id
integer

The Device ID log entries were filtered for

shorten_transcript
boolean

Flag indicating if transcript message should be shortened or not.

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Log)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "device_id": 123,
  • "shorten_transcript": true,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Retrieve a log

Retrieve a single log

Authorizations:
path Parameters
id
required
integer

Label ID

Responses

Response Schema: application/json
ID
integer

Log ID

Created
string

Timestamp in RFC3339 format

Action
string

Event type

ObjectType
string

Device, user or system configuration object to which the event refers

ObjectID
integer

ID of a device, backup, ...

ObjectName
string

The Device, User, or Server that had the action performed

Message
string

The status, return, or error message associated with the event

UserID
integer

ID of the User for this log entry (0 for system initiated actions)

UserName
string

Name of the user running an action. System initiated jobs will have "Auto".

UserIPAddress
string

IP Address of the user that performed the action, or 127.0.0.1 for system initiated actions.

Level
string
Enum: "emerg" "alert" "crit" "err" "warning" "notice" "info" "debug"

The syslog severity level of the message

DomainID
integer

ID of the log action's domain

Transcript
boolean

Flag indicating if log message is a transcript or not

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Action": "Backup",
  • "ObjectType": "Device",
  • "ObjectID": 123,
  • "ObjectName": "Cisco Switch",
  • "Message": "Version 7",
  • "UserID": 123,
  • "UserName": "afox",
  • "UserIPAddress": "127.0.0.1",
  • "Level": "info",
  • "DomainID": 3,
  • "Transcript": false
}

Export logs

Export all log entries as a CSV file

Authorizations:

Responses

Response Headers
Content-Disposition
string
Example: "attachment; filename=\"logs.csv\""
Response Schema: text/csv
string

Response samples

Content type
text/csv
timestamp,action,object,objectname,message,user,level
2021-02-03 15:24:57,Monitor,Device,example,Device Back Up,Auto,err
2021-02-03 15:20:22,Monitor,Device,example,Device Down,Auto,emerg

Login

The login endpoint is used by the UI to authenticate a user. On successful login, it will set a session cookie that will further authenticate API requests coming from the web interface.

Retrieve current login status

Check if the current session is still valid. If Restorepoint's data partition is currently encrypted, a response of 503 Unavailable with EncryptionStatus set to Encrypted will be returned.

Authorizations:

Responses

Response Schema: application/json
object (User)

User model

object (Capabilities)

Flags for various system capabilities enabled in the current Restorepoint instance

EncryptionStatus
string
Enum: "Encrypted" "Decrypted" "Decrypting" "Failure"

Current decryption status of the system.

Response samples

Content type
application/json
{
  • "User": {
    },
  • "Capabilities": {
    },
  • "EncryptionStatus": "Decrypted"
}

Authenticate a user

Perform login. Returned token has to be sent via Authorization header.

Request Body schema: application/json
Username
required
string

Username to login

Password
required
string

Password to login

EncryptionPassword
string

Required when Restorepoint hasn't been decrypted yet.

RecoveryToken
string

The correct recovery token in combination with the correct security answer will allow the user to login without knowing their password. The password can then be changed via updating a User.

SecurityAnswer
string

When doing password recovery, the correct answer to the SecurityQuestion

Responses

Response Headers
Set-Cookie
string
Example: "session=abcde12345; Path=/; HttpOnly"
Response Schema: application/json
object (User)

User model

object (Capabilities)

Flags for various system capabilities enabled in the current Restorepoint instance

EncryptionStatus
string
Enum: "Encrypted" "Decrypted" "Decrypting" "Failure"

Current decryption status of the system.

Request samples

Content type
application/json
{
  • "Username": "afox",
  • "Password": "Sunbreeze123",
  • "EncryptionPassword": "Sunbreeze456",
  • "RecoveryToken": "FooBarBaz",
  • "SecurityAnswer": "Blenheim"
}

Response samples

Content type
application/json
{
  • "User": {
    },
  • "Capabilities": {
    },
  • "EncryptionStatus": "Decrypted"
}

Logout

Perform logout

Authorizations:

Responses

Update login

Updates user login details

Authorizations:
Request Body schema: application/json
FullName
required
string

Full name of the user

Email
required
string

Email address of this user

Password
string

A user's password. The system password policy affects the values that will be accepted. Only required if 'EmailActivationLink' is false

CurrentPassword
string

A user's current password. The system password policy affects the values that will be accepted. Only required if 'Password' is different from the current password

Responses

Response Schema: application/json
FullName
required
string

Full name of the user

Email
required
string

Email address of this user

Request samples

Content type
application/json
{
  • "FullName": "Anna Fox",
  • "Email": "afox@restorepoint.com",
  • "Password": "Sunbreeze123",
  • "CurrentPassword": "Sunshine123"
}

Response samples

Content type
application/json
{
  • "FullName": "Anna Fox",
  • "Email": "afox@restorepoint.com"
}

Retrieve SAML Login URL

Retrieve SAML IdP URL

Authorizations:

Responses

Response Schema: application/json
Redirect
string

SAML login URL

Response samples

Content type
application/json
{
  • "Redirect": "string"
}

Network

Network utility endpoints.

Fingerprint network address

Scans a given network address and returns its MAC address and various protocol banners

Authorizations:
Request Body schema: application/json
Address
required
string

IP address of the device to fingerprint

AgentID
integer
Default: 0

ID of an Agent to communicate through. The default 0 means that Restorepoint will communicate with a device directly

Responses

Response Schema: application/json
Array of objects

Fingerprint data results

Request samples

Content type
application/json
{
  • "Address": "127.0.0.1",
  • "AgentID": 0
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Ping a network address

Pings a given network address (via optional agent)

Authorizations:
Request Body schema: application/json
Address
required
string

IP address of the device to ping

AgentID
integer
Default: 0

ID of an Agent to communicate through. The default 0 means that Restorepoint will communicate with a device directly

Responses

Response Schema: application/json
Result
required
string

Result of pinging an address

Message
required
string

Success or error message for pinging the address in question

Request samples

Content type
application/json
{
  • "Address": "127.0.0.1",
  • "AgentID": 0
}

Response samples

Content type
application/json
Example
{
  • "Result": "Success",
  • "Message": "Ping 1: 89.522µs\nPing 2: 35.352µs\nPing 3: 33.367µs\nPing 4: 32.171µs"
}

Resolve a hostname

Attempts to resolve a given hostname and returns it's IP address

Authorizations:
Request Body schema: application/json
Hostname
required
string

Hostname of a network device

AgentID
integer
Default: 0

ID of an Agent to resolve the name with. The default 0 means that Restorepoint will attempt the name resolution directly.

Responses

Response Schema: application/json
Result
string

Result of resolving the given name

Message
string

IP address or error message when attempting to resolve the given hostname

Request samples

Content type
application/json
{
  • "Hostname": "device1",
  • "AgentID": 0
}

Response samples

Content type
application/json
Example
{
  • "Result": "Success",
  • "Message": "127.0.0.1"
}

Tests HTTP connectivity through a proxy

Uses proxy config and test HTTP connectivity

Authorizations:
Request Body schema: application/json
Address
required
string

Proxy hostname or IP address

Port
integer
Default: 80

Proxy port number

Username
string

Proxy username

Password
string

Proxy user password

Responses

Response Schema: application/json
Success
required
boolean

If test was successful

Message
string

Test result

Request samples

Content type
application/json
{
  • "Address": "1.1.1.1",
  • "Port": 8080,
  • "Username": "admin",
  • "Password": "admin"
}

Response samples

Content type
application/json
Example
{
  • "Success": true
}

Permission

Permissions are the building blocks of what a user's role is entitled to perform. Permissions are read-only.

List permissions

Retrieve all permissions

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

Array of objects (Permission)

List of permissions

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "data": [
    ]
}

Policy

Restorepoint enables you to create policies that can be used to verify that your devices comply with corporate or regulatory guidelines.

Policies are groups of one or more rules; a rule is a pattern that is applied to configurations or device firmware version, to test whether they contain a certain phrase or Regular Expressions, or if they match an existing device template. If they fail the tests, a compliance violation occurs and an email alert is sent to the device owner.

List policies

Retrieve all policies

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

id[]
Array of integers

List of IDs to include in the results

not[id][]
Array of integers

List of IDs to exclude from the results

lastupdate_after
string
Example: lastupdate_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the lastupdate date.

lastupdate_before
string
Example: lastupdate_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the lastupdate date.

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Policy)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a policy

Create a new policy

Authorizations:
CookieTokenPermissions (ModifyRules)
Request Body schema: application/json
Name
required
string

Policy name

Comment
string

Comment attached to policy

PluginKey
string

A Plugin identifier (Key) that this policy applies to. If this is not set, then this policy can be applied to any device

object
Default: {"Low":1,"Medium":1,"High":1}

Set alert threshholds for low, medium and high severity alerts. 0 meaning Never, 1 Always and 2 to 4: alert after that many violations

Array of Array of objects

Inner group of items have to match all (AND) while outer group will have to match any inner group (OR). See example which would match any device with a hostname matching foo AND their location set to bar OR Cisco devices AND their address in 10.0.0.0/8.

DeviceIDs
Array of integers

List of Device IDs which the policy is assigned to

Responses

Response Schema: application/json
ID
integer

Policy ID

Name
required
string

Policy name

Comment
string

Comment attached to policy

PluginKey
string

A Plugin identifier (Key) that this policy applies to. If this is not set, then this policy can be applied to any device

PluginName
string

User friendly name of the plugin this device uses

object
Default: {"Low":1,"Medium":1,"High":1}

Set alert threshholds for low, medium and high severity alerts. 0 meaning Never, 1 Always and 2 to 4: alert after that many violations

Array of Array of objects

Inner group of items have to match all (AND) while outer group will have to match any inner group (OR). See example which would match any device with a hostname matching foo AND their location set to bar OR Cisco devices AND their address in 10.0.0.0/8.

Version
integer

Internal version number

LastUpdateTime
string

Date and time this compliance policy was last updated

LastUpdatedBy
string

Name of user that last updated this compliance policy

DeviceIDs
Array of integers

List of Device IDs which the policy is assigned to

Request samples

Content type
application/json
{
  • "Name": "IOS - Enable Secret Is Set",
  • "Comment": "HIPPA compliance",
  • "PluginKey": "cisco_ios",
  • "AlertThresholds": {
    },
  • "AutoApply": [
    ],
  • "DeviceIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "IOS - Enable Secret Is Set",
  • "Comment": "HIPPA compliance",
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "AlertThresholds": {
    },
  • "AutoApply": [
    ],
  • "Version": 2,
  • "LastUpdateTime": "2019-03-20T11:06:20Z",
  • "LastUpdatedBy": "Anna Fox",
  • "DeviceIDs": [
    ]
}

Retrieve a policy

Retrieve a single policy

Authorizations:
path Parameters
id
required
integer

Policy ID

Responses

Response Schema: application/json
ID
integer

Policy ID

Name
required
string

Policy name

Comment
string

Comment attached to policy

PluginKey
string

A Plugin identifier (Key) that this policy applies to. If this is not set, then this policy can be applied to any device

PluginName
string

User friendly name of the plugin this device uses

object
Default: {"Low":1,"Medium":1,"High":1}

Set alert threshholds for low, medium and high severity alerts. 0 meaning Never, 1 Always and 2 to 4: alert after that many violations

Array of Array of objects

Inner group of items have to match all (AND) while outer group will have to match any inner group (OR). See example which would match any device with a hostname matching foo AND their location set to bar OR Cisco devices AND their address in 10.0.0.0/8.

Version
integer

Internal version number

LastUpdateTime
string

Date and time this compliance policy was last updated

LastUpdatedBy
string

Name of user that last updated this compliance policy

DeviceIDs
Array of integers

List of Device IDs which the policy is assigned to

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "IOS - Enable Secret Is Set",
  • "Comment": "HIPPA compliance",
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "AlertThresholds": {
    },
  • "AutoApply": [
    ],
  • "Version": 2,
  • "LastUpdateTime": "2019-03-20T11:06:20Z",
  • "LastUpdatedBy": "Anna Fox",
  • "DeviceIDs": [
    ]
}

Update a policy

Update a policy

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
id
required
integer

Policy ID

Request Body schema: application/json
Name
required
string

Policy name

Comment
string

Comment attached to policy

PluginKey
string

A Plugin identifier (Key) that this policy applies to. If this is not set, then this policy can be applied to any device

object
Default: {"Low":1,"Medium":1,"High":1}

Set alert threshholds for low, medium and high severity alerts. 0 meaning Never, 1 Always and 2 to 4: alert after that many violations

Array of Array of objects

Inner group of items have to match all (AND) while outer group will have to match any inner group (OR). See example which would match any device with a hostname matching foo AND their location set to bar OR Cisco devices AND their address in 10.0.0.0/8.

DeviceIDs
Array of integers

List of Device IDs which the policy is assigned to

Responses

Response Schema: application/json
ID
integer

Policy ID

Name
required
string

Policy name

Comment
string

Comment attached to policy

PluginKey
string

A Plugin identifier (Key) that this policy applies to. If this is not set, then this policy can be applied to any device

PluginName
string

User friendly name of the plugin this device uses

object
Default: {"Low":1,"Medium":1,"High":1}

Set alert threshholds for low, medium and high severity alerts. 0 meaning Never, 1 Always and 2 to 4: alert after that many violations

Array of Array of objects

Inner group of items have to match all (AND) while outer group will have to match any inner group (OR). See example which would match any device with a hostname matching foo AND their location set to bar OR Cisco devices AND their address in 10.0.0.0/8.

Version
integer

Internal version number

LastUpdateTime
string

Date and time this compliance policy was last updated

LastUpdatedBy
string

Name of user that last updated this compliance policy

DeviceIDs
Array of integers

List of Device IDs which the policy is assigned to

Request samples

Content type
application/json
{
  • "Name": "IOS - Enable Secret Is Set",
  • "Comment": "HIPPA compliance",
  • "PluginKey": "cisco_ios",
  • "AlertThresholds": {
    },
  • "AutoApply": [
    ],
  • "DeviceIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "IOS - Enable Secret Is Set",
  • "Comment": "HIPPA compliance",
  • "PluginKey": "cisco_ios",
  • "PluginName": "Cisco IOS",
  • "AlertThresholds": {
    },
  • "AutoApply": [
    ],
  • "Version": 2,
  • "LastUpdateTime": "2019-03-20T11:06:20Z",
  • "LastUpdatedBy": "Anna Fox",
  • "DeviceIDs": [
    ]
}

Delete a policy

Delete a policy

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
id
required
integer

Policy ID

Responses

Response samples

Content type
application/json
{
  • "message": "Policy does not exit",
  • "errors": {
    }
}

Test a policy

Test a policy against a backup

Authorizations:
path Parameters
id
required
integer

Policy ID

Request Body schema: application/json
BackupFileID
integer

Config backup ID to test on. (If it's a runtime command, this field is ignored)

ConfigurationTypes
Array of strings

Configuration types to test on. If empty, all configurations of the backup will be tested (If it's a runtime command, this field is ignored)

DeviceID
integer

ID of the device to be tested. Only needed if testing a runtime command

Responses

Response Schema: application/json
Array of objects

Policy test results containing results for each policy rule that has been tested

ScorePercentage
integer

Percentage of total passed tests based on their score (1, 2 or 4 for Low, Medium and High Severity)

LowSeverityFail
integer

Amount of low severity rules that failed the tests

MediumSeverityFail
integer

Amount of medium severity rules that failed the tests

HighSeverityFail
integer

Amount of high severity rules that failed the tests

Alert
boolean

Whether the tests would have raised an alert based on the number of failed rules, their severity and the specified thresholds for the policy

Request samples

Content type
application/json
{
  • "BackupFileID": 2,
  • "ConfigurationTypes": [
    ],
  • "DeviceID": 1
}

Response samples

Content type
application/json
{
  • "Results": [
    ],
  • "ScorePercentage": 50,
  • "LowSeverityFail": 1,
  • "MediumSeverityFail": 2,
  • "HighSeverityFail": 3,
  • "Alert": false
}

Update policy's devices' compliance scores

Update policy's devices' compliance scores

Authorizations:
CookieTokenPermissions (ModifyDevice)
path Parameters
id
required
integer

Policy ID

Request Body schema: application/json
object

Responses

Response Schema: text/plain
string

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "message": "Policy does not exit",
  • "errors": {
    }
}

Import policies

Import one or more device policies

Authorizations:
Request Body schema: multipart/form-data
file
string

JSON data (see Export for format)

Responses

Response Schema: application/json
NumberImported
integer

Number of policies that have been imported

Response samples

Content type
application/json
{
  • "NumberImported": 123
}

Export policies

Export one or more device policies in a JSON file. Please do not mistake this for the automatic device configuration export.

Authorizations:
query Parameters
PolicyIDs
required
Array of integers
Example: PolicyIDs=1,2,3

List of Policy IDs to export

Responses

Response Headers
Content-Disposition
string
Example: "attachment; filename=\"RestorepointConfigPolicies.json\""
Response Schema: application/json
Array of objects (Policy)

List of exported policies

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Policy/Rule

Rules are the individual parts of a device policy.

Regular Expressions

A regular expression specifies a set of strings as a pattern, rather than a list. For example, the pattern C(o|as?)t matches the strings Cot, Cat, and Cast, but not Coast. Restorepoint uses Perl-flavour Regular Expressions.

Most characters can be used in a regular expression; however, some characters, called metacharacters, have special meanings:

  • () denote grouping: (a|b)b matches ab and bb
  • | denotes an alternative (see above)
  • ^ matches the beginning of a line
  • $ matches the end of a line
  • . matches any character
  • + denotes one or more occurrences of the previous character: a+b matches ab, aab, abb, but not b
  • * denotes zero or more occurrences of the previous character: a*b matches b, ab, aab, aaab
  • ? denotes zero or one occurrences of the previous character: a?b matches b and ab, but not aab or aaab

Character classes are matches for sets of possible characters, rather than just a single character. For instance:

  • [bcr]at matches bat, cat and rat
  • - can be used as a range operator in a character class, so [a-g] matches any character from a to g

There are some useful abbreviations for common character classes, in particular:

  • \d matches a digit
  • \s matches whitespace (a space or a tab)
  • \w matches a word character (alphanumeric or a _)

For instance, \d\d:\d\d:\d\d would match a time in a hh:mm:ss format.

For more information and examples of regular expressions, please see this reference guide.

Lua Functions

Rules can be defined as Lua functions.

Available functions for compliance rules are:

  • nextline() returns the next line of text
  • getline(n) returns the given line of text
  • numlines() returns the number of lines
  • addmessage(m) allows you to replace a series of variables in the remediation text. For instance, addmessage("Hello") with a remediation text of $1 "World!" would produce the output Hello World!. The next addmessage call would replace $2, and so on.

Example

This function checks that the number of lines containing "configure" matches the lines containing "port":

num1 = 0
num2 = 0
line, next = nextline()
while next do
    if line:match("configure") then num1 = num1+1 end
    if line:match("port") then num2 = num2+1 end
    line, next = nextline
end
if num1 > num2 then addmessage("more")
else if num2 < num1 then addmessage("less") end
return num1 == num2

Remediation Text: Config contains $1 configures than ports.

Remediation

Remediation is an action to be performed when a compliance rule is not met, generally intended to rectify the violation. The following remediation types can be configured:

  • Manual: in this case, the remediation text will simply be appended to the notification email, signifying that the recipient should take the appropriate action.
  • Command: this will execute one of the stored Actions on the device (see Controlling a device).
  • Automatic: this setting will treat the text specified in the textbox as a command and execute it on the device.

If the rule match type is Regex, the remediation can make use of the Capture feature, whereby parts of the pattern in brackets can be captured and then referred to in the remediation text (as $1, $2, etc.). For example, a rule may state that a configuration must not contain the regex:

set telnet (\d+\.\d+\.\d+\.\d+)

where the part in brackets is a match for an IP address. If this rule is violated, the configuration can be remedied using the phrase:

unset telnet $1

In this case, the brackets in the rule will capture the IP address, and fill it in when the command is performed, expanding to

unset telnet 1.2.3.4

if that was the matched IP address.

Test rule

Test a rule against a backup. This will not update the device's compliance score, it will only test that a rule runs correctly against the selected backup.

Authorizations:
Request Body schema: application/json
DeviceID
integer

ID of the device to be tested

BackupFileID
integer

Config backup ID to test on

ConfigurationTypes
Array of strings

Configuration types to test on. If empty, all configurations of the backup will be tested

OutputID
integer

Output to test runtime rule against

TestText
string

Test text to test runtime rule against

required
object (Rule)

Policy rule model

Responses

Response Schema: application/json
required
object (Rule)

Policy rule model

required
Array of objects (Policy rule test result)

Test result

Request samples

Content type
application/json
{
  • "DeviceID": 1,
  • "BackupFileID": 2,
  • "ConfigurationTypes": [
    ],
  • "OutputID": 3,
  • "TestText": "foo bar",
  • "Rule": {
    }
}

Response samples

Content type
application/json
{
  • "Rule": {
    },
  • "Results": [
    ]
}

List rules

Retrieve all rules of a policy

Authorizations:
path Parameters
id
required
integer

Policy ID

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Rule)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a rule

Create a new rule (note that policy's devices' compliance scores won't be updated)

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
id
required
integer

Policy ID

Request Body schema: application/json
Name
string

Used to identify a rule in a report or email

Type
required
string
Enum: "Configuration" "FirmwareVersion" "RuntimeCommand" "ScheduledActionOutput"

Whether the rule applies to a configuration, software version, runtime command or the output of a scheduled action

ConfigurationTypes
Array of strings

List of configuration types to use if this rule's Type is set to "Configuration"

Array of objects

List of applicable files for multi-file configurations, e.g. TGZ archives if this rule's Type is set to "Configuration"

CommandID
integer

ID of a Device Control command to run for rules of Type "RuntimeCommand". The output of the command in question can then be used for matching.

Requirement
required
string
Enum: "MustMatch" "MustNotMatch" "MustMatchTemplate"

When will this rule be applied

TemplateID
integer

If MustMatchTemplate is selected as a requirement, then the given Device Template is being used.

MatchType
string
Default: "Phrase"
Enum: "Phrase" "Regex" "LuaFunction" "Device"

The Phrase match type matches any (case sensitive) number of characters, including multi-line. The Regex match type (see Regular Expressions) takes a Perl-flavoured regular expression, and applies it to the whole configuration, or firmware string. You can also use a Lua function or compare against a known good Device

Value
string

Either a phrase, regular expression or Lua function that is being used depending on the MatchType

CaseInsensitive
boolean
Default: false

Whether to match a "Phrase" or "Regex" ignoring upper and lower case

DeviceID
integer

If MatchType is set to "Device" a device ID has to passed

Severity
string
Default: "Low"
Enum: "None" "Low" "Medium" "High"

Severity is used by the related policy's AlertThreshold

object
Default: {"Type":"None"}

Remediation is an action to be performed when a compliance rule is not met, generally intended to rectify the violation

IgnoreLines
Array of strings

If MatchType is set to "Device", these strings will be ignored when running the rule against a device configuration

Responses

Response Schema: application/json
ID
integer

Policy rule ID

PolicyID
integer

ID of Policy this rule belongs to

Name
string

Used to identify a rule in a report or email

Type
required
string
Enum: "Configuration" "FirmwareVersion" "RuntimeCommand" "ScheduledActionOutput"

Whether the rule applies to a configuration, software version, runtime command or the output of a scheduled action

ConfigurationTypes
Array of strings

List of configuration types to use if this rule's Type is set to "Configuration"

Array of objects

List of applicable files for multi-file configurations, e.g. TGZ archives if this rule's Type is set to "Configuration"

CommandID
integer

ID of a Device Control command to run for rules of Type "RuntimeCommand". The output of the command in question can then be used for matching.

Requirement
required
string
Enum: "MustMatch" "MustNotMatch" "MustMatchTemplate"

When will this rule be applied

TemplateID
integer

If MustMatchTemplate is selected as a requirement, then the given Device Template is being used.

MatchType
string
Default: "Phrase"
Enum: "Phrase" "Regex" "LuaFunction" "Device"

The Phrase match type matches any (case sensitive) number of characters, including multi-line. The Regex match type (see Regular Expressions) takes a Perl-flavoured regular expression, and applies it to the whole configuration, or firmware string. You can also use a Lua function or compare against a known good Device

Value
string

Either a phrase, regular expression or Lua function that is being used depending on the MatchType

CaseInsensitive
boolean
Default: false

Whether to match a "Phrase" or "Regex" ignoring upper and lower case

DeviceID
integer

If MatchType is set to "Device" a device ID has to passed

Severity
string
Default: "Low"
Enum: "None" "Low" "Medium" "High"

Severity is used by the related policy's AlertThreshold

object
Default: {"Type":"None"}

Remediation is an action to be performed when a compliance rule is not met, generally intended to rectify the violation

IgnoreLines
Array of strings

If MatchType is set to "Device", these strings will be ignored when running the rule against a device configuration

Request samples

Content type
application/json
{
  • "Name": "Version",
  • "Type": "Configuration",
  • "ConfigurationTypes": [
    ],
  • "Files": [
    ],
  • "CommandID": 123,
  • "Requirement": "MustMatch",
  • "TemplateID": 123,
  • "MatchType": "Phrase",
  • "Value": "Foo",
  • "CaseInsensitive": false,
  • "DeviceID": 0,
  • "Severity": "Low",
  • "Remediation": {
    },
  • "IgnoreLines": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "PolicyID": 123,
  • "Name": "Version",
  • "Type": "Configuration",
  • "ConfigurationTypes": [
    ],
  • "Files": [
    ],
  • "CommandID": 123,
  • "Requirement": "MustMatch",
  • "TemplateID": 123,
  • "MatchType": "Phrase",
  • "Value": "Foo",
  • "CaseInsensitive": false,
  • "DeviceID": 0,
  • "Severity": "Low",
  • "Remediation": {
    },
  • "IgnoreLines": [
    ]
}

Retrieve a rule

Retrieve a single rule

Authorizations:
path Parameters
rule_id
required
integer

Rule ID

id
required
integer

Policy ID

Responses

Response Schema: application/json
ID
integer

Policy rule ID

PolicyID
integer

ID of Policy this rule belongs to

Name
string

Used to identify a rule in a report or email

Type
required
string
Enum: "Configuration" "FirmwareVersion" "RuntimeCommand" "ScheduledActionOutput"

Whether the rule applies to a configuration, software version, runtime command or the output of a scheduled action

ConfigurationTypes
Array of strings

List of configuration types to use if this rule's Type is set to "Configuration"

Array of objects

List of applicable files for multi-file configurations, e.g. TGZ archives if this rule's Type is set to "Configuration"

CommandID
integer

ID of a Device Control command to run for rules of Type "RuntimeCommand". The output of the command in question can then be used for matching.

Requirement
required
string
Enum: "MustMatch" "MustNotMatch" "MustMatchTemplate"

When will this rule be applied

TemplateID
integer

If MustMatchTemplate is selected as a requirement, then the given Device Template is being used.

MatchType
string
Default: "Phrase"
Enum: "Phrase" "Regex" "LuaFunction" "Device"

The Phrase match type matches any (case sensitive) number of characters, including multi-line. The Regex match type (see Regular Expressions) takes a Perl-flavoured regular expression, and applies it to the whole configuration, or firmware string. You can also use a Lua function or compare against a known good Device

Value
string

Either a phrase, regular expression or Lua function that is being used depending on the MatchType

CaseInsensitive
boolean
Default: false

Whether to match a "Phrase" or "Regex" ignoring upper and lower case

DeviceID
integer

If MatchType is set to "Device" a device ID has to passed

Severity
string
Default: "Low"
Enum: "None" "Low" "Medium" "High"

Severity is used by the related policy's AlertThreshold

object
Default: {"Type":"None"}

Remediation is an action to be performed when a compliance rule is not met, generally intended to rectify the violation

IgnoreLines
Array of strings

If MatchType is set to "Device", these strings will be ignored when running the rule against a device configuration

Response samples

Content type
application/json
{
  • "ID": 123,
  • "PolicyID": 123,
  • "Name": "Version",
  • "Type": "Configuration",
  • "ConfigurationTypes": [
    ],
  • "Files": [
    ],
  • "CommandID": 123,
  • "Requirement": "MustMatch",
  • "TemplateID": 123,
  • "MatchType": "Phrase",
  • "Value": "Foo",
  • "CaseInsensitive": false,
  • "DeviceID": 0,
  • "Severity": "Low",
  • "Remediation": {
    },
  • "IgnoreLines": [
    ]
}

Update a rule

Update a rule (note that policy's devices' compliance scores won't be updated)

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
rule_id
required
integer

Rule ID

id
required
integer

Policy ID

Request Body schema: application/json
Name
string

Used to identify a rule in a report or email

Type
required
string
Enum: "Configuration" "FirmwareVersion" "RuntimeCommand" "ScheduledActionOutput"

Whether the rule applies to a configuration, software version, runtime command or the output of a scheduled action

ConfigurationTypes
Array of strings

List of configuration types to use if this rule's Type is set to "Configuration"

Array of objects

List of applicable files for multi-file configurations, e.g. TGZ archives if this rule's Type is set to "Configuration"

CommandID
integer

ID of a Device Control command to run for rules of Type "RuntimeCommand". The output of the command in question can then be used for matching.

Requirement
required
string
Enum: "MustMatch" "MustNotMatch" "MustMatchTemplate"

When will this rule be applied

TemplateID
integer

If MustMatchTemplate is selected as a requirement, then the given Device Template is being used.

MatchType
string
Default: "Phrase"
Enum: "Phrase" "Regex" "LuaFunction" "Device"

The Phrase match type matches any (case sensitive) number of characters, including multi-line. The Regex match type (see Regular Expressions) takes a Perl-flavoured regular expression, and applies it to the whole configuration, or firmware string. You can also use a Lua function or compare against a known good Device

Value
string

Either a phrase, regular expression or Lua function that is being used depending on the MatchType

CaseInsensitive
boolean
Default: false

Whether to match a "Phrase" or "Regex" ignoring upper and lower case

DeviceID
integer

If MatchType is set to "Device" a device ID has to passed

Severity
string
Default: "Low"
Enum: "None" "Low" "Medium" "High"

Severity is used by the related policy's AlertThreshold

object
Default: {"Type":"None"}

Remediation is an action to be performed when a compliance rule is not met, generally intended to rectify the violation

IgnoreLines
Array of strings

If MatchType is set to "Device", these strings will be ignored when running the rule against a device configuration

Responses

Response Schema: application/json
ID
integer

Policy rule ID

PolicyID
integer

ID of Policy this rule belongs to

Name
string

Used to identify a rule in a report or email

Type
required
string
Enum: "Configuration" "FirmwareVersion" "RuntimeCommand" "ScheduledActionOutput"

Whether the rule applies to a configuration, software version, runtime command or the output of a scheduled action

ConfigurationTypes
Array of strings

List of configuration types to use if this rule's Type is set to "Configuration"

Array of objects

List of applicable files for multi-file configurations, e.g. TGZ archives if this rule's Type is set to "Configuration"

CommandID
integer

ID of a Device Control command to run for rules of Type "RuntimeCommand". The output of the command in question can then be used for matching.

Requirement
required
string
Enum: "MustMatch" "MustNotMatch" "MustMatchTemplate"

When will this rule be applied

TemplateID
integer

If MustMatchTemplate is selected as a requirement, then the given Device Template is being used.

MatchType
string
Default: "Phrase"
Enum: "Phrase" "Regex" "LuaFunction" "Device"

The Phrase match type matches any (case sensitive) number of characters, including multi-line. The Regex match type (see Regular Expressions) takes a Perl-flavoured regular expression, and applies it to the whole configuration, or firmware string. You can also use a Lua function or compare against a known good Device

Value
string

Either a phrase, regular expression or Lua function that is being used depending on the MatchType

CaseInsensitive
boolean
Default: false

Whether to match a "Phrase" or "Regex" ignoring upper and lower case

DeviceID
integer

If MatchType is set to "Device" a device ID has to passed

Severity
string
Default: "Low"
Enum: "None" "Low" "Medium" "High"

Severity is used by the related policy's AlertThreshold

object
Default: {"Type":"None"}

Remediation is an action to be performed when a compliance rule is not met, generally intended to rectify the violation

IgnoreLines
Array of strings

If MatchType is set to "Device", these strings will be ignored when running the rule against a device configuration

Request samples

Content type
application/json
{
  • "Name": "Version",
  • "Type": "Configuration",
  • "ConfigurationTypes": [
    ],
  • "Files": [
    ],
  • "CommandID": 123,
  • "Requirement": "MustMatch",
  • "TemplateID": 123,
  • "MatchType": "Phrase",
  • "Value": "Foo",
  • "CaseInsensitive": false,
  • "DeviceID": 0,
  • "Severity": "Low",
  • "Remediation": {
    },
  • "IgnoreLines": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "PolicyID": 123,
  • "Name": "Version",
  • "Type": "Configuration",
  • "ConfigurationTypes": [
    ],
  • "Files": [
    ],
  • "CommandID": 123,
  • "Requirement": "MustMatch",
  • "TemplateID": 123,
  • "MatchType": "Phrase",
  • "Value": "Foo",
  • "CaseInsensitive": false,
  • "DeviceID": 0,
  • "Severity": "Low",
  • "Remediation": {
    },
  • "IgnoreLines": [
    ]
}

Delete a rule

Delete a rule (note that policy's devices' compliance scores won't be updated)

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
rule_id
required
integer

Rule ID

id
required
integer

Policy ID

Responses

Response samples

Content type
application/json
{
  • "message": "Rule does not exit",
  • "errors": {
    }
}

Policy/Variable

Policy variables can be used in compliance rules as variable replacements, referenced with the $replace$ format, where replace is the variable name you have defined. This enables you to use a variable as shorthand for configuration elements, that are likely to be referenced multiple times.

For instance, if you create a definition of Gateway, and assign it a Value of 192.168.0.1, you can then use it in a compliance rule, e.g. a Configuration rule the Must Contain the Regex ip default-gateway $Gateway$.

This rule will be expanded to ip default-gateway 192.168.0.1. If later, the gateway address changes, simply change the Value of the Gateway variable definition, and all rules that use the $Gateway$ variable will be updated automatically.

List variables

Retrieve all variables

Authorizations:
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Variable)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a variable

Create a new variable

Authorizations:
CookieTokenPermissions (ModifyRules)
Request Body schema: application/json
Name
required
string

The name of the variable. A variable name can only consist of letters, numbers, and the underscore character _.

Value
required
string

The value that replaces this variables $Name$. If the value contains escape sequences (such as \n), they must be double-escaped (\\n).

Responses

Response Schema: application/json
ID
integer

Policy variable ID

Name
required
string

The name of the variable. A variable name can only consist of letters, numbers, and the underscore character _.

Value
required
string

The value that replaces this variables $Name$. If the value contains escape sequences (such as \n), they must be double-escaped (\\n).

Request samples

Content type
application/json
{
  • "Name": "Foo",
  • "Value": "Bar"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Foo",
  • "Value": "Bar"
}

Retrieve a variable

Retrieve a single variable

Authorizations:
path Parameters
id
required
integer

Variable ID

Responses

Response Schema: application/json
ID
integer

Policy variable ID

Name
required
string

The name of the variable. A variable name can only consist of letters, numbers, and the underscore character _.

Value
required
string

The value that replaces this variables $Name$. If the value contains escape sequences (such as \n), they must be double-escaped (\\n).

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Foo",
  • "Value": "Bar"
}

Update a variable

Update a variable

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
id
required
integer

Variable ID

Request Body schema: application/json
Name
required
string

The name of the variable. A variable name can only consist of letters, numbers, and the underscore character _.

Value
required
string

The value that replaces this variables $Name$. If the value contains escape sequences (such as \n), they must be double-escaped (\\n).

Responses

Response Schema: application/json
ID
integer

Policy variable ID

Name
required
string

The name of the variable. A variable name can only consist of letters, numbers, and the underscore character _.

Value
required
string

The value that replaces this variables $Name$. If the value contains escape sequences (such as \n), they must be double-escaped (\\n).

Request samples

Content type
application/json
{
  • "Name": "Foo",
  • "Value": "Bar"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Foo",
  • "Value": "Bar"
}

Delete a variable

Delete a variable

Authorizations:
CookieTokenPermissions (ModifyRules)
path Parameters
id
required
integer

Variable ID

Responses

Response samples

Content type
application/json
{
  • "message": "Variable does not exit",
  • "errors": {
    }
}

Import policy variables

Import one or more policy variables

Authorizations:
CookieTokenPermissions (ModifyRules)
Request Body schema: multipart/form-data
overwrite
boolean
Default: false

Overwrite existing variables

file
string

CSV data (see Export for format)

Responses

Response Schema: application/json
NumberImported
integer

Number of variables that have been imported

Response samples

Content type
application/json
{
  • "NumberImported": 123
}

Export variables

Export one or more policy variables in a CSV file

Authorizations:
query Parameters
VariableIDs
required
Array of integers
Example: VariableIDs=1,2,3

List of Variable IDs to export

Responses

Response Headers
Content-Disposition
string
Example: "attachment; filename=\"RestorepointComplianceDefinitions.csv\""
Response Schema: text/csv
string

Response samples

Content type
text/csv
name,replacement
wiggle,wiggle
foo,bar

Plugin

Plugins have a number of device specific settings that are required for creating a functional device configurations for backup, restore or running commands.

List plugins

Retrieve all plugins

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

Array of objects (Plugin)

List of plugins

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "data": [
    ]
}

Retrieve a plugin

Retrieve a single plugin

Authorizations:
path Parameters
key
required
string

plugin key

Responses

Response Schema: application/json
Key
string

Plugin identifier

Name
string

Plugin name

Manufacturer
string

To which device manufacturer the policy applies

Model
string

To which device model the policy applies

Documentation
string

A plugin's documentation in HTML format

Protocols
Array of strings

List of supported connection protocols

FullProtocols
Array of strings

List of supported full connection protocols. Contains both the direct connection and the back-connection protocol.

Fields
Array of strings

List of additional fields required by a plugin. These have to be passed via a device's PluginFields array.

object

A list of additional properties a plugin might require. Internal use only.

Array of objects

Configuration types supported by a device

Array of objects

Additional device information functions. See AdditionalInformation field on a device.

Functions
Array of strings

List of available functions (backup, restore, serial, etc.)

Port
integer

Default backup port

TransferProtocol
string

Default transfer protocol

CanRestore
boolean
Default: false

Denotes if this type of device can be restored

IsPush
boolean
Default: false

If a device is push only, meaning it has to be manually configured to send its backup to Restorepoint

NoMultiDiff
boolean
Default: false

Internal use

SyslogTriggers
boolean

This is set for devices that support real-time change detection. Please note: In order to use this feature, you must configure a device to send its logs to Restorepoint using syslog.

Revision
string

Internal plugin version

Response samples

Content type
application/json
{
  • "Key": "cisco_ios",
  • "Name": "Cisco IOS",
  • "Manufacturer": "Cisco",
  • "Model": "IOS/IOS-XE Switches/Routers",
  • "Documentation": "<h1>Cisco IOS/IOS-XE</h1><ul><li>Foo</li><li>Bar</li><li>Baz</li></ul>",
  • "Protocols": [
    ],
  • "FullProtocols": [
    ],
  • "Fields": [
    ],
  • "Options": {
    },
  • "ConfigTypes": [
    ],
  • "InfoTypes": [
    ],
  • "Functions": [
    ],
  • "Port": 22,
  • "TransferProtocol": "ssh",
  • "CanRestore": false,
  • "IsPush": false,
  • "NoMultiDiff": false,
  • "SyslogTriggers": true,
  • "Revision": "1234"
}

Preference

Preferences are a set of user specific settings, tied to the UI, that should be persisted on the database side and should reflect on the UI by default.

Role

In addition to the standard built-in roles (Admin, Backup, and View Only), which cannot be edited, it is possible to define granular, custom roles, which specify in detail which product elements are accessible to the user.

Please note: Custom roles are only available with an Enterprise licence.

List roles

Retrieve all roles

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Role)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a role

Create a new role

Authorizations:
Request Body schema: application/json
Name
required
string

Role name

PermissionIDs
required
Array of integers

List of Permission IDs for this role

Responses

Response Schema: application/json
ID
integer

Role ID

Name
required
string

Role name

PermissionIDs
required
Array of integers

List of Permission IDs for this role

UserIDs
Array of integers
Default: []

A list of User IDs assigned to this role

Request samples

Content type
application/json
{
  • "Name": "View Only",
  • "PermissionIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "View Only",
  • "PermissionIDs": [
    ],
  • "UserIDs": [
    ]
}

Retrieve a role

Retrieve a single role

Authorizations:
path Parameters
id
required
integer

Role ID

Responses

Response Schema: application/json
ID
integer

Role ID

Name
required
string

Role name

PermissionIDs
required
Array of integers

List of Permission IDs for this role

UserIDs
Array of integers
Default: []

A list of User IDs assigned to this role

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "View Only",
  • "PermissionIDs": [
    ],
  • "UserIDs": [
    ]
}

Update a role

Update a role

Authorizations:
path Parameters
id
required
integer

Role ID

Request Body schema: application/json
Name
required
string

Role name

PermissionIDs
required
Array of integers

List of Permission IDs for this role

Responses

Response Schema: application/json
ID
integer

Role ID

Name
required
string

Role name

PermissionIDs
required
Array of integers

List of Permission IDs for this role

UserIDs
Array of integers
Default: []

A list of User IDs assigned to this role

Request samples

Content type
application/json
{
  • "Name": "View Only",
  • "PermissionIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "View Only",
  • "PermissionIDs": [
    ],
  • "UserIDs": [
    ]
}

Delete a role

Delete a role

Authorizations:
path Parameters
id
required
integer

Role ID

Responses

Response samples

Content type
application/json
{
  • "message": "Role does not exit",
  • "errors": {
    }
}

Schedule

Allows a view of the next occurence of all scheduled events including device backups, Restorepoint archival, device discovery as well as reporting.

List all schedules

Retrieve all schedules

Authorizations:
CookieTokenPermissions (ViewSchedule)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

deviceid
integer
Example: deviceid=123&deviceid=2875&deviceid=3

Device id to limit the log output to.

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

required
object

The search parameters used to filter items

required
Array of objects

The sorting parameters used to sort items

fields
Array of strings

The filtered fields

required
Array of objects (Schedule)

List of schedules

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "search": {
    },
  • "sort": [
    ],
  • "fields": [
    ],
  • "data": [
    ]
}

Next due

Calculates the next time a schedule would run for a given cron-like expression

Authorizations:
Request Body schema: application/json
Schedule
string

A cron-like expression to calculte the next due time for

Responses

Response Schema: application/json
NextDue
string

Timestamp in RFC3339 format of the cron expression

Request samples

Content type
application/json
{
  • "Schedule": "0 0 */6 * * * *"
}

Response samples

Content type
application/json
{
  • "NextDue": "2222-02-22T22:22:22.000Z"
}

Schedule status

Get overall schedule status

Authorizations:

Responses

Response Schema: application/json
Status
string
Enum: "active" "paused"

A string representing Restorepoint's schedule status

Response samples

Content type
application/json
{
  • "Status": "active"
}

Pause schedule

Suspends all schedules

Authorizations:
CookieTokenPermissions (ModifySchedule)

Responses

Resume schedule

Resumes all schedules

Authorizations:
CookieTokenPermissions (ModifySchedule)

Responses

Postpone schedules

Postpone a list of schedules

Authorizations:
CookieTokenPermissions (ModifySchedule)
Request Body schema: application/json
Array of objects

List of schedules to postpone

Responses

Request samples

Content type
application/json
{
  • "Schedules": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Settings/Alerts

Configure system email alert settings.

Get alert settings

Get alert settings

Authorizations:

Responses

Response Schema: application/json
Enabled
boolean
Default: false

Enable email alerts

From
string

An email address to use in the From field for notifications. Must be set to a valid email address if enabled

To
string

Default notification address to send email alerts to. Must be set to a valid email address if enabled

Hostname
string

Hostname to be used in email alerts. Defaults to the appliance's hostname

PlainText
boolean
Default: false

Send emails as text/plain instead of HTML formatted

object

Outgoing SMTP server settings. Your mail server must be configured to allow Restorepoint to relay to internal and external recipients. Must be set if enabled

Response samples

Content type
application/json
{
  • "Enabled": true,
  • "From": "restorepoint@example.com",
  • "To": "admin@example.com",
  • "Hostname": "restorepoint.example.com",
  • "PlainText": false,
  • "SMTP": {
    }
}

Set alert settings

Update alert settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Enabled
boolean
Default: false

Enable email alerts

From
string

An email address to use in the From field for notifications. Must be set to a valid email address if enabled

To
string

Default notification address to send email alerts to. Must be set to a valid email address if enabled

Hostname
string

Hostname to be used in email alerts. Defaults to the appliance's hostname

PlainText
boolean
Default: false

Send emails as text/plain instead of HTML formatted

object

Outgoing SMTP server settings. Your mail server must be configured to allow Restorepoint to relay to internal and external recipients. Must be set if enabled

Responses

Response Schema: application/json
Enabled
boolean
Default: false

Enable email alerts

From
string

An email address to use in the From field for notifications. Must be set to a valid email address if enabled

To
string

Default notification address to send email alerts to. Must be set to a valid email address if enabled

Hostname
string

Hostname to be used in email alerts. Defaults to the appliance's hostname

PlainText
boolean
Default: false

Send emails as text/plain instead of HTML formatted

object

Outgoing SMTP server settings. Your mail server must be configured to allow Restorepoint to relay to internal and external recipients. Must be set if enabled

Request samples

Content type
application/json
{
  • "Enabled": true,
  • "From": "restorepoint@example.com",
  • "To": "admin@example.com",
  • "Hostname": "restorepoint.example.com",
  • "PlainText": false,
  • "SMTP": {
    }
}

Response samples

Content type
application/json
{
  • "Enabled": true,
  • "From": "restorepoint@example.com",
  • "To": "admin@example.com",
  • "Hostname": "restorepoint.example.com",
  • "PlainText": false,
  • "SMTP": {
    }
}

Tests alert settings by sending a dummy email

Tests alert settings by sending a dummy email

Authorizations:

Responses

Response Schema: application/json
Success
required
boolean

If test was successful

Message
string

Test result

Response samples

Content type
application/json
Example
{
  • "Success": true
}

Settings/Appliance

Allows you to set general appliance settings as well as triggering global appliance actions.

Get appliance settings

Get appliance settings

Authorizations:

Responses

Response Schema: application/json
RebootPolicy
string
Default: "RunDueSchedule"
Enum: "RunDueSchedule" "RecalculateSchedules"

Which action to take after restarting Restorepoint, rebooting or powering on this appliance. You can RunDueBackups and treat any missed backups as overdue, or RecalculateSchedules and just return to the normal backup schedule

Offline
boolean
Default: false

Will disable any automatic checks to the Restorepoint update server and will require manual updates

AutomaticVersionUpgrades
boolean
Default: true

By default Restorepoint will update automatically, even for major version updates (5.x) unless this is set to false

AutomaticMinorUpdate
boolean
Default: true

By default Restorepoint will update automatically for minor version updates (5.x.y) unless this is set to false

DateTime
string

Timestamp in RFC3339 format to set the appliance date and time

Timezone
string

TZ database timezone name

UseNTP
boolean
Default: false

Use a NTP server to set appliance time automatically

NTPHost1
string

Hostname of the primary NTP server to use for automatic date/time settings

NTPHost2
string

Hostname of a secondary, fallback NTP server to use for automatic date/time settings

LogLevel
string
Enum: "info" "debug" "trace"

Current internal log level

Response samples

Content type
application/json
{
  • "RebootPolicy": "RecalculateSchedules",
  • "Offline": true,
  • "AutomaticVersionUpgrades": true,
  • "AutomaticMinorUpdate": true,
  • "DateTime": "2222-02-22T22:22:22.000Z",
  • "Timezone": "Europe/London",
  • "UseNTP": true,
  • "NTPHost1": "0.uk.pool.ntp.org",
  • "NTPHost2": "1.uk.pool.ntp.org",
  • "LogLevel": "debug"
}

Set appliance settings

Update appliance settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
RebootPolicy
string
Default: "RunDueSchedule"
Enum: "RunDueSchedule" "RecalculateSchedules"

Which action to take after restarting Restorepoint, rebooting or powering on this appliance. You can RunDueBackups and treat any missed backups as overdue, or RecalculateSchedules and just return to the normal backup schedule

Offline
boolean
Default: false

Will disable any automatic checks to the Restorepoint update server and will require manual updates

AutomaticVersionUpgrades
boolean
Default: true

By default Restorepoint will update automatically, even for major version updates (5.x) unless this is set to false

AutomaticMinorUpdate
boolean
Default: true

By default Restorepoint will update automatically for minor version updates (5.x.y) unless this is set to false

DateTime
string

Timestamp in RFC3339 format to set the appliance date and time

Timezone
string

TZ database timezone name

UseNTP
boolean
Default: false

Use a NTP server to set appliance time automatically

NTPHost1
string

Hostname of the primary NTP server to use for automatic date/time settings

NTPHost2
string

Hostname of a secondary, fallback NTP server to use for automatic date/time settings

Responses

Response Schema: application/json
RebootPolicy
string
Default: "RunDueSchedule"
Enum: "RunDueSchedule" "RecalculateSchedules"

Which action to take after restarting Restorepoint, rebooting or powering on this appliance. You can RunDueBackups and treat any missed backups as overdue, or RecalculateSchedules and just return to the normal backup schedule

Offline
boolean
Default: false

Will disable any automatic checks to the Restorepoint update server and will require manual updates

AutomaticVersionUpgrades
boolean
Default: true

By default Restorepoint will update automatically, even for major version updates (5.x) unless this is set to false

AutomaticMinorUpdate
boolean
Default: true

By default Restorepoint will update automatically for minor version updates (5.x.y) unless this is set to false

DateTime
string

Timestamp in RFC3339 format to set the appliance date and time

Timezone
string

TZ database timezone name

UseNTP
boolean
Default: false

Use a NTP server to set appliance time automatically

NTPHost1
string

Hostname of the primary NTP server to use for automatic date/time settings

NTPHost2
string

Hostname of a secondary, fallback NTP server to use for automatic date/time settings

LogLevel
string
Enum: "info" "debug" "trace"

Current internal log level

Request samples

Content type
application/json
{
  • "RebootPolicy": "RecalculateSchedules",
  • "Offline": true,
  • "AutomaticVersionUpgrades": true,
  • "AutomaticMinorUpdate": true,
  • "DateTime": "2222-02-22T22:22:22.000Z",
  • "Timezone": "Europe/London",
  • "UseNTP": true,
  • "NTPHost1": "0.uk.pool.ntp.org",
  • "NTPHost2": "1.uk.pool.ntp.org"
}

Response samples

Content type
application/json
{
  • "RebootPolicy": "RecalculateSchedules",
  • "Offline": true,
  • "AutomaticVersionUpgrades": true,
  • "AutomaticMinorUpdate": true,
  • "DateTime": "2222-02-22T22:22:22.000Z",
  • "Timezone": "Europe/London",
  • "UseNTP": true,
  • "NTPHost1": "0.uk.pool.ntp.org",
  • "NTPHost2": "1.uk.pool.ntp.org",
  • "LogLevel": "debug"
}

Clear cache

Clears the appliance cache from storage

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Install appliance

Install the appliance. If appliance is offline, return an appliance key to register offline appliance

Authorizations:
Request Body schema: application/json
Company
required
string

Company name

Contact
required
string

Contact name

Email
required
string

Contact email

Phone
required
string

Contact phone number

Address
required
string

Customer or Business Unit address

Reseller
required
string

Reseller name

ActivationCode
string

Only applies to appliances with no serial number, usually virtual machines

Offline
boolean
Default: false

True if the box should be installed offline

Responses

Response Schema: application/json
ApplianceKey
string

Appliance key that should be user to register an offline appliance

Request samples

Content type
application/json
{
  • "Company": "Foo inc",
  • "Contact": "John Doe",
  • "Email": "afox@restorepoint.com",
  • "Phone": "+44 844 571 8120",
  • "Address": "4 Tannery Ln, Send, Woking GU23 7EF",
  • "Reseller": "Foo inc",
  • "ActivationCode": "some888_eval",
  • "Offline": true
}

Response samples

Content type
application/json
{
  • "ApplianceKey": "RPV5U2F5hags6"
}

Check installation status

Checks existing installation status

Authorizations:

Responses

Response Schema: application/json
IsInstalled
required
boolean

Whether or not the appliance is already installed

Errors
required
Array of strings

All the errors that occurred during installation

Response samples

Content type
application/json
{
  • "IsInstalled": false,
  • "Errors": [
    ]
}

Settings/Appliance/Actions

Trigger global appliance actions.

Restart Restorepoint

Restarts the Restorepoint daemon

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Reboot appliance

Reboots the appliance

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Appliance shutdown

Shuts down the appliance

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Settings/Appliance/Debug

Endpoints that can aid in debugging appliance problems.

Start debug logging

Enables debug logging

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Stop debug logging

Disables debug logging

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Check if debug logging is active

Check if debug logging is active

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Response Schema: application/json
DebugLogActive
boolean

True if debug logging is active

Response samples

Content type
application/json
{
  • "DebugLogActive": true
}

Download debug log

Download appliance debug log

Authorizations:

Responses

Response Schema: application/zip
string <binary>

Zip file containing log files

Delete debug log

Deletes the debug log from the appliance

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Get stack trace

Download a stack trace

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Response Schema: text/plain
string

Stack trace of the current system state

Settings/Appliance/Support

Start and stop remote support sessions.

Start remote support

Starts remote support

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Stop remote support

Stops remote support

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Check if remote support is active

Check if remote support is active

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Response Schema: application/json
RemoteSupportActive
boolean

True if remote support is active

Response samples

Content type
application/json
{
  • "RemoteSupportActive": true
}

Settings/Appliance/Updates

Check, retrieve and update the appliance.

Check update status

Checks existing update status

Authorizations:

Responses

Response Schema: application/json
Version
string

Currently installed version

AvailableVersion
string

Version of currently available update (if available)

Changelog
string

HTML changelog of changes between current and available version (if available)

UpdateKey
string

Encrypted key for manual updates

Response samples

Content type
application/json
{
  • "Version": "5.4:20220222222222",
  • "AvailableVersion": "5.4:20230323232323",
  • "Changelog": "<h1>Changelog 5.4:20230323<h1>\n<h2>Fixes</h2>\n<ul>\n <li>Foo</li>\n <li>Bar</li>\n <li>Baz</li>\n</ul>\n",
  • "UpdateKey": "RPV5..."
}

Update now

Update the appliance

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Force update check

Forces an online update check. If automatic updates are enabled, an available update will be applied

Authorizations:
CookieTokenPermissions (UpdateSysadmin)

Responses

Upload manual update

Upload a manual update file

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: multipart/form-data
file
required
string <binary>

Manual update file (.bin)

Responses

Response samples

Content type
application/json
{
  • "message": "Unable to update"
}

Settings/Archive

You can prepare for disaster recovery scenarios by archiving the Restorepoint configuration. This allows you to back up the Restorepoint appliance automatically, to up to two remote servers, including all device configurations stored on Restorepoint.

Get archive settings

Get archive settings

Authorizations:
CookieTokenPermissions (ArchivePlatform)

Responses

Response Schema: application/json
ArchiveCerts
boolean
Default: false

True if archive should contain certs and keys

WriteMaxRetries
integer
Default: 0

Maximum number of retries for failed archive write operations.

WriteRetryInterval
integer
Default: 0

Retry interval for failed archive write operations, in seconds.

Schedule
string
Default: ""

A cron-like expression to schedule appliance backup intervals. An empty value "" stands for Manual appliance backups

LastArchived
string <date-time>

Timestamp in RFC3339 format when an archive was last taken

NextDue
string <date-time>

Timestamp in RFC3339 format when an archive will be taken next

FailoverMode
boolean
Default: false

If true, failover to secondary archive server if primary fails. Set to false to always use both servers

RetryAfter
integer
Default: 0

Retry interval in hours. '0' means no retry. '-1' means to revert to manual archive.

required
object

Primary archive settings

object

Secondary archive settings

Response samples

Content type
application/json
{
  • "ArchiveCerts": true,
  • "WriteMaxRetries": 0,
  • "WriteRetryInterval": 0,
  • "Schedule": "15 * * * *",
  • "LastArchived": "2222-02-22T22:22:22.000Z",
  • "NextDue": "2222-02-22T22:22:22.000Z",
  • "FailoverMode": true,
  • "RetryAfter": 0,
  • "Primary": {
    },
  • "Secondary": {
    }
}

Set archive settings

Update archive settings

Authorizations:
CookieTokenPermissions (ArchivePlatform)
Request Body schema: application/json
ArchiveCerts
boolean
Default: false

True if archive should contain certs and keys

WriteMaxRetries
integer
Default: 0

Maximum number of retries for failed archive write operations.

WriteRetryInterval
integer
Default: 0

Retry interval for failed archive write operations, in seconds.

Schedule
string
Default: ""

A cron-like expression to schedule appliance backup intervals. An empty value "" stands for Manual appliance backups

FailoverMode
boolean
Default: false

If true, failover to secondary archive server if primary fails. Set to false to always use both servers

RetryAfter
integer
Default: 0

Retry interval in hours. '0' means no retry. '-1' means to revert to manual archive.

required
object

Primary archive settings

object

Secondary archive settings

Responses

Response Schema: application/json
ArchiveCerts
boolean
Default: false

True if archive should contain certs and keys

WriteMaxRetries
integer
Default: 0

Maximum number of retries for failed archive write operations.

WriteRetryInterval
integer
Default: 0

Retry interval for failed archive write operations, in seconds.

Schedule
string
Default: ""

A cron-like expression to schedule appliance backup intervals. An empty value "" stands for Manual appliance backups

LastArchived
string <date-time>

Timestamp in RFC3339 format when an archive was last taken

NextDue
string <date-time>

Timestamp in RFC3339 format when an archive will be taken next

FailoverMode
boolean
Default: false

If true, failover to secondary archive server if primary fails. Set to false to always use both servers

RetryAfter
integer
Default: 0

Retry interval in hours. '0' means no retry. '-1' means to revert to manual archive.

required
object

Primary archive settings

object

Secondary archive settings

Request samples

Content type
application/json
{
  • "ArchiveCerts": true,
  • "WriteMaxRetries": 0,
  • "WriteRetryInterval": 0,
  • "Schedule": "15 * * * *",
  • "FailoverMode": true,
  • "RetryAfter": 0,
  • "Primary": {
    },
  • "Secondary": {
    }
}

Response samples

Content type
application/json
{
  • "ArchiveCerts": true,
  • "WriteMaxRetries": 0,
  • "WriteRetryInterval": 0,
  • "Schedule": "15 * * * *",
  • "LastArchived": "2222-02-22T22:22:22.000Z",
  • "NextDue": "2222-02-22T22:22:22.000Z",
  • "FailoverMode": true,
  • "RetryAfter": 0,
  • "Primary": {
    },
  • "Secondary": {
    }
}

Backup appliance

Starts a manual appliance backup using the current appliance archive settings

Authorizations:
CookieTokenPermissions (ArchivePlatform)

Responses

List appliance backups

Returns a list of appliance backups from primary and secondary servers

Authorizations:
CookieTokenPermissions (ArchivePlatform)

Responses

Response Schema: application/json
Array of objects

List of appliance backups

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Restore appliance

Restores Restorepoint from a given archive

Authorizations:
CookieTokenPermissions (ArchivePlatform)
Request Body schema: application/json
FileserverID
required
integer
Default: 0

ID of the Fileserver an archive should be restored from

Key
required
string
Default: ""

Identifier of the backup to be used for restoring an archive

Password
string
Default: ""

Backup's admin user password. Required if backup is from a different appliance

EncryptionPassword
string
Default: ""

Backup's admin encryption password. Required if backup is from a different appliance

Responses

Request samples

Content type
application/json
{
  • "FileserverID": 123,
  • "Key": "restorepoint_archive_RP00000123_20220222222222",
  • "Password": "password123",
  • "EncryptionPassword": "password456"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Settings/Assetfield

Configure device asset information fields including location, asset tag, and serial number.

List all asset fields

Retrieve all assetfields

Authorizations:
query Parameters
all
integer
Default: 0
Example: all=1

Return all asset fields, including built-in, non-editable ones.

fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

Array of objects (Assetfield)

List of asset fields

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "data": [
    ]
}

Create an asset field

Create a new assetfield

Authorizations:
CookieTokenPermissions (ModifyAssets)
Request Body schema: application/json
Name
required
string

Asset field name

Type
required
string
Enum: "text" "textarea" "date" "daten" "daten30" "daten60" "file" "filen"

The type of the asset field. The following types are supported:

  • text for a single line input
  • textarea for a multi-line line input
  • date generic date field
  • daten notify device owner on set date
  • daten30 notify device owner 30 days before set date
  • daten60 notify device owner 60 days before set date
  • file for file uploads
  • filen file upload with notify device owner

Responses

Response Schema: application/json
ID
integer

Asset field ID

Name
required
string

Asset field name

Type
required
string
Enum: "text" "textarea" "date" "daten" "daten30" "daten60" "file" "filen"

The type of the asset field. The following types are supported:

  • text for a single line input
  • textarea for a multi-line line input
  • date generic date field
  • daten notify device owner on set date
  • daten30 notify device owner 30 days before set date
  • daten60 notify device owner 60 days before set date
  • file for file uploads
  • filen file upload with notify device owner
BuiltIn
boolean

Factory default asset fields are not editable and have this flag set to true.

Request samples

Content type
application/json
{
  • "Name": "Service Tag",
  • "Type": "date"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Service Tag",
  • "Type": "date",
  • "BuiltIn": true
}

Retrieve an asset field

Retrieve a single assetfield

Authorizations:
path Parameters
id
required
integer

Asset field ID

Responses

Response Schema: application/json
ID
integer

Asset field ID

Name
required
string

Asset field name

Type
required
string
Enum: "text" "textarea" "date" "daten" "daten30" "daten60" "file" "filen"

The type of the asset field. The following types are supported:

  • text for a single line input
  • textarea for a multi-line line input
  • date generic date field
  • daten notify device owner on set date
  • daten30 notify device owner 30 days before set date
  • daten60 notify device owner 60 days before set date
  • file for file uploads
  • filen file upload with notify device owner
BuiltIn
boolean

Factory default asset fields are not editable and have this flag set to true.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Service Tag",
  • "Type": "date",
  • "BuiltIn": true
}

Update an asset field

Update an asset field

Authorizations:
CookieTokenPermissions (ModifyAssets)
path Parameters
id
required
integer

Asset field ID

Request Body schema: application/json
Name
required
string

Asset field name

Type
required
string
Enum: "text" "textarea" "date" "daten" "daten30" "daten60" "file" "filen"

The type of the asset field. The following types are supported:

  • text for a single line input
  • textarea for a multi-line line input
  • date generic date field
  • daten notify device owner on set date
  • daten30 notify device owner 30 days before set date
  • daten60 notify device owner 60 days before set date
  • file for file uploads
  • filen file upload with notify device owner

Responses

Response Schema: application/json
ID
integer

Asset field ID

Name
required
string

Asset field name

Type
required
string
Enum: "text" "textarea" "date" "daten" "daten30" "daten60" "file" "filen"

The type of the asset field. The following types are supported:

  • text for a single line input
  • textarea for a multi-line line input
  • date generic date field
  • daten notify device owner on set date
  • daten30 notify device owner 30 days before set date
  • daten60 notify device owner 60 days before set date
  • file for file uploads
  • filen file upload with notify device owner
BuiltIn
boolean

Factory default asset fields are not editable and have this flag set to true.

Request samples

Content type
application/json
{
  • "Name": "Service Tag",
  • "Type": "date"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Service Tag",
  • "Type": "date",
  • "BuiltIn": true
}

Delete an asset field

Delete an asset field

Authorizations:
CookieTokenPermissions (ModifyAssets)
path Parameters
id
required
integer

Asset field ID

Responses

Response samples

Content type
application/json
{
  • "message": "Asset field does not exit",
  • "errors": {
    }
}

Settings/Assetfield/Notifications

Configure device asset notify address.

Get asset notification settings

Retrieve asset notification settings

Authorizations:

Responses

Response Schema: application/json
NotifyDeviceOwner
boolean
Default: false

If true will notify the device owner of changes on assets, taking precedence over NotifyAddress

NotifyAddress
string
Default: ""

Asset notify address, only has effect if NotifyDeviceOwner is disabled. Must be empty or a valid email address

Response samples

Content type
application/json
{
  • "NotifyDeviceOwner": true,
  • "NotifyAddress": "admin@restorepoint.com"
}

Update asset notification settings

Update asset notification settings

Authorizations:
CookieTokenPermissions (ModifyAssets)
Request Body schema: application/json
NotifyDeviceOwner
boolean
Default: false

If true will notify the device owner of changes on assets, taking precedence over NotifyAddress

NotifyAddress
string
Default: ""

Asset notify address, only has effect if NotifyDeviceOwner is disabled. Must be empty or a valid email address

Responses

Request samples

Content type
application/json
{
  • "NotifyDeviceOwner": true,
  • "NotifyAddress": "admin@restorepoint.com"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Disable asset notifications

Disable asset notifications

Authorizations:
CookieTokenPermissions (ModifyAssets)

Responses

Response samples

Content type
application/json
{
  • "message": "Unable to disable asset notifications"
}

Settings/Authentication

Allows you to configure additional authentication methods for Restorepoint. Supported methods are:

  • RADIUS
  • SAML
  • LDAP

Get authentication settings

Get authentication settings

Authorizations:

Responses

Response Schema: application/json
object

Use RADIUS authentication

object

SAML authentication settings

object

LDAP (Active Directory) authentication settings

Response samples

Content type
application/json
{}

Set authentication settings

Update authentication settings

Authorizations:
CookieTokenPermissions (ModifyRadius)
Request Body schema: application/json
object

Use RADIUS authentication

object

SAML authentication settings

object

LDAP (Active Directory) authentication settings

Responses

Response Schema: application/json
object

Use RADIUS authentication

object

SAML authentication settings

object

LDAP (Active Directory) authentication settings

Request samples

Content type
application/json
{
  • "RADIUS": {
    },
  • "SAML": {
    },
  • "LDAP": {
    }
}

Response samples

Content type
application/json
{}

Tests LDAP server

Tests LDAP (Active Directory) server by running a search

Authorizations:
Request Body schema: application/json
Type
string
Default: "User"
Enum: "Group" "Manual"

Type of test

Host
required
string

Primary LDAP server name or IP address

Port
integer
Default: 389

UDP port used by the LDAP server (usually 389). LDAP over SSL may use 636. Use 3268 to query the Active Directory Global Catalogue (useful for multi-domain forests).

Base
required
string

The top-level LDAP DN. This is usually (but not always) the DNS domain name

required
object

Settings to search for LDAP users

required
object

Settings to search for LDAP groups

ManualSearch
string

Manual search filter. Required if Type is 'Manual'

BindDN
required
string

DN to bind the LDAP with

BindPassword
required
string

LDAP Bind password

UseTLS
string
Default: "None"
Enum: "None" "TLS" "STARTTLS"

Whether to require encrypted connections to the LDAP Server

Responses

Response Schema: application/json
Array of objects

LDAP search results

Request samples

Content type
application/json
{
  • "Type": "Manual",
  • "Host": "ad1.example.com",
  • "Port": 636,
  • "Base": "dc=ldap,dc=example,dc=com",
  • "UserSearch": {
    },
  • "GroupSearch": {
    },
  • "ManualSearch": "(objectclass=*)",
  • "BindDN": "cn=Administrator,cn=Users,dc=company,dc=local",
  • "BindPassword": "Sunbreeze123",
  • "UseTLS": "TLS"
}

Response samples

Content type
application/json
{
  • "Results": [
    ]
}

Settings/Device

Allows you to set default device settings that are inherited whenever a new device is added but can be overriden.

Get default device settings

Retrieve default device settings

Authorizations:

Responses

Response Schema: application/json
required
object

Default retention policy for all new devices

required
object

Defaults for configuration filenames

required
object

Default failure policy for all new devices

required
object

Default settings for device monitoring

required
object

Default notification settings for email alerts

Response samples

Content type
application/json
{
  • "RetentionPolicy": {
    },
  • "ConfigFilename": {
    },
  • "FailurePolicy": {
    },
  • "Monitoring": {
    },
  • "Notifications": {
    }
}

Set default device settings

Update default device settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
required
object

Default retention policy for all new devices

required
object

Defaults for configuration filenames

required
object

Default failure policy for all new devices

required
object

Default settings for device monitoring

required
object

Default notification settings for email alerts

Responses

Response Schema: application/json
required
object

Default retention policy for all new devices

required
object

Defaults for configuration filenames

required
object

Default failure policy for all new devices

required
object

Default settings for device monitoring

required
object

Default notification settings for email alerts

Request samples

Content type
application/json
{
  • "RetentionPolicy": {
    },
  • "ConfigFilename": {
    },
  • "FailurePolicy": {
    },
  • "Monitoring": {
    },
  • "Notifications": {
    }
}

Response samples

Content type
application/json
{
  • "RetentionPolicy": {
    },
  • "ConfigFilename": {
    },
  • "FailurePolicy": {
    },
  • "Monitoring": {
    },
  • "Notifications": {
    }
}

Settings/Discovery

Allows you to set device discovery settings for manual or scheduled device discovery runs.

Get discovery settings

Get device discovery settings

Authorizations:
CookieTokenPermissions (ModifyDiscovery)

Responses

Response Schema: application/json
Schedule
required
string
Default: ""

A cron-like expression for running device discovery periodically. Leave blank to disable

LastRun
string

Timestamp in RFC3339 format when discovery last ran

Notify
boolean
Default: false

Send a notification every time new devices are discovered

required
Array of objects

Network ranges to include in scan, either directly or via agent. Ranges can also be defined as to be ignored

required
Array of objects

List of SNMP communities to use for SNMP fingerprinting

required
Array of objects

List of rules to override detected plugins based on hostname patters

AutoAssignDomain
boolean
Default: true

If set, use Domain's Networks to automatically assign a device on import

UseAutoImport
boolean
Default: false

If set, newly discovered devices will automatically imported

required
Array of objects

Automatically assign credentials and simple backup schedule to imported devices based on patterns

Response samples

Content type
application/json
{
  • "Schedule": "15 * * * *",
  • "LastRun": "2222-02-22T22:22:22.000Z",
  • "Notify": true,
  • "SearchRanges": [
    ],
  • "SNMPCommunities": [
    ],
  • "PluginRules": [
    ],
  • "AutoAssignDomain": true,
  • "UseAutoImport": true,
  • "AutoImportRules": [
    ]
}

Set discovery settings

Update discovery settings

Authorizations:
CookieTokenPermissions (ModifyDiscovery)
Request Body schema: application/json
Schedule
required
string
Default: ""

A cron-like expression for running device discovery periodically. Leave blank to disable

Notify
boolean
Default: false

Send a notification every time new devices are discovered

required
Array of objects

Network ranges to include in scan, either directly or via agent. Ranges can also be defined as to be ignored

required
Array of objects

List of SNMP communities to use for SNMP fingerprinting

required
Array of objects

List of rules to override detected plugins based on hostname patters

AutoAssignDomain
boolean
Default: true

If set, use Domain's Networks to automatically assign a device on import

UseAutoImport
boolean
Default: false

If set, newly discovered devices will automatically imported

required
Array of objects

Automatically assign credentials and simple backup schedule to imported devices based on patterns

Responses

Response Schema: application/json
Schedule
required
string
Default: ""

A cron-like expression for running device discovery periodically. Leave blank to disable

LastRun
string

Timestamp in RFC3339 format when discovery last ran

Notify
boolean
Default: false

Send a notification every time new devices are discovered

required
Array of objects

Network ranges to include in scan, either directly or via agent. Ranges can also be defined as to be ignored

required
Array of objects

List of SNMP communities to use for SNMP fingerprinting

required
Array of objects

List of rules to override detected plugins based on hostname patters

AutoAssignDomain
boolean
Default: true

If set, use Domain's Networks to automatically assign a device on import

UseAutoImport
boolean
Default: false

If set, newly discovered devices will automatically imported

required
Array of objects

Automatically assign credentials and simple backup schedule to imported devices based on patterns

Request samples

Content type
application/json
{
  • "Schedule": "15 * * * *",
  • "Notify": true,
  • "SearchRanges": [
    ],
  • "SNMPCommunities": [
    ],
  • "PluginRules": [
    ],
  • "AutoAssignDomain": true,
  • "UseAutoImport": true,
  • "AutoImportRules": [
    ]
}

Response samples

Content type
application/json
{
  • "Schedule": "15 * * * *",
  • "LastRun": "2222-02-22T22:22:22.000Z",
  • "Notify": true,
  • "SearchRanges": [
    ],
  • "SNMPCommunities": [
    ],
  • "PluginRules": [
    ],
  • "AutoAssignDomain": true,
  • "UseAutoImport": true,
  • "AutoImportRules": [
    ]
}

Settings/HA

High Availability (HA) provides a way to minimise the effects of hardware failure, by configuring two Restorepoint appliances in a cluster.

Under normal operating conditions, the primary cluster member is active and the secondary is in standby mode; the active appliance performs all network operations, and replicates all settings and device configurations to the standby appliance. Restorepoint replicates data both incrementally (for instance, just after a backup is retrieved from a device) and by performing full synchronisations on a regular basis.

Should the primary member become unavailable because of hardware failure, other network problem, or losing power, the secondary member will automatically become Active, and carry on as normal. If the primary recovers, it will automatically take over from the secondary and become active.

HA does not require the appliance to be installed on the same network, as long as the traffic requirements are met (see below).

Software updates and upgrades are managed at the cluster level; updating the active appliance will automatically update the standby appliance.

Requirements

  • High Availability is a separately licensed feature.
  • Only appliances of the same model can be clustered; appliance must be running the same software version.
  • Cluster members must be able to communicate over HTTPS to exchange heartbeat information and data synchronisation; TCP/443 traffic should be permitted bidirectionally between the appliances.

Get HA settings

Get high availability settings

Authorizations:

Responses

Response Schema: application/json
IsActive
boolean
Default: false

Enable or disable clustering (if enabled for the appliance)

IsPrimary
boolean
Default: false

Denotes if this appliance is the Primary or not

PrimaryAddress
string

Primary's IP address

SecondaryAddress
string

Secondary's IP address (if one has joined)

Secret
required
string

Cluster secret

Response samples

Content type
application/json
{
  • "IsActive": true,
  • "IsPrimary": true,
  • "PrimaryAddress": "198.51.100.1",
  • "SecondaryAddress": "198.51.100.2",
  • "Secret": "Sunbreeze123"
}

Set HA settings

Update high availability settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
IsActive
boolean
Default: false

Enable or disable clustering (if enabled for the appliance)

IsPrimary
boolean
Default: false

Denotes if this appliance is the Primary or not

PrimaryAddress
string

Primary's IP address

Secret
required
string

Cluster secret

Responses

Response Schema: application/json
IsActive
boolean
Default: false

Enable or disable clustering (if enabled for the appliance)

IsPrimary
boolean
Default: false

Denotes if this appliance is the Primary or not

PrimaryAddress
string

Primary's IP address

SecondaryAddress
string

Secondary's IP address (if one has joined)

Secret
required
string

Cluster secret

Request samples

Content type
application/json
Example
{
  • "IsActive": true,
  • "IsPrimary": true,
  • "Secret": "Sunbreeze123"
}

Response samples

Content type
application/json
{
  • "IsActive": true,
  • "IsPrimary": true,
  • "PrimaryAddress": "198.51.100.1",
  • "SecondaryAddress": "198.51.100.2",
  • "Secret": "Sunbreeze123"
}

Cluster status

Get high availability cluster status

Authorizations:

Responses

Response Schema: application/json
Active
boolean

Set to true if the current node is active or false for standby

ClusterStatus
string

A description of a high availability cluster status

Response samples

Content type
application/json
{
  • "Active": true,
  • "ClusterStatus": "Last sync: 2s ago"
}

Settings/Logs

Allows you to configure default log rentention and other logging related settings.

Get log settings

Get log settings

Authorizations:

Responses

Response Schema: application/json
DeleteAfter
string
Default: "1 month"
Enum: "15 days" "1 month" "2 months" "3 months" "6 months" "12 months" "Never"

Number of days or months to keep logs for. Log entries older than this value will be removed automatically every 12 hours

required
object

Syslog settings

required
object

SNMP settings

Response samples

Content type
application/json
{
  • "DeleteAfter": "1 month",
  • "Syslog": {
    },
  • "SNMP": {
    }
}

Set log settings

Update log settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
DeleteAfter
string
Default: "1 month"
Enum: "15 days" "1 month" "2 months" "3 months" "6 months" "12 months" "Never"

Number of days or months to keep logs for. Log entries older than this value will be removed automatically every 12 hours

required
object

Syslog settings

required
object

SNMP settings

Responses

Response Schema: application/json
DeleteAfter
string
Default: "1 month"
Enum: "15 days" "1 month" "2 months" "3 months" "6 months" "12 months" "Never"

Number of days or months to keep logs for. Log entries older than this value will be removed automatically every 12 hours

required
object

Syslog settings

required
object

SNMP settings

Request samples

Content type
application/json
{
  • "DeleteAfter": "1 month",
  • "Syslog": {
    },
  • "SNMP": {
    }
}

Response samples

Content type
application/json
{
  • "DeleteAfter": "1 month",
  • "Syslog": {
    },
  • "SNMP": {
    }
}

Settings/Network

Allows you to set network settings such as the IP address and static routes.

Network Address Translation (NAT)

Restorepoint may use back-connections (typically TFTP or FTP) to backup certain devices. If Restorepoint is accessing a device using back connections through a NAT router or firewall, back-connections will fail, because the device will attempt to connect to the original, untranslated IP address. To avoid this problem, proceed as follows:

  • On your firewall, create a 1:1 NAT mapping (often referred to as Static NAT or Mapped IP) to translate the IP address of Restorepoint to a public/routable IP address
  • Set the public IP address for Restorepoint in the NatAddress field. The system-wide NAT IP address defined here can be overridden in the Domain settings, or in each individual device's settings
  • The Back-connection NAT option also needs to be selected in any device which is accessed by Restorepoint through NAT

Restorepoint supports multiple NAT addresses; the NAT IP address defined in this page can be overridden by the Domain or Device NAT IP setting.

Please note

Changing the IP address to a different one will result in aborted connections.

Get network settings

Get network settings

Authorizations:

Responses

Response Schema: application/json
required
Array of objects

List of interface settings

Gateway
required
string

Gateway address

DNS1
required
string

Address of the primary DNS server

DNS2
string

Address of the secondary DNS server

DNS3
string

Address of the IPv6 DNS server

DomainName
required
string

Domain name to use for name resolution

required
object

Restorepoint needs Internet access (HTTP/HTTPS) in order to retrieve software and plugin updates

NatAddress
string

The system-wide NAT IP address defined here can be overridden in the Domain settings, or in each individual Device's settings

ScpThrottle
integer
Default: 0

Limit the network bandwidth for SCP/SFTP to this field's value in kbps (0 meaning no throttling)

Response samples

Content type
application/json
{
  • "Interfaces": [
    ],
  • "Gateway": "192.168.1.254",
  • "DNS1": "192.168.1.252",
  • "DNS2": "192.168.1.253",
  • "DNS3": "2001:db8::250:56ff:febd:a472",
  • "DomainName": "corp.example.com",
  • "Proxy": {
    },
  • "NatAddress": "198.51.100.123",
  • "ScpThrottle": 0
}

Set network settings

Update network settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
required
Array of objects

List of interface settings

Gateway
required
string

Gateway address

DNS1
required
string

Address of the primary DNS server

DNS2
string

Address of the secondary DNS server

DNS3
string

Address of the IPv6 DNS server

DomainName
required
string

Domain name to use for name resolution

required
object

Restorepoint needs Internet access (HTTP/HTTPS) in order to retrieve software and plugin updates

NatAddress
string

The system-wide NAT IP address defined here can be overridden in the Domain settings, or in each individual Device's settings

ScpThrottle
integer
Default: 0

Limit the network bandwidth for SCP/SFTP to this field's value in kbps (0 meaning no throttling)

Responses

Response Schema: application/json
required
Array of objects

List of interface settings

Gateway
required
string

Gateway address

DNS1
required
string

Address of the primary DNS server

DNS2
string

Address of the secondary DNS server

DNS3
string

Address of the IPv6 DNS server

DomainName
required
string

Domain name to use for name resolution

required
object

Restorepoint needs Internet access (HTTP/HTTPS) in order to retrieve software and plugin updates

NatAddress
string

The system-wide NAT IP address defined here can be overridden in the Domain settings, or in each individual Device's settings

ScpThrottle
integer
Default: 0

Limit the network bandwidth for SCP/SFTP to this field's value in kbps (0 meaning no throttling)

Request samples

Content type
application/json
{
  • "Interfaces": [
    ],
  • "Gateway": "192.168.1.254",
  • "DNS1": "192.168.1.252",
  • "DNS2": "192.168.1.253",
  • "DNS3": "2001:db8::250:56ff:febd:a472",
  • "DomainName": "corp.example.com",
  • "Proxy": {
    },
  • "NatAddress": "198.51.100.123",
  • "ScpThrottle": 0
}

Response samples

Content type
application/json
{
  • "Interfaces": [
    ],
  • "Gateway": "192.168.1.254",
  • "DNS1": "192.168.1.252",
  • "DNS2": "192.168.1.253",
  • "DNS3": "2001:db8::250:56ff:febd:a472",
  • "DomainName": "corp.example.com",
  • "Proxy": {
    },
  • "NatAddress": "198.51.100.123",
  • "ScpThrottle": 0
}

List routes

Get additional static routes

Authorizations:

Responses

Response Schema: application/json
Array of objects

List of additional static routes

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Add route

Add a static route

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Network
required
string

Network address/netmask in CIDR notation

Gateway
required
string

Gateway address

Responses

Request samples

Content type
application/json
{
  • "Network": "10.0.0.0/8",
  • "Gateway": "127.0.0.2"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Delete route

Delete a static route

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Network
required
string

Network address/netmask in CIDR notation

Responses

Request samples

Content type
application/json
{
  • "Network": "10.0.0.0/8"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Settings/Passwords

Password policies allow you to configure various rules for enforcing password strength, for both devices and users. These settings are used in the strength meter displayed in all password fields: the background of the field will change colour, from red for an unacceptable password, to yellow for a weak password, to green for a good password.

Get password settings

Get password settings

Authorizations:
CookieTokenPermissions (ViewPassrules)

Responses

Response Schema: application/json
required
object

Device password settings

required
object

User password settings

Response samples

Content type
application/json
{
  • "DevicePasswords": {
    },
  • "UserPasswords": {
    }
}

Set password settings

Update password settings

Authorizations:
CookieTokenPermissions (ModifyPassrules)
Request Body schema: application/json
required
object

Device password settings

required
object

User password settings

Responses

Response Schema: application/json
required
object

Device password settings

required
object

User password settings

Request samples

Content type
application/json
{
  • "DevicePasswords": {
    },
  • "UserPasswords": {
    }
}

Response samples

Content type
application/json
{
  • "DevicePasswords": {
    },
  • "UserPasswords": {
    }
}

Settings/PublicKey

Returns the default public keys for your appliance that can be used for public key authentication with devices that support it.

List public keys

Retrieve all public keys

Authorizations:
CookieTokenPermissions (ViewDevices)

Responses

Response Schema: application/json
RSA
string

RSA publick key

DSA
string
Deprecated

DSA publick key

Response samples

Content type
application/json
{
  • "RSA": "ssh-rsa AAAA ... O+4w== root@rp",
  • "DSA": "ssh-dss AAAA ... 5O4= root@rp"
}

Settings/Security

Configure various global settings to mandate a higher level of network security for the Restorepoint appliance. Setting some of these options may cause compatibility problems with legacy devices and clients.

Get security settings

Get security settings

Authorizations:

Responses

Response Schema: application/json
required
object

TLS security settings

required
object

Timeout settings

required
object

Service security settings

AllowedNetworks
Array of strings
Default: []

List of network masks admin users are allowed to connect from

MaxLoginAttemptsPerMinute
integer
Default: 0

Limit on the amount of login attempts that can be made from the same IP address. 0 means no limit will be applied

required
object

SSH ciphers, MACs and key exchange algorithms for clients and servers, as well as additional SSH port

Response samples

Content type
application/json
{
  • "TLS": {
    },
  • "Timeouts": {
    },
  • "Services": {
    },
  • "AllowedNetworks": [
    ],
  • "MaxLoginAttemptsPerMinute": 0,
  • "SSH": {
    }
}

Set security settings

Update security settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
required
object

TLS security settings

required
object

Timeout settings

required
object

Service security settings

AllowedNetworks
Array of strings
Default: []

List of network masks admin users are allowed to connect from

MaxLoginAttemptsPerMinute
integer
Default: 0

Limit on the amount of login attempts that can be made from the same IP address. 0 means no limit will be applied

required
object

SSH ciphers, MACs and key exchange algorithms for clients and servers, as well as additional SSH port

Responses

Response Schema: application/json
required
object

TLS security settings

required
object

Timeout settings

required
object

Service security settings

AllowedNetworks
Array of strings
Default: []

List of network masks admin users are allowed to connect from

MaxLoginAttemptsPerMinute
integer
Default: 0

Limit on the amount of login attempts that can be made from the same IP address. 0 means no limit will be applied

required
object

SSH ciphers, MACs and key exchange algorithms for clients and servers, as well as additional SSH port

Request samples

Content type
application/json
{
  • "TLS": {
    },
  • "Timeouts": {
    },
  • "Services": {
    },
  • "AllowedNetworks": [
    ],
  • "MaxLoginAttemptsPerMinute": 0,
  • "SSH": {
    }
}

Response samples

Content type
application/json
{
  • "TLS": {
    },
  • "Timeouts": {
    },
  • "Services": {
    },
  • "AllowedNetworks": [
    ],
  • "MaxLoginAttemptsPerMinute": 0,
  • "SSH": {
    }
}

Settings/Security/TLS

Configure TLS certificate and key

Get TLS certificate details

Get TLS certificate

Authorizations:
CookieTokenPermissions (ViewSysAdmin)

Responses

Response Schema: application/json
Country
required
string

Country code of the issuer (C)

CommonName
required
string

Common name of the issuer (CN)

Organization
required
string

Organization name of the issuer (O)

OrganizationalUnit
required
string

Organizational unit of the issuer (OU)

State
required
string

State of the issuer (ST)

Locality
required
string

Locality of the issuer (L)

EmailAddress
required
string

Email address of the issuer

EmailAddresses
Array of strings

List of subject email addresses

IPAddresses
Array of strings

List of subject IP addresses

DNSNames
Array of strings

List of subject DNS names

Certificate
string

Current certificate in use or generated CSR

Response samples

Content type
application/json
{
  • "Country": "GB",
  • "CommonName": "Restorepoint Ltd",
  • "Organization": "Restorepoint Ltd",
  • "OrganizationalUnit": "Engineering",
  • "State": "Surrey",
  • "Locality": "Woking",
  • "EmailAddress": "support@restorepoint.com",
  • "EmailAddresses": [
    ],
  • "IPAddresses": [
    ],
  • "DNSNames": [
    ],
  • "Certificate": "string"
}

Generate a key and create a self-signed certificate

Create a self-signed certificate

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Country
required
string

Country code of the issuer (C)

CommonName
required
string

Common name of the issuer (CN)

Organization
required
string

Organization name of the issuer (O)

OrganizationalUnit
required
string

Organizational unit of the issuer (OU)

State
required
string

State of the issuer (ST)

Locality
required
string

Locality of the issuer (L)

EmailAddress
required
string

Email address of the issuer

EmailAddresses
Array of strings

List of subject email addresses

IPAddresses
Array of strings

List of subject IP addresses

DNSNames
Array of strings

List of subject DNS names

KeyLength
integer
Default: 2048

RSA key length

Responses

Response Schema: application/json
Country
required
string

Country code of the issuer (C)

CommonName
required
string

Common name of the issuer (CN)

Organization
required
string

Organization name of the issuer (O)

OrganizationalUnit
required
string

Organizational unit of the issuer (OU)

State
required
string

State of the issuer (ST)

Locality
required
string

Locality of the issuer (L)

EmailAddress
required
string

Email address of the issuer

EmailAddresses
Array of strings

List of subject email addresses

IPAddresses
Array of strings

List of subject IP addresses

DNSNames
Array of strings

List of subject DNS names

Certificate
string

Current certificate in use or generated CSR

Request samples

Content type
application/json
{
  • "Country": "GB",
  • "CommonName": "Restorepoint Ltd",
  • "Organization": "Restorepoint Ltd",
  • "OrganizationalUnit": "Engineering",
  • "State": "Surrey",
  • "Locality": "Woking",
  • "EmailAddress": "support@restorepoint.com",
  • "EmailAddresses": [
    ],
  • "IPAddresses": [
    ],
  • "DNSNames": [
    ],
  • "KeyLength": 2048
}

Response samples

Content type
application/json
{
  • "Country": "GB",
  • "CommonName": "Restorepoint Ltd",
  • "Organization": "Restorepoint Ltd",
  • "OrganizationalUnit": "Engineering",
  • "State": "Surrey",
  • "Locality": "Woking",
  • "EmailAddress": "support@restorepoint.com",
  • "EmailAddresses": [
    ],
  • "IPAddresses": [
    ],
  • "DNSNames": [
    ],
  • "Certificate": "string"
}

Replace certificate and key

Replace TLS certificate and key

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Certificate
required
string

TLS Certificate

Key
required
string

RSA Key

Responses

Request samples

Content type
application/json
{
  • "Certificate": "string",
  • "Key": "string"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Replace certificate

Replace TLS certificate

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Certificate
required
string

TLS Certificate

Responses

Request samples

Content type
application/json
{
  • "Certificate": "string"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Generate new RSA key

Generate new RSA key

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
KeyLength
required
integer

TLS key lenght

Responses

Request samples

Content type
application/json
{
  • "KeyLength": 0
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Settings/Security/CSR

Manage TLS CSRs

Get TLS CSR

Get TLS CSR

Authorizations:
CookieTokenPermissions (ViewSysAdmin)

Responses

Response Schema: application/json
Content
required
string

Encoded raw content of the certificate request

Response samples

Content type
application/json
{
  • "Content": "-----BEGIN CERTIFICATE REQUEST-----\nMIIC9zCCAd..."
}

Generate a TLS CSR

Generate a TLS CSR (Certificate Signing Request)

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
Country
required
string

Country code of the issuer (C)

CommonName
required
string

Common name of the issuer (CN)

Organization
required
string

Organization name of the issuer (O)

OrganizationalUnit
required
string

Organizational unit of the issuer (OU)

State
required
string

State of the issuer (ST)

Locality
required
string

Locality of the issuer (L)

EmailAddress
required
string

Email address of the issuer

EmailAddresses
Array of strings

List of subject email addresses

IPAddresses
Array of strings

List of subject IP addresses

DNSNames
Array of strings

List of subject DNS names

KeyLength
integer
Default: 2048

RSA key length

Responses

Response Schema: application/json
Content
required
string

Encoded raw content of the certificate request

Request samples

Content type
application/json
{
  • "Country": "GB",
  • "CommonName": "Restorepoint Ltd",
  • "Organization": "Restorepoint Ltd",
  • "OrganizationalUnit": "Engineering",
  • "State": "Surrey",
  • "Locality": "Woking",
  • "EmailAddress": "support@restorepoint.com",
  • "EmailAddresses": [
    ],
  • "IPAddresses": [
    ],
  • "DNSNames": [
    ],
  • "KeyLength": 2048
}

Response samples

Content type
application/json
{
  • "Content": "-----BEGIN CERTIFICATE REQUEST-----\nMIIC9zCCAd..."
}

Settings/SNMP

If your network has a Network Management System, you can use SNMP to perform some basic monitoring of the Restorepoint appliance. Restorepoint supports SNMP v1, v2c, and v3.

Get SNMP settings

Get SNMP settings

Authorizations:

Responses

Response Schema: application/json
SNMPv1
boolean
Default: true

Enable SNMP v1

SNMPv2c
boolean
Default: true

Enable SNMP v2c

SNMPv3
boolean
Default: false

Enable SNMP v3

Contact
required
string

SNMP System contact system.sysContact.0

Name
required
string

SNMP System name system.sysName.0

Location
required
string

SNMP System location system.sysLocation.0

Community
string
Default: "public"

If SNMP v1 or v2c are enabled a community string must be set

Username
string

If SNMP v3 is enabled, you have to set a username string

SecurityLevel
string
Enum: "noAuthNoPriv" "authNoPriv" "authPriv"

When using SNMPv3, you can set the security level. noAuthNoPriv authenticates with a username without encryption. authNoPriv uses HMAC MD5 or SHA algorithms for authentication, authPriv uses HMAC MD5 or SHA algorithms for authentication and DES 56-bit encryption in addition to authentication based on the CBC-DES (DES-56) standard

AuthenticationProtocol
string
Enum: "MD5" "SHA1"

Authentication protocol for SNMPv3 with SecurityLevel set to authNoPriv or authPriv

AuthenticationPassword
string

Password to send for SNMPv3 with SecurityLevel set to authNoPriv or authPriv

PrivProtocol
string
Enum: "AES" "DES"

Priv protocol to use for SNMPv3 and SecurityLevel set to authPriv

PrivPassword
string

Priv password to use for SNMPv3 and SecurityLevel set to authPriv

Response samples

Content type
application/json
{
  • "SNMPv1": true,
  • "SNMPv2c": true,
  • "SNMPv3": false,
  • "Contact": "Restorepoint <support@restorepoint.com>",
  • "Name": "Restorepoint Appliance",
  • "Location": "vsphere.example.com",
  • "Community": "public",
  • "Username": "afox",
  • "SecurityLevel": "authPriv",
  • "AuthenticationProtocol": "MD5",
  • "AuthenticationPassword": "Sunbreeze123",
  • "PrivProtocol": "AES",
  • "PrivPassword": "Sunbreeze123"
}

Set SNMP settings

Update SNMP settings

Authorizations:
CookieTokenPermissions (UpdateSysadmin)
Request Body schema: application/json
SNMPv1
boolean
Default: true

Enable SNMP v1

SNMPv2c
boolean
Default: true

Enable SNMP v2c

SNMPv3
boolean
Default: false

Enable SNMP v3

Contact
required
string

SNMP System contact system.sysContact.0

Name
required
string

SNMP System name system.sysName.0

Location
required
string

SNMP System location system.sysLocation.0

Community
string
Default: "public"

If SNMP v1 or v2c are enabled a community string must be set

Username
string

If SNMP v3 is enabled, you have to set a username string

SecurityLevel
string
Enum: "noAuthNoPriv" "authNoPriv" "authPriv"

When using SNMPv3, you can set the security level. noAuthNoPriv authenticates with a username without encryption. authNoPriv uses HMAC MD5 or SHA algorithms for authentication, authPriv uses HMAC MD5 or SHA algorithms for authentication and DES 56-bit encryption in addition to authentication based on the CBC-DES (DES-56) standard

AuthenticationProtocol
string
Enum: "MD5" "SHA1"

Authentication protocol for SNMPv3 with SecurityLevel set to authNoPriv or authPriv

AuthenticationPassword
string

Password to send for SNMPv3 with SecurityLevel set to authNoPriv or authPriv

PrivProtocol
string
Enum: "AES" "DES"

Priv protocol to use for SNMPv3 and SecurityLevel set to authPriv

PrivPassword
string

Priv password to use for SNMPv3 and SecurityLevel set to authPriv

Responses

Response Schema: application/json
SNMPv1
boolean
Default: true

Enable SNMP v1

SNMPv2c
boolean
Default: true

Enable SNMP v2c

SNMPv3
boolean
Default: false

Enable SNMP v3

Contact
required
string

SNMP System contact system.sysContact.0

Name
required
string

SNMP System name system.sysName.0

Location
required
string

SNMP System location system.sysLocation.0

Community
string
Default: "public"

If SNMP v1 or v2c are enabled a community string must be set

Username
string

If SNMP v3 is enabled, you have to set a username string

SecurityLevel
string
Enum: "noAuthNoPriv" "authNoPriv" "authPriv"

When using SNMPv3, you can set the security level. noAuthNoPriv authenticates with a username without encryption. authNoPriv uses HMAC MD5 or SHA algorithms for authentication, authPriv uses HMAC MD5 or SHA algorithms for authentication and DES 56-bit encryption in addition to authentication based on the CBC-DES (DES-56) standard

AuthenticationProtocol
string
Enum: "MD5" "SHA1"

Authentication protocol for SNMPv3 with SecurityLevel set to authNoPriv or authPriv

AuthenticationPassword
string

Password to send for SNMPv3 with SecurityLevel set to authNoPriv or authPriv

PrivProtocol
string
Enum: "AES" "DES"

Priv protocol to use for SNMPv3 and SecurityLevel set to authPriv

PrivPassword
string

Priv password to use for SNMPv3 and SecurityLevel set to authPriv

Request samples

Content type
application/json
{
  • "SNMPv1": true,
  • "SNMPv2c": true,
  • "SNMPv3": false,
  • "Contact": "Restorepoint <support@restorepoint.com>",
  • "Name": "Restorepoint Appliance",
  • "Location": "vsphere.example.com",
  • "Community": "public",
  • "Username": "afox",
  • "SecurityLevel": "authPriv",
  • "AuthenticationProtocol": "MD5",
  • "AuthenticationPassword": "Sunbreeze123",
  • "PrivProtocol": "AES",
  • "PrivPassword": "Sunbreeze123"
}

Response samples

Content type
application/json
{
  • "SNMPv1": true,
  • "SNMPv2c": true,
  • "SNMPv3": false,
  • "Contact": "Restorepoint <support@restorepoint.com>",
  • "Name": "Restorepoint Appliance",
  • "Location": "vsphere.example.com",
  • "Community": "public",
  • "Username": "afox",
  • "SecurityLevel": "authPriv",
  • "AuthenticationProtocol": "MD5",
  • "AuthenticationPassword": "Sunbreeze123",
  • "PrivProtocol": "AES",
  • "PrivPassword": "Sunbreeze123"
}

Status

Retrieve status information for the appliance.

System status

Retrieve system status information

Authorizations:

Responses

Response Schema: application/json
object

Appliance related information

object

Disk usage (all values in bytes)

object

Operating system meta data

Response samples

Content type
application/json
{
  • "Appliance": {
    },
  • "Storage": {
    },
  • "System": {
    }
}

Status/Ping

Check if appliance is ready to accept requests

Check if the backend is ready to accept requests

Check the current status of the server

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "EncryptionStatus": "Decrypting",
  • "Status": "Updating",
  • "message": "string",
  • "errors": {
    }
}

Syslog

These are the messages logged to the Restorepoint syslog service, by both the appliance itself and any devices configured to log to it.

List syslog entries. If no sort param is passed, syslogs will be ordered by 'Created', in a descending method

Retrieve all syslogs

Authorizations:
CookieTokenPermissions (ViewSyslogs)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

created_after
string
Example: created_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

created_before
string
Example: created_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the created date.

source[]
Array of strings
Example: source[]=1.1.1.1

List of sources to limit the log output to.

not[source][]
Array of strings
Example: not[source][]=2.2.2.2

List of sources to exclude from the returned log entries.

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Syslog)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Template

Templates are specially marked-up configurations that can be pushed to multiple devices, for instance during a large deployment of similarly configured devices. Each template can contain parameters, which are substituted for entered values for each device pushed to. For instance, a section may be marked "IP Address", and this will then be prompted for when pushing to devices.

List templates

Retrieve all templates

Authorizations:
CookieTokenPermissions (ListTemplates)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Template)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a template

Create a new template

Authorizations:
CookieTokenPermissions (ModifyTemplate)
Request Body schema: application/json
Name
required
string

Template name

Comment
string

Comment attached to template

BackupID
required
integer

ID of a Device Backup to use as template

ConfigurationType
string

Identifier of a configuration type as part of a backup (if a device supports it)

Array of objects

List of variable markers that will be replaced when applying a template

Responses

Response Schema: application/json
ID
integer

Template ID

Name
required
string

Template name

Comment
string

Comment attached to template

DeviceName
string

Name of a Device used to select a backup as template

PluginName
string

Name of Plugin used to select a backup as template

ConfigurationType
string

Identifier of a configuration type as part of a backup (if a device supports it)

Array of objects

List of variable markers that will be replaced when applying a template

Request samples

Content type
application/json
{
  • "Name": "Cisco IOS baseline",
  • "Comment": "Base configuration for all Cisco IOS devices",
  • "BackupID": 123,
  • "ConfigurationType": "startup",
  • "Variables": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Cisco IOS baseline",
  • "Comment": "Base configuration for all Cisco IOS devices",
  • "DeviceName": "Demo device",
  • "PluginName": "Cisco IOS",
  • "ConfigurationType": "startup",
  • "Variables": [
    ]
}

Retrieve a template

Retrieve a single template

Authorizations:
CookieTokenPermissions (ViewTemplate)
path Parameters
id
required
integer

Template ID

Responses

Response Schema: application/json
ID
integer

Template ID

Name
required
string

Template name

Comment
string

Comment attached to template

DeviceName
string

Name of a Device used to select a backup as template

PluginName
string

Name of Plugin used to select a backup as template

ConfigurationType
string

Identifier of a configuration type as part of a backup (if a device supports it)

Array of objects

List of variable markers that will be replaced when applying a template

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Cisco IOS baseline",
  • "Comment": "Base configuration for all Cisco IOS devices",
  • "DeviceName": "Demo device",
  • "PluginName": "Cisco IOS",
  • "ConfigurationType": "startup",
  • "Variables": [
    ]
}

Update a template

Update a template

Authorizations:
CookieTokenPermissions (ModifyTemplate)
path Parameters
id
required
integer

Template ID

Request Body schema: application/json
Name
required
string

Template name

Comment
string

Comment attached to template

DeviceName
string

Name of a Device used to select a backup as template

PluginName
string

Name of Plugin used to select a backup as template

ConfigurationType
string

Identifier of a configuration type as part of a backup (if a device supports it)

Array of objects

List of variable markers that will be replaced when applying a template

Responses

Response Schema: application/json
ID
integer

Template ID

Name
required
string

Template name

Comment
string

Comment attached to template

DeviceName
string

Name of a Device used to select a backup as template

PluginName
string

Name of Plugin used to select a backup as template

ConfigurationType
string

Identifier of a configuration type as part of a backup (if a device supports it)

Array of objects

List of variable markers that will be replaced when applying a template

Request samples

Content type
application/json
{
  • "Name": "Cisco IOS baseline",
  • "Comment": "Base configuration for all Cisco IOS devices",
  • "DeviceName": "Demo device",
  • "PluginName": "Cisco IOS",
  • "ConfigurationType": "startup",
  • "Variables": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Name": "Cisco IOS baseline",
  • "Comment": "Base configuration for all Cisco IOS devices",
  • "DeviceName": "Demo device",
  • "PluginName": "Cisco IOS",
  • "ConfigurationType": "startup",
  • "Variables": [
    ]
}

Delete a template

Delete a template

Authorizations:
CookieTokenPermissions (ModifyTemplate)
path Parameters
id
required
integer

Template ID

Responses

Response samples

Content type
application/json
{
  • "message": "Template does not exit",
  • "errors": {
    }
}

Download a template

Download a template by providing values for variable replacements. If a replacement value for a defined variable marker is not provided, it will be replaced with an empty string.

Authorizations:
CookieTokenPermissions (ViewTemplate)
path Parameters
id
required
integer

Template ID

Request Body schema: application/json
Array of objects

List of variables

Responses

Response Schema: text/plain
string

A text file of the base backup (configuration) with all variable markers replaced by provided values

Request samples

Content type
application/json
{
  • "Variables": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Push a template

Push a template to one or more devices by providing values for variable replacements. If a replacement value for a defined variable marker is not provided, it will be replaced with an empty string.

Authorizations:
CookieTokenPermissions (PushTemplate)
path Parameters
id
required
integer

Template ID

Request Body schema: application/json
Array of objects

List of Device and corresponding variable values to push a template to

Replace
boolean
Default: false

If true, backup will be restored on targeted devices

Responses

Request samples

Content type
application/json
{
  • "Devices": [
    ],
  • "Replace": true
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Token

Personal access tokens are used to authenticate requests to the API. Tokens are tied to the user that created them. All API operations undertaken via a personal access token are linked to the user account that created it and will be logged under that account's username.

Tokens are passed as a Authorization header in each request:

curl --header "Authorization: Custom <your_access_token>" "https://restorepoint.example.com/api/v2/tokens"

List tokens

Retrieve all tokens

Authorizations:
Permissions (ModifyOwnTokensModifyAllTokens)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

search
string

TODO

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

search
string

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Token)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": "string",
  • "sort": [
    ],
  • "data": [
    ]
}

Create a token

Create a new token

Authorizations:
CookieTokenPermissions (ModifyOwnTokensModifyAllTokens)
Request Body schema: application/json
Description
required
string

A short description of the token

Responses

Response Schema: application/json
ID
integer

Token ID

Description
required
string

A short description of the token

Token
string

The token itself. This is generated by the system itself

object

Owner of the token

Request samples

Content type
application/json
{
  • "Description": "An example token"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Description": "An example token",
  • "Token": "foobarbaz",
  • "User": {
    }
}

Retrieve a token

Retrieve a single token

Authorizations:
Permissions (ModifyOwnTokensModifyAllTokens)
path Parameters
id
required
integer

token id

Responses

Response Schema: application/json
ID
integer

Token ID

Description
required
string

A short description of the token

Token
string

The token itself. This is generated by the system itself

object

Owner of the token

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Description": "An example token",
  • "Token": "foobarbaz",
  • "User": {
    }
}

Update a token

Update a token

Authorizations:
CookieTokenPermissions (ModifyOwnTokensModifyAllTokens)
path Parameters
id
required
integer

token id

Request Body schema: application/json
Description
required
string

A short description of the token

Responses

Response Schema: application/json
ID
integer

Token ID

Description
required
string

A short description of the token

Token
string

The token itself. This is generated by the system itself

object

Owner of the token

Request samples

Content type
application/json
{
  • "Description": "An example token"
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Description": "An example token",
  • "Token": "foobarbaz",
  • "User": {
    }
}

Delete a token

Delete a token

Authorizations:
CookieTokenPermissions (ModifyOwnTokensModifyAllTokens)
path Parameters
id
required
integer

token id

Responses

Response samples

Content type
application/json
{
  • "message": "Token does not exit",
  • "errors": {
    }
}

User

Restorepoint supports three levels of user access:

  • Admin: Super User; has full control (can create/modify/delete devices and users, initiate backups/restores and change the appliance configuration). Admins also have an encryption password that allows Restorepoint to transition from the locked state to the normal state.
  • Backup: Backup Operator; can perform device backups and restores, but cannot modify devices, users, or appliance settings.
  • View Only: Monitor Operator; can only view existing backups, access logs, and verify that the system is operating normally.

Please note: Administrators authenticating using RADIUS, LDAP or SAML cannot decrypt the system after a reboot.

List users

Retrieve all users

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

created_after
string
Example: created_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

created_before
string
Example: created_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the created date.

active
boolean

Active status to include in the results

type[]
Array of strings
Example: type[]=RADIUS

List of user types to include in the results

not[type][]
Array of strings
Example: not[type][]=LDAP

List of user types to exclude from the results

Responses

Response Schema: application/json
fields
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (User)

The returned items

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a user

Create a new user

Authorizations:
Request Body schema: application/json
FullName
required
string

Full name of the user

Username
required
string

Username for logging in. It is recommended to user only lower-case characters and numbers

EmailActivationLink
boolean
Default: false

Email activation link to user upon creation or update

Password
string

A user's password. The system password policy affects the values that will be accepted. Only required if 'EmailActivationLink' is false

EncryptionPassword
string

A user's password used to decrypt appliance, that only applies to admin users. The system password policy affects the values that will be accepted. Only required if 'EmailActivationLink' is false

PasswordExpiry
integer
Default: 0
Enum: -1 0 30 60 90 183 365

Expire user's password after this many days. Pass -1 for *Never* or0` to use system default. See Security Settings for setting the default password expiry.

RoleID
integer

ID of the Role this user is assigned to

object

Set a Recovery Question / Answer to allow password recovery for admin users

UseRADIUS
boolean
Default: false

Use RADIUS authentication (if configured) for this user

UseLDAP
boolean
Default: false

Use LDAP authentication (if configured) for this user

Email
required
string

Email address of this user

DomainIDs
Array of integers
Default: []

A list of Domains to assign a user to

Disabled
boolean
Default: false

Block a user from logging in. Currently logged in users being set as disabled will be logged out.

AllowedNetworks
Array of strings
Default: []

Only allows the user to connect to Restorepoint from given subnets. Use CIDR notation

UseTOTP
boolean
Default: false

Use TOTP authentication (if configured) for this user

Locked
boolean
Default: false

Whether or not the user is locked (reached the maximum number of login attempts)

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them. Most users will only have one role per domain, but e.g. LDAP users might have more if they belong to multiple groups that have a role for the same domain, in which case the user's permissions will be a union of those roles' permissions.

Array of objects

List of permissions that are assigned to the user's roles

Responses

Response Schema: application/json
ID
integer

User ID

FullName
required
string

Full name of the user

Username
required
string

Username for logging in. It is recommended to user only lower-case characters and numbers

PasswordExpiry
integer
Default: 0
Enum: -1 0 30 60 90 183 365

Expire user's password after this many days. Pass -1 for *Never* or0` to use system default. See Security Settings for setting the default password expiry.

RoleID
integer

ID of the Role this user is assigned to

RoleName
string

Name of the Role this user is assigned to

Type
string
Default: "Local"
Enum: "Local" "RADIUS" "LDAP" "SAML"

Type of user as determined by the system

UseRADIUS
boolean
Default: false

Use RADIUS authentication (if configured) for this user

UseLDAP
boolean
Default: false

Use LDAP authentication (if configured) for this user

UseSAML
boolean
Default: false

Use SAML authentication (if configured) for this user. This is set by the system

Email
required
string

Email address of this user

Created
string

Timestamp in RFC3339 format when user was created

Updated
string

Timestamp in RFC3339 format when user was last updated

Active
boolean

Logged in status of this user

LastActive
string

Timestamp in RFC3339 format when user was last active

PasswordUpdated
string

Timestamp in RFC3339 format when user's password was last updated

DomainIDs
Array of integers
Default: []

A list of Domains to assign a user to

DomainNames
string

Human readable field that concatenates all domains a user is assigned to

LDAPGroupNames
Array of strings
Default: []

List of all LDAP groups' names an LDAP user is assigned to

SAMLGroupNames
Array of strings
Default: []

List of all SAML groups' names an SAML user is assigned to

Disabled
boolean
Default: false

Block a user from logging in. Currently logged in users being set as disabled will be logged out.

AllowedNetworks
Array of strings
Default: []

Only allows the user to connect to Restorepoint from given subnets. Use CIDR notation

object
Default: {}

The Permissions that a user has

Address
string

IP address of user's device used for login

UserAgent
string

Device identification of user's device used for login

LoggedIn
string

Timestamp in RFC3339 format when user has logged in

UseTOTP
boolean
Default: false

Use TOTP authentication (if configured) for this user

ActivationLink
string

Activation Link. It is only returned when creating a new user

Locked
boolean
Default: false

Whether or not the user is locked (reached the maximum number of login attempts)

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them. Most users will only have one role per domain, but e.g. LDAP users might have more if they belong to multiple groups that have a role for the same domain, in which case the user's permissions will be a union of those roles' permissions.

Array of objects

List of permissions that are assigned to the user's roles

Request samples

Content type
application/json
{
  • "FullName": "Anna Fox",
  • "Username": "afox",
  • "EmailActivationLink": false,
  • "Password": "Sunbreeze123",
  • "EncryptionPassword": "Sunbreeze456",
  • "PasswordExpiry": 0,
  • "RoleID": 1,
  • "Recovery": {
    },
  • "UseRADIUS": false,
  • "UseLDAP": false,
  • "Email": "afox@restorepoint.com",
  • "DomainIDs": [
    ],
  • "Disabled": false,
  • "AllowedNetworks": [
    ],
  • "UseTOTP": false,
  • "Locked": false,
  • "DomainRoles": [
    ],
  • "RolePermissions": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "FullName": "Anna Fox",
  • "Username": "afox",
  • "PasswordExpiry": 0,
  • "RoleID": 1,
  • "RoleName": "Admin",
  • "Type": "Local",
  • "UseRADIUS": false,
  • "UseLDAP": false,
  • "UseSAML": false,
  • "Email": "afox@restorepoint.com",
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Updated": "2222-02-22T22:22:22.000Z",
  • "Active": false,
  • "LastActive": "2222-02-22T22:22:22.000Z",
  • "PasswordUpdated": "2222-02-22T22:22:22.000Z",
  • "DomainIDs": [
    ],
  • "DomainNames": "Domain A, Domain B, Domain C",
  • "LDAPGroupNames": [
    ],
  • "SAMLGroupNames": [
    ],
  • "Disabled": false,
  • "AllowedNetworks": [
    ],
  • "Permissions": {
    },
  • "Address": "127.0.0.1",
  • "UserAgent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)",
  • "LoggedIn": "2222-02-22T22:22:22.000Z",
  • "UseTOTP": false,
  • "ActivationLink": "string",
  • "Locked": false,
  • "DomainRoles": [
    ],
  • "RolePermissions": [
    ]
}

Broadcast user message

Sends a message to a list of users by email

Authorizations:
CookieTokenPermissions (PermModifyUser)
Request Body schema: application/json
IDs
Array of numbers

List of user IDs for the message to be broadcast to.

Message
string

Message to be broadcast

Responses

Request samples

Content type
application/json
{
  • "IDs": [
    ],
  • "Message": "Hello world"
}

Retrieve a user

Retrieve a single user

Authorizations:
CookieTokenPermissions (ViewUserauth)
path Parameters
id
required
integer

User ID

Responses

Response Schema: application/json
ID
integer

User ID

FullName
required
string

Full name of the user

Username
required
string

Username for logging in. It is recommended to user only lower-case characters and numbers

PasswordExpiry
integer
Default: 0
Enum: -1 0 30 60 90 183 365

Expire user's password after this many days. Pass -1 for *Never* or0` to use system default. See Security Settings for setting the default password expiry.

RoleID
integer

ID of the Role this user is assigned to

RoleName
string

Name of the Role this user is assigned to

Type
string
Default: "Local"
Enum: "Local" "RADIUS" "LDAP" "SAML"

Type of user as determined by the system

UseRADIUS
boolean
Default: false

Use RADIUS authentication (if configured) for this user

UseLDAP
boolean
Default: false

Use LDAP authentication (if configured) for this user

UseSAML
boolean
Default: false

Use SAML authentication (if configured) for this user. This is set by the system

Email
required
string

Email address of this user

Created
string

Timestamp in RFC3339 format when user was created

Updated
string

Timestamp in RFC3339 format when user was last updated

Active
boolean

Logged in status of this user

LastActive
string

Timestamp in RFC3339 format when user was last active

PasswordUpdated
string

Timestamp in RFC3339 format when user's password was last updated

DomainIDs
Array of integers
Default: []

A list of Domains to assign a user to

DomainNames
string

Human readable field that concatenates all domains a user is assigned to

LDAPGroupNames
Array of strings
Default: []

List of all LDAP groups' names an LDAP user is assigned to

SAMLGroupNames
Array of strings
Default: []

List of all SAML groups' names an SAML user is assigned to

Disabled
boolean
Default: false

Block a user from logging in. Currently logged in users being set as disabled will be logged out.

AllowedNetworks
Array of strings
Default: []

Only allows the user to connect to Restorepoint from given subnets. Use CIDR notation

object
Default: {}

The Permissions that a user has

Address
string

IP address of user's device used for login

UserAgent
string

Device identification of user's device used for login

LoggedIn
string

Timestamp in RFC3339 format when user has logged in

UseTOTP
boolean
Default: false

Use TOTP authentication (if configured) for this user

ActivationLink
string

Activation Link. It is only returned when creating a new user

Locked
boolean
Default: false

Whether or not the user is locked (reached the maximum number of login attempts)

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them. Most users will only have one role per domain, but e.g. LDAP users might have more if they belong to multiple groups that have a role for the same domain, in which case the user's permissions will be a union of those roles' permissions.

Array of objects

List of permissions that are assigned to the user's roles

Response samples

Content type
application/json
{
  • "ID": 123,
  • "FullName": "Anna Fox",
  • "Username": "afox",
  • "PasswordExpiry": 0,
  • "RoleID": 1,
  • "RoleName": "Admin",
  • "Type": "Local",
  • "UseRADIUS": false,
  • "UseLDAP": false,
  • "UseSAML": false,
  • "Email": "afox@restorepoint.com",
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Updated": "2222-02-22T22:22:22.000Z",
  • "Active": false,
  • "LastActive": "2222-02-22T22:22:22.000Z",
  • "PasswordUpdated": "2222-02-22T22:22:22.000Z",
  • "DomainIDs": [
    ],
  • "DomainNames": "Domain A, Domain B, Domain C",
  • "LDAPGroupNames": [
    ],
  • "SAMLGroupNames": [
    ],
  • "Disabled": false,
  • "AllowedNetworks": [
    ],
  • "Permissions": {
    },
  • "Address": "127.0.0.1",
  • "UserAgent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)",
  • "LoggedIn": "2222-02-22T22:22:22.000Z",
  • "UseTOTP": false,
  • "ActivationLink": "string",
  • "Locked": false,
  • "DomainRoles": [
    ],
  • "RolePermissions": [
    ]
}

Update a user

Update a user

Authorizations:
path Parameters
id
required
integer

User ID

Request Body schema: application/json
FullName
required
string

Full name of the user

Username
required
string

Username for logging in. It is recommended to user only lower-case characters and numbers

EmailActivationLink
boolean
Default: false

Email activation link to user upon creation or update

Password
string

A user's password. The system password policy affects the values that will be accepted. Only required if 'EmailActivationLink' is false

EncryptionPassword
string

A user's password used to decrypt appliance, that only applies to admin users. The system password policy affects the values that will be accepted. Only required if 'EmailActivationLink' is false

PasswordExpiry
integer
Default: 0
Enum: -1 0 30 60 90 183 365

Expire user's password after this many days. Pass -1 for *Never* or0` to use system default. See Security Settings for setting the default password expiry.

RoleID
integer

ID of the Role this user is assigned to

object

Set a Recovery Question / Answer to allow password recovery for admin users

UseRADIUS
boolean
Default: false

Use RADIUS authentication (if configured) for this user

UseLDAP
boolean
Default: false

Use LDAP authentication (if configured) for this user

Email
required
string

Email address of this user

DomainIDs
Array of integers
Default: []

A list of Domains to assign a user to

Disabled
boolean
Default: false

Block a user from logging in. Currently logged in users being set as disabled will be logged out.

AllowedNetworks
Array of strings
Default: []

Only allows the user to connect to Restorepoint from given subnets. Use CIDR notation

UseTOTP
boolean
Default: false

Use TOTP authentication (if configured) for this user

Locked
boolean
Default: false

Whether or not the user is locked (reached the maximum number of login attempts)

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them. Most users will only have one role per domain, but e.g. LDAP users might have more if they belong to multiple groups that have a role for the same domain, in which case the user's permissions will be a union of those roles' permissions.

Array of objects

List of permissions that are assigned to the user's roles

Responses

Response Schema: application/json
ID
integer

User ID

FullName
required
string

Full name of the user

Username
required
string

Username for logging in. It is recommended to user only lower-case characters and numbers

PasswordExpiry
integer
Default: 0
Enum: -1 0 30 60 90 183 365

Expire user's password after this many days. Pass -1 for *Never* or0` to use system default. See Security Settings for setting the default password expiry.

RoleID
integer

ID of the Role this user is assigned to

RoleName
string

Name of the Role this user is assigned to

Type
string
Default: "Local"
Enum: "Local" "RADIUS" "LDAP" "SAML"

Type of user as determined by the system

UseRADIUS
boolean
Default: false

Use RADIUS authentication (if configured) for this user

UseLDAP
boolean
Default: false

Use LDAP authentication (if configured) for this user

UseSAML
boolean
Default: false

Use SAML authentication (if configured) for this user. This is set by the system

Email
required
string

Email address of this user

Created
string

Timestamp in RFC3339 format when user was created

Updated
string

Timestamp in RFC3339 format when user was last updated

Active
boolean

Logged in status of this user

LastActive
string

Timestamp in RFC3339 format when user was last active

PasswordUpdated
string

Timestamp in RFC3339 format when user's password was last updated

DomainIDs
Array of integers
Default: []

A list of Domains to assign a user to

DomainNames
string

Human readable field that concatenates all domains a user is assigned to

LDAPGroupNames
Array of strings
Default: []

List of all LDAP groups' names an LDAP user is assigned to

SAMLGroupNames
Array of strings
Default: []

List of all SAML groups' names an SAML user is assigned to

Disabled
boolean
Default: false

Block a user from logging in. Currently logged in users being set as disabled will be logged out.

AllowedNetworks
Array of strings
Default: []

Only allows the user to connect to Restorepoint from given subnets. Use CIDR notation

object
Default: {}

The Permissions that a user has

Address
string

IP address of user's device used for login

UserAgent
string

Device identification of user's device used for login

LoggedIn
string

Timestamp in RFC3339 format when user has logged in

UseTOTP
boolean
Default: false

Use TOTP authentication (if configured) for this user

ActivationLink
string

Activation Link. It is only returned when creating a new user

Locked
boolean
Default: false

Whether or not the user is locked (reached the maximum number of login attempts)

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them. Most users will only have one role per domain, but e.g. LDAP users might have more if they belong to multiple groups that have a role for the same domain, in which case the user's permissions will be a union of those roles' permissions.

Array of objects

List of permissions that are assigned to the user's roles

Request samples

Content type
application/json
{
  • "FullName": "Anna Fox",
  • "Username": "afox",
  • "EmailActivationLink": false,
  • "Password": "Sunbreeze123",
  • "EncryptionPassword": "Sunbreeze456",
  • "PasswordExpiry": 0,
  • "RoleID": 1,
  • "Recovery": {
    },
  • "UseRADIUS": false,
  • "UseLDAP": false,
  • "Email": "afox@restorepoint.com",
  • "DomainIDs": [
    ],
  • "Disabled": false,
  • "AllowedNetworks": [
    ],
  • "UseTOTP": false,
  • "Locked": false,
  • "DomainRoles": [
    ],
  • "RolePermissions": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "FullName": "Anna Fox",
  • "Username": "afox",
  • "PasswordExpiry": 0,
  • "RoleID": 1,
  • "RoleName": "Admin",
  • "Type": "Local",
  • "UseRADIUS": false,
  • "UseLDAP": false,
  • "UseSAML": false,
  • "Email": "afox@restorepoint.com",
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Updated": "2222-02-22T22:22:22.000Z",
  • "Active": false,
  • "LastActive": "2222-02-22T22:22:22.000Z",
  • "PasswordUpdated": "2222-02-22T22:22:22.000Z",
  • "DomainIDs": [
    ],
  • "DomainNames": "Domain A, Domain B, Domain C",
  • "LDAPGroupNames": [
    ],
  • "SAMLGroupNames": [
    ],
  • "Disabled": false,
  • "AllowedNetworks": [
    ],
  • "Permissions": {
    },
  • "Address": "127.0.0.1",
  • "UserAgent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)",
  • "LoggedIn": "2222-02-22T22:22:22.000Z",
  • "UseTOTP": false,
  • "ActivationLink": "string",
  • "Locked": false,
  • "DomainRoles": [
    ],
  • "RolePermissions": [
    ]
}

Delete a user

Delete a user

Authorizations:
path Parameters
id
required
integer

User ID

Responses

Response samples

Content type
application/json
{
  • "message": "User does not exit",
  • "errors": {
    }
}

Log user's action

Log user's action

Authorizations:
path Parameters
id
required
integer

User's ID

Responses

Response Schema: application/json
UITimeout
required
integer
Default: 10

Session timeout for the Restorepoint UI in minutes

Response samples

Content type
application/json
{
  • "UITimeout": 10
}

User/LDAP

For LDAP users to be able to login to Restorepoint, they need to be a member of a group and the group has to be added to Restorepoint (with domains and roles assigned). LDAP users inherit their groups' domains and roles.

List LDAP groups

Retrieve all LDAP groups

Authorizations:
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
required
integer

The total number of items

required
object

The search parameters used to filter items

required
Array of objects

The sorting parameters used to sort items

required
Array of objects (Persisted LDAP group)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create an LDAP group

Create an LDAP group

Authorizations:
Request Body schema: application/json
DN
required
string

A distinguished name that uniquely identifies a group

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Responses

Response Schema: application/json
ID
required
integer
Default: 0

ID of a persisted LDAP group

DN
required
string

Distinguished name that uniquely identifies a group

Name
required
string

Name of a group

RestorepointMembers
required
Array of strings

List of Restorepoint users' usernames who are LDAP group members

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Request samples

Content type
application/json
{
  • "DN": "cn=Restorepoint_Engineering,ou=Group,dc=restorepoint,dc=local",
  • "DomainRoles": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 1,
  • "DN": "cn=Restorepoint_Engineering,ou=Group,dc=restorepoint,dc=local",
  • "Name": "Restorepoint Engineering",
  • "RestorepointMembers": [
    ],
  • "DomainRoles": [
    ]
}

Update an LDAP group

Update an LDAP group

Authorizations:
path Parameters
id
required
integer

LDAP group ID

Request Body schema: application/json
required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Responses

Response Schema: application/json
ID
required
integer
Default: 0

ID of a persisted LDAP group

DN
required
string

Distinguished name that uniquely identifies a group

Name
required
string

Name of a group

RestorepointMembers
required
Array of strings

List of Restorepoint users' usernames who are LDAP group members

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Request samples

Content type
application/json
{
  • "DomainRoles": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 1,
  • "DN": "cn=Restorepoint_Engineering,ou=Group,dc=restorepoint,dc=local",
  • "Name": "Restorepoint Engineering",
  • "RestorepointMembers": [
    ],
  • "DomainRoles": [
    ]
}

Delete an LDAP group

Delete an LDAP group

Authorizations:
path Parameters
id
required
integer

LDAP group ID

Responses

Response samples

Content type
application/json
{
  • "EncryptionStatus": "Decrypting",
  • "Status": "Updating",
  • "message": "string",
  • "errors": {
    }
}

Command/Output/Group

Delete a command output group

Delete a output group

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command output group ID

Responses

Response samples

Content type
application/json
{
  • "EncryptionStatus": "Decrypting",
  • "Status": "Updating",
  • "message": "string",
  • "errors": {
    }
}

Command/Output/Grouped

List grouped command outputs

Retrieve all outputs, grouping the ones from the same group

Authorizations:
CookieTokenPermissions (CommandDevice)
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

created_after
string
Example: created_after=2020-01-02T15:04:05.999Z

Timestamp (UTC) to include results after the updated date.

created_before
string
Example: created_before=2023-01-02T15:04:05.999Z

Timestamp (UTC) to include results before the created date.

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
required
integer

The total number of items

object

The search parameters used to filter items

Array of objects

The sorting parameters used to sort items

Array of objects (Grouped Command Output)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Retrieve a grouped command output

Retrieve a single grouped output

Authorizations:
CookieTokenPermissions (CommandDevice)
path Parameters
id
required
integer

Command output group ID

Responses

Response Schema: application/json
CommandOutputGroupID
required
integer

ID of the Command Output Group this output is a part of

CommandOutputIDs
required
Array of integers
Default: []

A list of Command Output IDs that belong to this group

DeviceIDs
required
Array of integers
Default: []

A list of Device IDs this output was recorded for

DeviceNames
required
Array of strings
Default: []

A comma-separated list of Device names this output was recorded for

CommandID
required
integer

ID of the Command this output was recorded for

CommandName
required
string

Name of the Command this output was recorded for

CommandScheduleID
required
integer

ID of the Command Schedule that triggered the recording of this output

Created
required
string

Timestamp in RFC3339 format when the output was recorded

Output
required
string

The recorded output in plain text if not grouped; concatenated with device names for grouped outputs

HashID
integer

HashID of the data response for the Command Output Groups

Response samples

Content type
application/json
{
  • "CommandOutputGroupID": 123,
  • "CommandOutputIDs": [
    ],
  • "DeviceIDs": [
    ],
  • "DeviceNames": [
    ],
  • "CommandID": 123,
  • "CommandName": "Show version",
  • "CommandScheduleID": 123,
  • "Created": "2222-02-22T22:22:22.000Z",
  • "Output": "Foo device\nfirst line\nsecond line\nthird line\nBar device\nfirst line\nsecond line\nBaz device\nfirst line\n",
  • "HashID": 321
}

Table view

List table views

List table views

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

table_name
string

Name of the table for which the table views are requested

Responses

Response Schema: application/json
fields
required
Array of strings

The filtered fields

total
required
integer

The total number of table views returned

required
Array of objects (Persisted table view)

The returned table views

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "total": 0,
  • "data": [
    ]
}

Create a table view

Create a table view

Authorizations:
Request Body schema: application/json
TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
Array of strings

Columns to show in specific order

SortColumn
string

Name of the column to sort by

SortOrder
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
object

Filter params

Responses

Response Schema: application/json
ID
required
integer

ID of the table view

UserID
required
integer

ID of the user the table view belongs to

TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
required
Array of strings

Columns to show in specific order

SortColumn
required
string

Name of the column to sort by

SortOrder
required
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
required
object

Filter params

Selected
required
boolean

Flag defining whether the table view is the selected one

Request samples

Content type
application/json
{
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { }
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "UserID": 123,
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Get a table view

Get a table view

Authorizations:
path Parameters
id
required
integer

ID of the table view

Responses

Response Schema: application/json
ID
required
integer

ID of the table view

UserID
required
integer

ID of the user the table view belongs to

TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
required
Array of strings

Columns to show in specific order

SortColumn
required
string

Name of the column to sort by

SortOrder
required
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
required
object

Filter params

Selected
required
boolean

Flag defining whether the table view is the selected one

Response samples

Content type
application/json
{
  • "ID": 123,
  • "UserID": 123,
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Update table view

Update table view

Authorizations:
path Parameters
id
required
integer

ID of the table view

Request Body schema: application/json
Columns
Array of strings

Columns to show in specific order

SortColumn
string

Name of the column to sort by

SortOrder
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
object

Filter params

Selected
boolean

Flag defining whether the table view is the selected one

Responses

Response Schema: application/json
ID
required
integer

ID of the table view

UserID
required
integer

ID of the user the table view belongs to

TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
required
Array of strings

Columns to show in specific order

SortColumn
required
string

Name of the column to sort by

SortOrder
required
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
required
object

Filter params

Selected
required
boolean

Flag defining whether the table view is the selected one

Request samples

Content type
application/json
{
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "UserID": 123,
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Delete a table view

Delete a table view

Authorizations:
path Parameters
id
required
integer

ID of the table view

Responses

Response samples

Content type
application/json
{
  • "EncryptionStatus": "Decrypting",
  • "Status": "Updating",
  • "message": "string",
  • "errors": {
    }
}

List

List table views

List table views

Authorizations:
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

table_name
string

Name of the table for which the table views are requested

Responses

Response Schema: application/json
fields
required
Array of strings

The filtered fields

total
required
integer

The total number of table views returned

required
Array of objects (Persisted table view)

The returned table views

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "total": 0,
  • "data": [
    ]
}

Create

Create a table view

Create a table view

Authorizations:
Request Body schema: application/json
TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
Array of strings

Columns to show in specific order

SortColumn
string

Name of the column to sort by

SortOrder
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
object

Filter params

Responses

Response Schema: application/json
ID
required
integer

ID of the table view

UserID
required
integer

ID of the user the table view belongs to

TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
required
Array of strings

Columns to show in specific order

SortColumn
required
string

Name of the column to sort by

SortOrder
required
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
required
object

Filter params

Selected
required
boolean

Flag defining whether the table view is the selected one

Request samples

Content type
application/json
{
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { }
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "UserID": 123,
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Get

Get a table view

Get a table view

Authorizations:
path Parameters
id
required
integer

ID of the table view

Responses

Response Schema: application/json
ID
required
integer

ID of the table view

UserID
required
integer

ID of the user the table view belongs to

TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
required
Array of strings

Columns to show in specific order

SortColumn
required
string

Name of the column to sort by

SortOrder
required
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
required
object

Filter params

Selected
required
boolean

Flag defining whether the table view is the selected one

Response samples

Content type
application/json
{
  • "ID": 123,
  • "UserID": 123,
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Update

Update table view

Update table view

Authorizations:
path Parameters
id
required
integer

ID of the table view

Request Body schema: application/json
Columns
Array of strings

Columns to show in specific order

SortColumn
string

Name of the column to sort by

SortOrder
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
object

Filter params

Selected
boolean

Flag defining whether the table view is the selected one

Responses

Response Schema: application/json
ID
required
integer

ID of the table view

UserID
required
integer

ID of the user the table view belongs to

TableName
required
string

Name of the table the table view refers to

ViewName
required
string

Name of the table view

Columns
required
Array of strings

Columns to show in specific order

SortColumn
required
string

Name of the column to sort by

SortOrder
required
string
Enum: "asc" "desc"

Sort order, ascending or descending

Filter
required
object

Filter params

Selected
required
boolean

Flag defining whether the table view is the selected one

Request samples

Content type
application/json
{
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "UserID": 123,
  • "TableName": "devices",
  • "ViewName": "My view",
  • "Columns": [
    ],
  • "SortColumn": "Name",
  • "SortOrder": "desc",
  • "Filter": { },
  • "Selected": true
}

Delete

Delete a table view

Delete a table view

Authorizations:
path Parameters
id
required
integer

ID of the table view

Responses

Response samples

Content type
application/json
{
  • "EncryptionStatus": "Decrypting",
  • "Status": "Updating",
  • "message": "string",
  • "errors": {
    }
}

Recovery

Reset password using recovery token and answer

Recovery password reset

Authorizations:
Request Body schema: application/json
Username
required
string

User's username

RecoveryToken
required
string

User's recovery token

RecoveryAnswer
required
string

User's answer to their recovery question

NewPassword
required
string

User's new password

NewEncryptionPassword
required
string

User's new encryption password

Responses

Response Schema: text/plain
string

Request samples

Content type
application/json
{
  • "Username": "admin",
  • "RecoveryToken": "28j12jd21f138hf3802hfhf23hf23fv2433v34",
  • "RecoveryAnswer": "Tarrega",
  • "NewPassword": "nd281hf280r12u80ca0duasf",
  • "NewEncryptionPassword": "dj12f13280gh2g230gj2330g"
}

Response samples

Content type
application/json
{
  • "message": "Unable to decode request body"
}

Get recovery question

Get recovery question

Authorizations:
query Parameters
username
required
string

Username of the user whose question is requested

Responses

Response Schema: application/json
Question
required
string

User's recovery question

Response samples

Content type
application/json
{
  • "Question": "Favourite musician?"
}

Report

List reports

List reports

Authorizations:
CookieTokenPermissions (ViewReports)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

fulltext
string

Only return records matching the search term. Must have at least 3 characters

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

Responses

Response Schema: application/json
fields
required
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of reports skipped

limit
required
integer >= 1
Default: 50

The number of reports returned

total
required
integer

The total number of reports returned

object

The search parameters used to filter reports

Array of objects

The sorting parameters used to sort reports

required
Array of objects (Reports)

The returned reports

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a report

Create a report

Authorizations:
CookieTokenPermissions (ModifyReports)
Request Body schema: application/json
ID
integer

Report ID

Title
required
string

Report title

DataType
required
string
Enum: "devices" "backups" "agents" "domains" "credentials" "commands" "commandschedules" "devicepolicies" "policyvariables" "exportpolicies" "fileservers" "users" "roles" "logs" "syslogs" "assets" "configurationcompliance" "passwordcompliance"

Report data type

SecondaryDataType
string
Enum: "configurationcompliancefull" "configurationcompliancelatest" "configurationcompliancesummary" "configurationbaselines" "currentconfigurationbaselines" "complianceviolations" "compliancedevicepasswords" "complianceuserpasswords"

Report secondary data type

Fields
required
Array of strings

Data type fields to include in the report

Array of objects (ReportFilter)

Data type filters used to filter the report data

TimePeriod
string
Enum: "" "alltime" "last24hours" "thisweek" "thismonth" "thisyear" "since" "fromto"

Time period determining which data to include in the report

TimeSinceValue
integer

Value for the "since" time period

TimeSinceUnit
string
Enum: "" "hours" "days" "weeks" "months" "years"

Unit for the "since" time period

TimeFrom
string

Start timestamp in RFC3339 for the "fromto" time period

TimeTo
string

End timestamp in RFC3339 for the "fromto" time period

SortFieldName
string

Field name to sort by

SortOrder
string
Enum: "" "asc" "desc"

Order to sort by

Responses

Response Schema: application/json
ID
integer

Report ID

Title
required
string

Report title

DataType
required
string
Enum: "devices" "backups" "agents" "domains" "credentials" "commands" "commandschedules" "devicepolicies" "policyvariables" "exportpolicies" "fileservers" "users" "roles" "logs" "syslogs" "assets" "configurationcompliance" "passwordcompliance"

Report data type

SecondaryDataType
string
Enum: "configurationcompliancefull" "configurationcompliancelatest" "configurationcompliancesummary" "configurationbaselines" "currentconfigurationbaselines" "complianceviolations" "compliancedevicepasswords" "complianceuserpasswords"

Report secondary data type

Fields
required
Array of strings

Data type fields to include in the report

Array of objects (ReportFilter)

Data type filters used to filter the report data

TimePeriod
string
Enum: "" "alltime" "last24hours" "thisweek" "thismonth" "thisyear" "since" "fromto"

Time period determining which data to include in the report

TimeSinceValue
integer

Value for the "since" time period

TimeSinceUnit
string
Enum: "" "hours" "days" "weeks" "months" "years"

Unit for the "since" time period

TimeFrom
string

Start timestamp in RFC3339 for the "fromto" time period

TimeTo
string

End timestamp in RFC3339 for the "fromto" time period

SortFieldName
string

Field name to sort by

SortOrder
string
Enum: "" "asc" "desc"

Order to sort by

Request samples

Content type
application/json
{
  • "ID": 123,
  • "Title": "Devices report",
  • "DataType": "devices",
  • "SecondaryDataType": "configurationcompliancefull",
  • "Fields": [
    ],
  • "Filters": [
    ],
  • "TimePeriod": "",
  • "TimeSinceValue": 1,
  • "TimeSinceUnit": "",
  • "TimeFrom": "2222-02-22T22:22:22.000Z",
  • "TimeTo": "2222-06-22T22:22:22.000Z",
  • "SortFieldName": "Name",
  • "SortOrder": ""
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Title": "Devices report",
  • "DataType": "devices",
  • "SecondaryDataType": "configurationcompliancefull",
  • "Fields": [
    ],
  • "Filters": [
    ],
  • "TimePeriod": "",
  • "TimeSinceValue": 1,
  • "TimeSinceUnit": "",
  • "TimeFrom": "2222-02-22T22:22:22.000Z",
  • "TimeTo": "2222-06-22T22:22:22.000Z",
  • "SortFieldName": "Name",
  • "SortOrder": ""
}

Get report asset types

Get asset types for a report

Authorizations:
CookieTokenPermissions (ViewReports)

Responses

Response Schema: application/json
AssetTypes
Array of strings

List of asset types

Response samples

Content type
application/json
{
  • "AssetTypes": [
    ]
}

Generate an ad-hoc report

Generate an ad-hoc report

Authorizations:
CookieTokenPermissions (ModifyReports)
Request Body schema: application/json
required
object (Reports)

Report model

Format
required
string
Enum: "csv" "pdf"

Format to generate the report in

Responses

Response Schema: text/csv
string

Request samples

Content type
application/json
{
  • "Report": {
    },
  • "Format": "csv"
}

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Get a report

Get a report

Authorizations:
CookieTokenPermissions (ViewReports)
path Parameters
id
required
integer

Report ID

Responses

Response Schema: application/json
ID
integer

Report ID

Title
required
string

Report title

DataType
required
string
Enum: "devices" "backups" "agents" "domains" "credentials" "commands" "commandschedules" "devicepolicies" "policyvariables" "exportpolicies" "fileservers" "users" "roles" "logs" "syslogs" "assets" "configurationcompliance" "passwordcompliance"

Report data type

SecondaryDataType
string
Enum: "configurationcompliancefull" "configurationcompliancelatest" "configurationcompliancesummary" "configurationbaselines" "currentconfigurationbaselines" "complianceviolations" "compliancedevicepasswords" "complianceuserpasswords"

Report secondary data type

Fields
required
Array of strings

Data type fields to include in the report

Array of objects (ReportFilter)

Data type filters used to filter the report data

TimePeriod
string
Enum: "" "alltime" "last24hours" "thisweek" "thismonth" "thisyear" "since" "fromto"

Time period determining which data to include in the report

TimeSinceValue
integer

Value for the "since" time period

TimeSinceUnit
string
Enum: "" "hours" "days" "weeks" "months" "years"

Unit for the "since" time period

TimeFrom
string

Start timestamp in RFC3339 for the "fromto" time period

TimeTo
string

End timestamp in RFC3339 for the "fromto" time period

SortFieldName
string

Field name to sort by

SortOrder
string
Enum: "" "asc" "desc"

Order to sort by

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Title": "Devices report",
  • "DataType": "devices",
  • "SecondaryDataType": "configurationcompliancefull",
  • "Fields": [
    ],
  • "Filters": [
    ],
  • "TimePeriod": "",
  • "TimeSinceValue": 1,
  • "TimeSinceUnit": "",
  • "TimeFrom": "2222-02-22T22:22:22.000Z",
  • "TimeTo": "2222-06-22T22:22:22.000Z",
  • "SortFieldName": "Name",
  • "SortOrder": ""
}

Update a report

Update a report

Authorizations:
CookieTokenPermissions (ModifyReports)
path Parameters
id
required
integer

Report ID

Request Body schema: application/json
ID
integer

Report ID

Title
required
string

Report title

DataType
required
string
Enum: "devices" "backups" "agents" "domains" "credentials" "commands" "commandschedules" "devicepolicies" "policyvariables" "exportpolicies" "fileservers" "users" "roles" "logs" "syslogs" "assets" "configurationcompliance" "passwordcompliance"

Report data type

SecondaryDataType
string
Enum: "configurationcompliancefull" "configurationcompliancelatest" "configurationcompliancesummary" "configurationbaselines" "currentconfigurationbaselines" "complianceviolations" "compliancedevicepasswords" "complianceuserpasswords"

Report secondary data type

Fields
required
Array of strings

Data type fields to include in the report

Array of objects (ReportFilter)

Data type filters used to filter the report data

TimePeriod
string
Enum: "" "alltime" "last24hours" "thisweek" "thismonth" "thisyear" "since" "fromto"

Time period determining which data to include in the report

TimeSinceValue
integer

Value for the "since" time period

TimeSinceUnit
string
Enum: "" "hours" "days" "weeks" "months" "years"

Unit for the "since" time period

TimeFrom
string

Start timestamp in RFC3339 for the "fromto" time period

TimeTo
string

End timestamp in RFC3339 for the "fromto" time period

SortFieldName
string

Field name to sort by

SortOrder
string
Enum: "" "asc" "desc"

Order to sort by

Responses

Response Schema: application/json
ID
integer

Report ID

Title
required
string

Report title

DataType
required
string
Enum: "devices" "backups" "agents" "domains" "credentials" "commands" "commandschedules" "devicepolicies" "policyvariables" "exportpolicies" "fileservers" "users" "roles" "logs" "syslogs" "assets" "configurationcompliance" "passwordcompliance"

Report data type

SecondaryDataType
string
Enum: "configurationcompliancefull" "configurationcompliancelatest" "configurationcompliancesummary" "configurationbaselines" "currentconfigurationbaselines" "complianceviolations" "compliancedevicepasswords" "complianceuserpasswords"

Report secondary data type

Fields
required
Array of strings

Data type fields to include in the report

Array of objects (ReportFilter)

Data type filters used to filter the report data

TimePeriod
string
Enum: "" "alltime" "last24hours" "thisweek" "thismonth" "thisyear" "since" "fromto"

Time period determining which data to include in the report

TimeSinceValue
integer

Value for the "since" time period

TimeSinceUnit
string
Enum: "" "hours" "days" "weeks" "months" "years"

Unit for the "since" time period

TimeFrom
string

Start timestamp in RFC3339 for the "fromto" time period

TimeTo
string

End timestamp in RFC3339 for the "fromto" time period

SortFieldName
string

Field name to sort by

SortOrder
string
Enum: "" "asc" "desc"

Order to sort by

Request samples

Content type
application/json
{
  • "ID": 123,
  • "Title": "Devices report",
  • "DataType": "devices",
  • "SecondaryDataType": "configurationcompliancefull",
  • "Fields": [
    ],
  • "Filters": [
    ],
  • "TimePeriod": "",
  • "TimeSinceValue": 1,
  • "TimeSinceUnit": "",
  • "TimeFrom": "2222-02-22T22:22:22.000Z",
  • "TimeTo": "2222-06-22T22:22:22.000Z",
  • "SortFieldName": "Name",
  • "SortOrder": ""
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Title": "Devices report",
  • "DataType": "devices",
  • "SecondaryDataType": "configurationcompliancefull",
  • "Fields": [
    ],
  • "Filters": [
    ],
  • "TimePeriod": "",
  • "TimeSinceValue": 1,
  • "TimeSinceUnit": "",
  • "TimeFrom": "2222-02-22T22:22:22.000Z",
  • "TimeTo": "2222-06-22T22:22:22.000Z",
  • "SortFieldName": "Name",
  • "SortOrder": ""
}

Delete a report

Delete a report

Authorizations:
CookieTokenPermissions (ModifyReports)
path Parameters
id
required
integer

Report ID

Responses

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Report schedule

List report schedules

List report schedules

Authorizations:
CookieTokenPermissions (ViewReports)
query Parameters
fields
string
Example: fields=key,name

Comma separated list of fields to return in the list operation. Those will then be the only fields returned.

offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

fulltext
string

Only return records matching the search term. Must have at least 3 characters

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

Responses

Response Schema: application/json
fields
required
Array of strings

The filtered fields

offset
required
integer >= 0
Default: 0

The number of report schedules skipped

limit
required
integer >= 1
Default: 50

The number of report schedules returned

total
required
integer

The total number of report schedules returned

object

The search parameters used to filter report schedules

Array of objects

The sorting parameters used to sort report schedules

required
Array of objects (Report schedules)

The returned report schedules

Response samples

Content type
application/json
{
  • "fields": [
    ],
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a report schedule

Create a report schedule

Authorizations:
CookieTokenPermissions (ModifyReports)
Request Body schema: application/json
ID
integer

Report schedule ID

Cron
required
string

A cron-like expression describing the report schedule

FileserverID
integer

ID of a fileserver to send the report to

Emails
required
Array of strings

Email addresses to send the report to

EmailText
string

Text to include in the email containing the report

ReportsFormat
required
string
Enum: "csv" "pdf"

Format to use when sending the reports

ReportsIDs
required
Array of integers

IDs of the reports the schedule applies to

Responses

Response Schema: application/json
ID
integer

Report schedule ID

Cron
required
string

A cron-like expression describing the report schedule

FileserverID
integer

ID of a fileserver to send the report to

Emails
required
Array of strings

Email addresses to send the report to

EmailText
string

Text to include in the email containing the report

ReportsFormat
required
string
Enum: "csv" "pdf"

Format to use when sending the reports

ReportsIDs
required
Array of integers

IDs of the reports the schedule applies to

LastRun
string

Date time of last schedule run.

Created
string

Date time of when the schedule was created.

CreatedByUsername
string

Username of the user who created the schedule.

Request samples

Content type
application/json
{
  • "ID": 123,
  • "Cron": "15 * * * *",
  • "FileserverID": 123,
  • "Emails": [
    ],
  • "EmailText": "Find the scheduled Restorepoint devices report attached",
  • "ReportsFormat": "csv",
  • "ReportsIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Cron": "15 * * * *",
  • "FileserverID": 123,
  • "Emails": [
    ],
  • "EmailText": "Find the scheduled Restorepoint devices report attached",
  • "ReportsFormat": "csv",
  • "ReportsIDs": [
    ],
  • "LastRun": "2021-01-20T23:59:59.999Z",
  • "Created": "2021-01-20T23:59:59.999Z",
  • "CreatedByUsername": "admin"
}

Get a report schedule

Get a report schedule

Authorizations:
CookieTokenPermissions (ViewReports)
path Parameters
id
required
integer

Report schedule ID

Responses

Response Schema: application/json
ID
integer

Report schedule ID

Cron
required
string

A cron-like expression describing the report schedule

FileserverID
integer

ID of a fileserver to send the report to

Emails
required
Array of strings

Email addresses to send the report to

EmailText
string

Text to include in the email containing the report

ReportsFormat
required
string
Enum: "csv" "pdf"

Format to use when sending the reports

ReportsIDs
required
Array of integers

IDs of the reports the schedule applies to

LastRun
string

Date time of last schedule run.

Created
string

Date time of when the schedule was created.

CreatedByUsername
string

Username of the user who created the schedule.

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Cron": "15 * * * *",
  • "FileserverID": 123,
  • "Emails": [
    ],
  • "EmailText": "Find the scheduled Restorepoint devices report attached",
  • "ReportsFormat": "csv",
  • "ReportsIDs": [
    ],
  • "LastRun": "2021-01-20T23:59:59.999Z",
  • "Created": "2021-01-20T23:59:59.999Z",
  • "CreatedByUsername": "admin"
}

Update a report schedule

Update a report schedule

Authorizations:
CookieTokenPermissions (ModifyReports)
path Parameters
id
required
integer

Report schedule ID

Request Body schema: application/json
ID
integer

Report schedule ID

Cron
required
string

A cron-like expression describing the report schedule

FileserverID
integer

ID of a fileserver to send the report to

Emails
required
Array of strings

Email addresses to send the report to

EmailText
string

Text to include in the email containing the report

ReportsFormat
required
string
Enum: "csv" "pdf"

Format to use when sending the reports

ReportsIDs
required
Array of integers

IDs of the reports the schedule applies to

Responses

Response Schema: application/json
ID
integer

Report schedule ID

Cron
required
string

A cron-like expression describing the report schedule

FileserverID
integer

ID of a fileserver to send the report to

Emails
required
Array of strings

Email addresses to send the report to

EmailText
string

Text to include in the email containing the report

ReportsFormat
required
string
Enum: "csv" "pdf"

Format to use when sending the reports

ReportsIDs
required
Array of integers

IDs of the reports the schedule applies to

LastRun
string

Date time of last schedule run.

Created
string

Date time of when the schedule was created.

CreatedByUsername
string

Username of the user who created the schedule.

Request samples

Content type
application/json
{
  • "ID": 123,
  • "Cron": "15 * * * *",
  • "FileserverID": 123,
  • "Emails": [
    ],
  • "EmailText": "Find the scheduled Restorepoint devices report attached",
  • "ReportsFormat": "csv",
  • "ReportsIDs": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 123,
  • "Cron": "15 * * * *",
  • "FileserverID": 123,
  • "Emails": [
    ],
  • "EmailText": "Find the scheduled Restorepoint devices report attached",
  • "ReportsFormat": "csv",
  • "ReportsIDs": [
    ],
  • "LastRun": "2021-01-20T23:59:59.999Z",
  • "Created": "2021-01-20T23:59:59.999Z",
  • "CreatedByUsername": "admin"
}

Delete a report schedule

Delete a report schedule

Authorizations:
CookieTokenPermissions (ModifyReports)
path Parameters
id
required
integer

Report schedule ID

Responses

Response samples

Content type
application/json
{
  • "message": "Input validation failed",
  • "errors": {
    }
}

Settings/Advanced

Get advanced settings

Get advanced settings

Authorizations:
CookieTokenPermissions (ViewSysAdmin)

Responses

Response Schema: application/json
FullTranscript
boolean
Default: false

Enable/Disable option to write entire transcript file or to max size buffer

ClipProgress
number
Default: 200

Number of characters to clip from the start and end of a progress message.

LDAPNestedGroups
boolean
Default: false

Enable/Disable use of nested LDAP groups.

MaxConcurrentMonitors
number
Default: 300

Maximum number of rpmonitors that can be enabled.

MaxReplicationBuffer
number
Default: 20000

Maximum buffer size for jobs a replication worker can have.

MaxJobs
number
Default: 50

Maximum number of concurrent jobs that can be run.

NoRedact
boolean
Default: false

Enable/Disable not redacting sensitive information such as passwords from log messages.

Response samples

Content type
application/json
{
  • "FullTranscript": false,
  • "ClipProgress": 200,
  • "LDAPNestedGroups": false,
  • "MaxConcurrentMonitors": 300,
  • "MaxReplicationBuffer": 20000,
  • "MaxJobs": 50,
  • "NoRedact": false
}

Set advanced settings

Update advanced settings

Authorizations:
CookieTokenPermissions (UpdateSysAdmin)
Request Body schema: application/json
FullTranscript
boolean
Default: false

Enable/Disable option to write entire transcript file or to max size buffer

ClipProgress
number
Default: 200

Number of characters to clip from the start and end of a progress message.

LDAPNestedGroups
boolean
Default: false

Enable/Disable use of nested LDAP groups.

MaxConcurrentMonitors
number
Default: 300

Maximum number of rpmonitors that can be enabled.

MaxReplicationBuffer
number
Default: 20000

Maximum buffer size for jobs a replication worker can have.

MaxJobs
number
Default: 50

Maximum number of concurrent jobs that can be run.

NoRedact
boolean
Default: false

Enable/Disable not redacting sensitive information such as passwords from log messages.

Responses

Response Schema: application/json
FullTranscript
boolean
Default: false

Enable/Disable option to write entire transcript file or to max size buffer

ClipProgress
number
Default: 200

Number of characters to clip from the start and end of a progress message.

LDAPNestedGroups
boolean
Default: false

Enable/Disable use of nested LDAP groups.

MaxConcurrentMonitors
number
Default: 300

Maximum number of rpmonitors that can be enabled.

MaxReplicationBuffer
number
Default: 20000

Maximum buffer size for jobs a replication worker can have.

MaxJobs
number
Default: 50

Maximum number of concurrent jobs that can be run.

NoRedact
boolean
Default: false

Enable/Disable not redacting sensitive information such as passwords from log messages.

Request samples

Content type
application/json
{
  • "FullTranscript": false,
  • "ClipProgress": 200,
  • "LDAPNestedGroups": false,
  • "MaxConcurrentMonitors": 300,
  • "MaxReplicationBuffer": 20000,
  • "MaxJobs": 50,
  • "NoRedact": false
}

Response samples

Content type
application/json
{
  • "FullTranscript": false,
  • "ClipProgress": 200,
  • "LDAPNestedGroups": false,
  • "MaxConcurrentMonitors": 300,
  • "MaxReplicationBuffer": 20000,
  • "MaxJobs": 50,
  • "NoRedact": false
}

SAML

List SAML groups

Retrieve all SAML groups

Authorizations:
query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set. Offset starts at 0

limit
integer [ 1 .. 500 ]
Default: 50

The numbers of items to return

sort
string
Example: sort=Date,-Name

Comma-separated fields that should be used to order the items returned. The default ordering method is ascendant, and the prefix "-" inverts it to be descendant

fulltext
string

Only return records matching the search term. Must have at least 3 characters

Responses

Response Schema: application/json
offset
required
integer >= 0
Default: 0

The number of items skipped

limit
required
integer >= 1
Default: 50

The numbers of items returned

total
required
integer

The total number of items

required
object

The search parameters used to filter items

required
Array of objects

The sorting parameters used to sort items

required
Array of objects (Persisted SAML group)

The returned items

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 50,
  • "total": 0,
  • "search": {
    },
  • "sort": [
    ],
  • "data": [
    ]
}

Create a SAML group

Create a SAML group

Authorizations:
Request Body schema: application/json
Name
required
string

The name of the group

ObjectID
required
string

The group id retrieved from the provider that uniquely identifies a group

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Responses

Response Schema: application/json
ID
required
integer

ID of a persisted SAML group

ObjectID
required
string

The group id retrieved from the provider that uniquely identifies a group

Name
required
string

Name of a group

RestorepointMembers
required
Array of strings

List of Restorepoint users' usernames who are SAML group members

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Request samples

Content type
application/json
{
  • "Name": "Engineering",
  • "ObjectID": "47c26627-eae5-4a0e-9d23-7c9de1b32e57",
  • "DomainRoles": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 1,
  • "ObjectID": "47c26627-eae5-4a0e-9d23-7c9de1b32e57",
  • "Name": "Restorepoint Engineering",
  • "RestorepointMembers": [
    ],
  • "DomainRoles": [
    ]
}

Update a SAML group

Update a SAML group

Authorizations:
path Parameters
id
required
integer

SAML group ID

Request Body schema: application/json
ObjectID
required
string

The group id retrieved from the provider that uniquely identifies a group

Name
required
string

Name of a group

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Responses

Response Schema: application/json
ID
required
integer

ID of a persisted SAML group

ObjectID
required
string

The group id retrieved from the provider that uniquely identifies a group

Name
required
string

Name of a group

RestorepointMembers
required
Array of strings

List of Restorepoint users' usernames who are SAML group members

required
Array of objects

List of DomainRole objects which link DomainIDs to the RoleID applicable to them.

Request samples

Content type
application/json
{
  • "ObjectID": "47c26627-eae5-4a0e-9d23-7c9de1b32e57",
  • "Name": "Restorepoint Engineering",
  • "DomainRoles": [
    ]
}

Response samples

Content type
application/json
{
  • "ID": 1,
  • "ObjectID": "47c26627-eae5-4a0e-9d23-7c9de1b32e57",
  • "Name": "Restorepoint Engineering",
  • "RestorepointMembers": [
    ],
  • "DomainRoles": [
    ]
}

Delete a SAML group

Delete a SAML group

Authorizations:
path Parameters
id
required
integer

SAML group ID

Responses

Response samples

Content type
application/json
{
  • "EncryptionStatus": "Decrypting",
  • "Status": "Updating",
  • "message": "string",
  • "errors": {
    }
}