Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel2
maxLevel2
typeflat

...

Endpoints and methods

Description

Status
colourYellow
titleGET
 /domain see below

Get a list of all the domains in a multitenant structure.

Status
colourYellow
titleGET
/domain/{domainName} see below

Get basic information about a given domain in a multitenant structure.

Status
colourYellow
titleGET
/domains/{domainName} see below

Returns a list of all the children domains a root domain has in a multitenant structure.

Status
colourYellow
titleGET
/domain/{domainName}/retention see below

Get the price plan retention values of the given multitenant domain.

Status
colourYellow
titleGET
/domain/{domainName}/roles see below

Get details of all the roles in the given domain.

Status
colourYellow
titleGET
/domain/{domainName}/roles/{roleName} see below

Get details of a specific role in a given domain.

Status
colourYellow
titleGET
/domain/{domainName}/policies see below

Get the list of role policies available in a given domain.

Status
colourYellow
titleGET
/domain/{domainName}/applications see below

Get the list of applications available in a given domain.

Status
colourYellow
titleGET
/domain/{domainName}/resources see below

Get the list of role resources available in a given domain.

Status
colourYellow
titleGET
/domain/{domainName}/roles/vaults see below

Get the list of role vaults available in a given domain.

Status
colourYellow
titleGET
/domain/{domainName}/preferences see below

Retrieve the subset of preferences of the given domain.

Status
colourYellow
titleGET
/domain/{domainName}/preferences/limits see below

Retrieve the limits in the preferences of the given domain.

Status
colourYellow
titleGET
/domain/{domainName}/visibility see below

Returns a list of all the domains from which a root domain can access data in a multitenant structure.

Status
colourYellow
titleGET
/domain/{domainName}/auth see below

Returns the configuration info of a multitenant domain.

Status
colourYellow
titleGET
/domain/{domainName}/keys see below

Returns a list of all the API keys associated to the given domain.

Status
colourYellow
titleGET
/domain/{domainName}/keys/{key} see below

Returns info of a specific API key.

Status
colourGreen
titlePOST
 /domain see below

Create a new domain in a multitenant structure.

Status
colourGreen
titlePOST
 /domain/{domainName}/disable see below

Disable a multitenant domain.

Status
colourGreen
titlePOST
 /domain/{domainName}/enable see below

Enable a multitenant domain.

Status
colourGreen
titlePOST
 /domain/{domainName}/roles see below

Create a new role in a given domain.

Status
colourGreen
titlePOST
 /domain/{domainName}/keys see below

Generate a new API key/secret pair in the domain.

Status
colourBlue
titlePUT
/domain/{domainName}/plan see below

Change the current plan of a multitenant domain.

Status
colourBlue
titlePUT
/domain/{domainName}/retention see below

Update the given domain plan retention configuration.

Status
colourBlue
titlePUT
/domain/{domainName}/roles see below

Update a role in a given domain.

Status
colourBlue
titlePUT
/domain/{domainName}/roles/{roleName} see below

Update a role.

Status
colourBlue
titlePUT
/domain/{domainName}/preferences see below

Update the subset of preferences of a given domain.

Status
colourBlue
titlePUT
/domain/{domainName}/preferences/limits see below

Update the limits in the preferences of a given domain.

Status
colourBlue
titlePUT
/domain/{domainName}/certificates/download see below

Download a certificate.

Status
colourBlue
titlePUT
/domain/{domainName}/auth see below

Update the configuration of a multitenant domain.

Status
colourRed
titleDELETe
/domain/{domainName} see below

Delete a domain.

Status
colourRed
titleDELETe
/domain/{domainName}/roles/{roleName} see below

Delete a role in a given domain.

Status
colourRed
titleDELETe
/domain/{domainName}/keys/{key} see below

Delete a specific API key.

Endpoints and methods

Anchor
path1
path1
GET /domain

Get a list of all the domains in a multitenant structure. By default, only active domains are retrieved.

Note

Note that this endpoint requires multitenant API credentials. Common domain API key/secret pairs won’t work.

Expand
titleRequest

Query string parameters

Query string parameters are optionally added after the path parameters, preceded by a question mark (?) and separated by an ampersand (&)

Parameter

Type

Description

all

boolean

Set this parameter to true if you want to get all the domains, including disabled ones. The default value is false.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of domains retrieved.

Code Block
[
  {
    "name": "domain_1@demo",
    "plan": "default",
    "time": 36.0,
    "volume": 10.0,
    "status": "Active"
  },
  {
    "name": "domain_"@demo2@demo",
    "plan": "default",
    "time": 60.0,
    "volume": 1.3,
    "status": "Active"
  }
]

4004xx

Bad request.

Code Block
{
  "codeerror": {
    "10code": "Invalid4xx,
signature"   },   "message": "string"
  }
}

...

Anchor
path2
path2
GET /domain/{domainName}

Get basic information about a given domain in a multitenant structure.

Note

Note that this endpoint requires multitenant API credentials. Common domain API key/secret pairs won’t work.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. Using the format {domainName}@{resellerName} is optional.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName
Expand
titleResponse

Code

Description and sample body

200

Successful response. Domain details retrieved.

Code Block
{
  "name": "domainName@resellerName",
  "plan": "default",
  "time": 36.0,
  "volume": 10.0,
  "status": "Active"
}

4004xx

Bad request.

Code Block
{
  "codeerror": {
    "10code": "Invalid signature"
4xx,
  },   "message": "string"
  }
}

...

Anchor

...

path22

...

path22
GET /

...

domains/{domainName}

...

Returns a list of all the domains a root domain has in a multitenant structure.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domaindomains/domainName@resellerName/retention
Expand
titleResponse

Code

Description and sample body

200

Successful response.

Domain retention values

List of domains retrieved.

Code Block
{
[
  "
retentionUnit
domain1@multitenant"
: "DAYS"
,
  "
retentionValue
domain2@multitenant"
: 1080
,
  "
volume
domain3@multitenant"
: 10.0 }

]

204

Successful response. No children domains.

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

403

Not a reseller.

Anchor
path3
path3
GET /domain/{domainName}/retention

Get the price plan retention values of the given multitenant domain.

Note

Note that this endpoint requires multitenant API credentials. Common domain API key/secret pairs won’t work.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/rolesretention

Bad request.

{ "code": { "10": "Invalid signature
Expand
titleResponse

Code

Description and sample body

200

Successful response. Domain

roles

retention values retrieved.

Code Block
[
{

  
"
name
retentionUnit": "
Administrator
DAYS",
  
"
description
retentionValue": 
null
1080,
  
"
id
volume": 
724,
10.0
}

4xx

Bad request.

Code Block
{
  
"
type
error": 
"ADMIN",
{
    "
finderId
code": 
-1 }
4xx,
  
{
  
"
name
message": "
No Privileges", "description": null, "id": 725, "type": "NO_PRIVILEGES", "finderId": -1 } ]

400

Code Block
string"
  }
,

"message": "string"
}

...

Anchor

...

path4

...

path4
GET /domain/{domainName}/roles

...

Get details of a specific role in a all the roles in the given domain, either a default or a custom roleincluding the default ones.

Query string parameters

Query string parameters are optionally added after the path parameters, preceded by a question mark (?) and separated by an ampersand (&)

Find below a request Find below a request example:

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain.

You

If it is a multitenant domain, you must enter the full domain name using the format {domainName}@{resellerName}

roleName required

string

Enter the name of the required role.

Parameter

Type

Description

full

boolean

Set this to true if you want to get additional details about the role (assigned policies, resources, applications…). The default value is false.

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles/Administrator?full=true
Expand
titleResponse

Code

Description and sample body

200

Successful response.

Role info

Domain roles retrieved.

Parameter full set to true:

Code Block
[
  {
    "name": "Administrator",
    "description": null,
    "id": 724,
    "type": "ADMIN",
    "finderId": -1
  },
  {
    "
policies
name": 
[
"No Privileges",
    "description": null,
 
{
   
"id": 725,
    
"
action
type": "
admin
NO_
user_resources
PRIVILEGES",

    
"
level
finderId": 
5,
-1
  
"label": "policy.admin_user_resources.manage", "id": 142,
}
]

4xx

Bad request.

Code Block
{
  "error": {
    
"justForReseller
"code": 
false }, {
4xx,
    
"action
"message": "
lookups_restriction
string"
,

  
"level": 5, "label": "policy.lookups_restriction.manage", "id": 25, "justForReseller": false },
}
}

...

Anchor
path5
path5
GET /domain/{domainName}/roles/{roleName}

Get details of a specific role in a given domain, either a default or a custom role.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain.

If it is a multitenant domain, you must enter the full domain name using the format {domainName}@{resellerName}

roleName required

string

Enter the name of the required role.

Note that this parameter is case sensitive. For Devo default roles, you must type:

  • Administrator

  • No privileges

Query string parameters

Query string parameters are optionally added after the path parameters, preceded by a question mark (?) and separated by an ampersand (&)

Parameter

Type

Description

full

boolean

Set this to trueif you want to get additional details about the role (assigned policies, resources, applications…). The default value is false.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles/Administrator?full=true
Expand
titleResponse

Code

Description and sample body

200

Successful response. Role info retrieved.

Parameter full set to true:

Code Block
{
    "name": "Administrator",
    "description": null,
    "id": 724,
    "type": "ADMIN",
    "finderId": -1,
    "policies": [
        {
            "action": "domain-queriesadmin_user_resources",
            "level": 15,
            "label": "policy.domain-queries.viewadmin_user_resources.manage",
            "id": 88142,
            "justForReseller": false
        },
        {
            "action": "landinglookups_restriction",
            "level": 15,
            "label": "policy.landinglookups_restriction.viewmanage",
            "id": 7825,
            "justForReseller": false
        },
        {
            "action": "loxcope_columnsdomain-queries",
            "level": 51,
            "label": "policy.loxcope_columns.managedomain-queries.view",
            "id": 12188,
            "justForReseller": false
        },
        {
            "action": "lookupslanding",
            "level": 51,
            "label": "policy.lookupslanding.manageview",
            "id": 13978,
            "justForReseller": false
        },
        {
            "action": "queryloxcope_managementcolumns",
            "level": 15,
            "label": "policy.queryloxcope_managementcolumns.viewmanage",
            "id": 23121,
            "justForReseller": false
        },
        {
            "action": "permalinkslookups",
            "level": 5,
            "label": "policy.permalinkslookups.manage",
            "id": 131139,
            "justForReseller": false
        },
        {
            "action": "lookupsquery_management",
            "level": 1,
            "label": "policy.lookupsquery_management.view",
            "id": 13723,
            "justForReseller": false
        },
        {
            "action": "go_to_querypermalinks",
            "level": 15,
            "label": "policy.go_to_query.viewpermalinks.manage",
            "id": 140131,
            "justForReseller": false
        },
        {
            "action": "alertSM_pushoverlookups",
            "level": 51,
            "label": "policy.alertSM_pushoverlookups.manageview",
            "id": 173137,
            "justForReseller": false
        },
        {
            "action": "homego_to_query",
            "level": 1,
            "label": "policy.homego_to_query.view",
            "id": 41140,
            "justForReseller": false
        },
        {
            "action": "redadaDashboardsalertSM_pushover",
            "level": 5,
            "label": "policy.redadaDashboardsalertSM_pushover.manage",
            "id": 157173,
            "justForReseller": false
        },
        {
            "action": "http_tokenshome",
            "level": 51,
            "label": "policy.http_tokenshome.manageview",
            "id": 12541,
            "justForReseller": false
        },
    ],    {
"applications": [],     "dashboards": [],     "lookupsaction": [],
 "redadaDashboards",
  "finder": {         "idlevel": -1,5,
            "namelabel": "Defaultpolicy.redadaDashboards.manage",
            "descriptionid": null157,
       },     "defVaultjustForReseller": {false
        "id": 2,},
        {
  "name": "normal",         "labelaction": "vault.normalhttp_tokens",
          "share  "level": 25,
       },     "maxVaultlabel": { "policy.http_tokens.manage",
            "id": 2125,
            "namejustForReseller": "normal",false
        "label": "vault.normal",}
    ],
    "shareapplications": 2[],
     }"dashboards": [],
    "alertPermissionlookups": [],
       "finder": {
            "levelid": "all",
  -1,
         "grantedname": "allDefault",
            "editabledescription": 1null
    },
    }"defVault": {
   ],     "activeboardsid": []
}

Paremeter full set to false:

Code Block
{2,
        "name": "Administratornormal",
  "description": null,     "idlabel": 724"vault.normal",
        "typeshare": 2
    },
    "ADMIN",maxVault": {
        "finderIdid": -1
}

400

Bad request.

Code Block
{2,
        "codename": {"normal",
        "10label": "Invalid signature""vault.normal",
        "share": 2
    },
   "message "alertPermission": [
        {
            "level": "stringall"
}

...

Get the list of role policies (or permissions) available in a given domain.

Path parameters

Add the following path parameters as part of the endpoint:

Find below a request example:

Expand
titleRequest

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/policies
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of available policies retrieved.

Code Block[ "policy.alertSM_slack.manage", "policy.lookups_restriction.view", "policy.alertSM_httpjson.manage", "policy.alertSM_jira.manage", "policy.casperables_custom.view", "policy.notifications.view", "policy.alertSM_jira.view", "policy.notifications.manage", "policy.alertSM_servicenow.manage", "policy.logautoparser.manage", "policy.landing.manage", "policy.relays.manage", "policy.users.manage", "policy.query_management.manage", "policy.alerts.view", "policy.alertSM_httpjson.view", "policy.domain_activity.view", "policy.userdsh.view", "policy.domain_connections.view", "policy.view_profile.view
,
            "granted": "all",
            "editable": 1
        }
    ],
    "activeboards": []
}

Parameter full set to false:

Code Block
{
  "name": "Administrator",
  "description": null,
  "id": 724, 
  "type": "ADMIN",
  "finderId": -1
}

4xx

Bad request.

Code Block
{
  "error": {
    "code": 4xx,
    "message": "string"
  }
}

...

Anchor
path6
path6
GET /domain/{domainName}/policies

Get the list of role policies (or permissions) available in a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain.

If it is a multitenant domain, you must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/policies
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of available policies retrieved.

Code Block
[
  "policy.alertSM_slack.manage",
  "policy.permalinkslookups_restriction.view",
  "policy.injectalertSM_myapphttpjson.viewmanage",
  "policy.redadaDashboardsalertSM_jira.manage",
  "policy.alertscasperables_resetglobecustom.manageview",
  "policy.lookupsnotifications.view",
  "policy.injectalertSM_myappjira.manageview",
  "policy.homenotifications.viewmanage",
  "policy.domain_permalinks.viewalertSM_servicenow.manage",
  "policy.logautoparser.manage",
  "policy.landing.manage",
  "policy.http_tokensrelays.viewmanage",
  "policy.alertSM_servicedeskusers.viewmanage",
  "policy.alertSMquery_emailmanagement.manage",
]

400

Bad request.

Code Block
{  "policy.alerts.view",
  "code": {
 policy.alertSM_httpjson.view",
  "policy.domain_activity.view",
  "10": "Invalid signature"
  }policy.userdsh.view",
  "policy.domain_connections.view",
  "policy.view_profile.view",
  "policy.permalinks.view",
  "message": "string"
}policy.inject_myapp.view",
  "policy.redadaDashboards.manage",
  "policy.alerts_resetglobe.manage",
  "policy.lookups.view",
  "policy.inject_myapp.manage",
  "policy.home.view",
  "policy.domain_permalinks.view",
  "policy.http_tokens.view",
  "policy.alertSM_servicedesk.view",
  "policy.alertSM_email.manage",
]

4xx

Bad request.

Code Block
{
  "error": {
    "code": 4xx,
    "message": "string"
  }
}

...

Anchor
path7
path7
GET /domain/{domainName}/applications

Get the list of applications available in a given domain, both installed and not installed.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You

If it is a multitenant domain, you must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/applications
Expand
titleResponse
Info

Application codes

The response list the domain applications with their corresponding codes. Check here the codes for the most common applications in Devo. If you need to know some other app codes, get in touch with us.

Code

Description and sample body

200

Successful response. List of available applications retrieved.

Code Block
[
  "app.avm",
  "lib.tracking",
  "lib.system",
  "lib.webserver",
  "app.report.firewall",
  "app.custom.SecurityInsights_1_2_0",
  "lib.appserver",
  "lib.logtrust",
  "lib.custom",
  "lib.attack""
]

4004xx

Bad request.

Code Block
{
  "codeerror": {
    "10code": "Invalid4xx,
signature"   },   "message": "string"
  }
}

...

Anchor
path8
path8
GET /domain/{domainName}/resources

Get the list of role resources available in a given domain. Resources refer to lookups and activeboards created in the domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You

If it is a multitenant domain, you must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/resources
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of available resources retrieved.

Code Block
[
  {
    "id": 506,
    "name": "gondor-lookup-2",
    "description": null,
    "editable": false
    "type": "LOOKUP"
  },
  {
    "id": 503,
    "name": "my-activeboard",
    "description": null,
    "editable": false
    "type": "ACTIVEBOARD"
    }
]

4004xx

Bad request.

Code Block
{
  "codeerror": {
    "10code": "Invalid4xx,
signature"   },   "message": "string"
  }
}

...

Anchor
path9
path9
GET /domain/{domainName}/roles/vaults

Get the list of role vaults available in a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You

If it is a multitenant domain, you must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles/vaults
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of vaults retrieved.

Code Block
[
  {
    "id": 1,
    "name": "low",
    "label": "vault.low",
    "share": 1
  },
  {
    "id": 2,
    "name": "normal",
    "label": "vault.normal",
    "share": 2
  },
]

4004xx

Bad request.

Code Block
{
  "codeerror": {
    "10code": "Invalid4xx,
signature"   },   "message": "string"
  }
}

...

Anchor
path10
path10
GET /domain/{domainName}/preferences

Retrieves the subset of preferences of the given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/preferences
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of preferences retrieved.

Code Block
{
  "inactivityPeriod": 10,
  "expiresSession": true,
  "getLocaleFromBrowser": true,
  "locale": 1000,
  "hideDemoTablesChecked": false,
  "loxcopeCaseSensitivity": "yes",
  "defaultRange": "1000",
  "queryForever": "yes"
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path11
path11
GET /domain/{domainName}/preferences/limits

Retrieve the limits in the preferences of the given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/preferences/limits
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of limits retrieved.

Code Block
{
  "userLimit": 99999,
  "certificateLimit": 9999,
  "keyLimit": 9999
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path112
path112
GET /domain/{domainName}/visibility

Returns a list of all the domains from which a root domain can access data in a multitenant structure.

Note

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/visibility
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of domains retrieved.

Code Block
[
  "domain1@multitenant",
  "domain2@multitenant",
  "domain3@multitenant"
]

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

Anchor
path113
path113
GET /domain/{domainName}/auth

...

Note

Note that this request requires multitenant API credentials.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required multitenant domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/auth
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of domains Authentication info retrieved.

Code Block
[{
    "domain1@multitenantpassword",: {
 "domain2@multitenant",   "domain3@multitenant" ]

400

Bad request.

Code Block
{   "active": true,
        "disabled": null,
        "mfaActive": false,
        "mfaSkip": false
    }
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

Anchor
path114
path114
GET /domain/{domainName}/keys

...

Note

Note that this request will only return API keys, not API secrets.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required multitenant domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/keys
Expand
titleResponse

Code

Description and sample body

200

Successful response. List of API keys retrieved.

Code Block
[
  {
    "id": 012345,
    "userEmail": "string"null,
    "apiKey": "string27ffa******",
    "status": 0,
    "updateDate": 01692171865000,
    "creationDate": 01692171865000
  }
]

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

Anchor
path1144
path1144
GET /domain/{domainName}/keys/{key}

Returns information of a specific API key.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required multitenant domain. You must enter the full domain name using the format {domainName}@{resellerName}

key required

string

ID of the API key you want to retrieve.

You can get this using the GET/domain/{domainName}/keys endpoint. Find the required API key ID in the apiKey parameter of the response.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/keys/1234

Successful response. API key info retrieved.

[ {
Expand
titleResponse

Code

Description and sample body

200

Code Block

Code

Description and sample body

200

Successful response. API key info retrieved.

Code Block
{
    "id": 12345,
    "domain": {
        "id": "395ee290-*****",
        "name": "mydomain@reseller",
        "status": 0,
        "type": 15,
        "updateDate": 1692171874000,
        "creationDate": 1692171874000,
        "subscribed": 1,
        "daysLeft": 0,
        "showLanding": true,
        "reseller": {
            "id": 12,
            "name": "mydomain",
            "preferences": null,
            "contactInformation": null,
            "pricePlans": null,
            "updateDate": 1689150931000,
            "creationDate": 1689150931000,
            "permPolicy": null,
            "menuView": null,
            "limits": null,
            "groupId": null,
            "webPreferences": null,
            "authRestrictions": false
        },
        "groupId": null,
        "alertsLastReseted": 1694433600000,
        "idauthRestrictions": 0false,
        "userEmaildataRetrieval": false
"string"    },
    "userDomain": null,
    "apiKey": "52d****",
    "apiSecret": "string479****",
    "status": 0,
    "updateDate": 01692171874000,
    "creationDate": 1692171874000,
    "sessionId": 0
  }
] null,
    "webAppId": null
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

Anchor
path12
path12
POST/domain

Create a new domain in a multitenant structure.

Expand
titleRequest

Request body

The request JSON body must include the domainInfo object with the following key-value pairs:

Parameter

Type

Description

name required

string

Enter the name of the required domain.

The domain name might include the @{multitenantName} tail or not, but take into account that the full name will actually be used (for example, for name length validation).

The name value will always contain the full domain name in the response, even if you have provided only the domain name without the multitenant name tail.

plan required

string

Enter the name of the price plan. Assigning a domain to an existing, valid multitenant price plan is mandatory.

time

number

Indicate the retention time in months. The maximum value is 100.

volume

number

Enter the storage volume in GB. The maximum value is 100.

Note

Assign an owner to the new domain

After creating a new domain, it won’t be accessible until you assign a new or existing user as the domain owner. To do this, you can use the operation described in User operations. Keep in mind that this user needs to have the role Owner.

Info

Domain applications

When you create a new domain, all the applications that belong to the assigned price plan plus all the generic applications will be activated in the new domain.

If only the plan apps are required, the multitenant preferences need to include the property includeAllAvailableApps set to false. This change affects the subscribed alarms (adding or removing the default alarm subscriptions), and is applied when changing a multitenant plan.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain

And this is an example of a request body, including the required JSON object:

Code Block
{
  "name": "new-domain", 
  "plan": "default-1", 
  "time": 10.0, 
  "volume": 100.0
}
Expand
titleResponse

Code

Description and sample body

200

Successful response. Domain created.

Code Block
{
  "name": "new-domain@myreseller", 
  "plan": "default-1", 
  "time": 10.0, 
  "volume": 100.0,
  "status" : "Active"
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path13
path13
POST/domain/{domainName}/disable

Disable a multitenant domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/disable
Expand
titleResponse

Code

Description

200

Successful response. Domain disabled.

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path14
path14
POST/domain/{domainName}/enable

...

Domains with the status pending cannot be activated. Also, when you try to disable or enable an already disabled or enabled domain, you will get an error response.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/enable
Expand
titleResponse

Code

Description and sample body

200

Successful response. Domain enabled.

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path15
path15
POST/domain/{domainName}/roles

Create a new role in a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Request body

The request JSON body must include the userInfo object with the following key-value pairs:

Parameter

Type

Description

name required

string

Enter the name of the new role.

description

string

An optional description for the role.

policies

list

The role policies (or permissions) of the new role.

If this parameter is not included, all the available policies will be added to the role. Using the value [*] or * will also add all the available policies. For an empty policy list, use [].

Example: ["policy_1", "policy_2"]

Note

Role without policies

Note that a role without policies must have at least one application assigned, otherwise the creation operation will fail.

applications

list

Specify the applications available for the new role.

Using the value [*] or * will add all the available applications. For an empty application list, use [].

Example: ["application_1", "application_2"]

defaultApplicationName

string

The required application to use as the default one. The default application name must be among the role applications specified.

A default application name is not required when the policies list is empty (a missing registry key is interpreted as an empty list)

resources

object

A JSON object where you indicate the resources to be added to the role. You mast add an array for each resource, including its ID and access level:

  • id - (integer) ID of the resource to be added to the role

  • editable - (integer) Set the required access level for the resource. Note that you must have the required permissions to give access to a resource; otherwise, an error will be returned. Allowed values are 0 (view access) or 1 (manage access).

Example:

Code Block
  "resources": [
    {
      "id": 501,
      "editable": 1
    }
  ]

resourceIds

object

Note

Deprecated parameter

Note that this parameter is deprecated and it is recommended to use the resources parameter instead. This parameter will continue working to avoid compatibility issues.

If a request includes both schemas, the resources parameter will take precedence.

A JSON object with the resource type and a list of resources IDs. Each resource ID instance takes a name plus an integer array. The name is not really important and only exists to provide a clearer way to describe the role. Each entry resource ID list can be empty.

Using the key pair "*": [] will add all the available domain resources. For an empty resource list, use [].

Examples

Assign specific resources:

Code Block
  "resourceIds": {
    "activeboard": [501]
    "lookup": [1000, 2000]
  }

No resources assigned:

Code Block
  "resourceIds": {
    "activeboard": []
    "lookup": []
  }

Add all the available domain resources (lookups and activeboards):

Code Block
  "resourceIds": {
    "*": []
  }

finderName

string

Optionally, enter the name of the default finder to be assigned to the role.

alertPermission

string

Level of permission over alerts that you want to grant to the new role. There are 3 options available:

  • Null value - Permissions over alerts will not be updated over any existing ones while updating a role, or will be created empty when creating a role.

  • Empty value - No permissions are given over alerts. Several policies might produce and error when the role has no permissions over any alert.

  • Specific value - The role will have permissions only over the provided alerts. This is the format to follow:

    • level - The access level to be granted. Options are: all, category (can be abbreviated as cat), subcategory (can be abbreviated as sub), and context (can be abbreviated as ctx).

    • granted - The alert ID over which the access is granted. Use all to include all alerts. For the permission to work, the level and grant value must match, meaning that
      the granted ID must belong to the specified category.

    • editable - Defines if the alert can be edited or not. Use values 1 (editable) and 0 (not editable).

Code Block
 ...
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 0 }
  ],
  ...

Note that several policies require certain alert permissions to be assigned. For example, to include any policy related with alerts, permissions over at least one alert is required. Similarly, any alert management policy requires the same but for an alert with management permissions.

When the * value is used for policies, the policies assigned will depend on the alert permissions granted. In the following example, we are granting view permissions over all alerts, so the policies assigned by the wildcard will include values like policy.alerts.view but not policy.alerts.manage

Code Block
{
  "name": "test-role",
  "alertPermission": [
    { "level" : "all", "granted": "all", "editable": 0 }
  ],
  "policies": "*"
}
Info

Only name required

Only the name is actually required. If you define a role and give it a name only, a role with all the available policies, applications, and resources will be created.

Currently, these parameters cannot be changed through the API but can be requested:

Parameter

Type

Description

defVaultId

integer

The default vault (querying priority level) defined for the role.

maxVaultId

integer

The maximum vault defined to be used in the role.

Note

Using the defVault and maxVault parameters

Admin users need some additional permissions in order to use the defVault and maxVault parameters. Please contact us if you need to use these parameters and we will grant the required permissions to your user.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles

And this is an example of a request body, including the required JSON object:

Code Block
{
  "name": "test-role",
  "description": "test-role-description",
  "policies": "*",
  "applications": ["my-custom-app","another-app"],
  "defaultApplicationName": "my-custom-app",
  "resourceIds": {
      "activeboard": [501]
      "lookup": [1000, 2000]
  } 
  "finderName": "myFinder"
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 1 }
  ],
}
Expand
titleResponse

Code

Description

200

Successful response. Role created.

Code Block
{
  "name": "test-role",
  "description": "test-role-description",
  "policies": "*",
  "applications": ["my-custom-app","another-app"],
  "defaultApplicationName": "my-custom-app",
  "resourceIds": {
      "activeboard": [501]
      "lookup": [1000, 2000]
  } 
  "finderName": "myFinder"
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 1 }
  ],
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path1515
path1515
POST/domain/{domainName}/keys

Creates a new API key/secret pair for the domain. The autogenerated credentials are returned in the response. The request body of this request must be empty.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/keys
Expand
titleResponse

Code

Description and sample body

200

Successful response. Pair of credentials generated.

Code Block
[
  {
    "id": 012345,
    "domainName": "stringmydomain@reseller",
    "userEmail": "string"null,
    "apiKey": "string7d4***",
    "apiSecret": "string33b***",
    "status": 0,
    "updateDate": 01724067437287,
    "creationDate": 0
 1724067437287
}
]

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

Anchor
path16
path16
PUT/domain/{domainName}/plan

Change the current plan of a multitenant domain. The new plan must be valid for the multitenant structure and different from the current one.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Query string parameters

Query string parameters are added after the path parameters, preceded by a question mark (?) and separated by an ampersand (&)

Parameter

Type

Description

pricePlan required

string

Name of the new plan to be set.

keepRole

string

Decide what to do with users that have a custom role, that is to say, roles other than Admin and No privileges. Possible values are:

  • true - roles in the current plan will be searched in the new one and used where available. If the role of a user is not found in the new plan, they will be set to No provileges.

  • false (or null) - all custom roles will be updated to No privileges. This is the default behavior.

  • Finally, providing a specific role name will work the same as with true, but using the provided role when a matching custom role is not found. This fallback role must exist, or a bad request error will be returned.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/plan/?pricePlan=plan-name&keepRole=true
Expand
titleResponse

Code

Description

200

Successful response. Plan updated.

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path17
path17
PUT/domain/{domainName}/retention

Update the price plan configuration (retention & volume) of a given domain. Partial updates are permitted.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Request body

The request JSON body must include the retentionConfig object with the following key-value pairs:

Parameter

Type

Description

volume

number

Enter the maximum ingestion volume.

retentionUnit

string

Specify the required unit of the retention value.. Allowed values are DAYS, MONTHS, WEEKS and YEARS.

retentionValue

integer

Required retention value.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/retention

And this is an example of a request body, including the required JSON object:

Code Block
{
  "volume": 2.5,
  "retentionUnit": "MONTHS",
  "retentionValue": 6
}
Expand
titleResponse

Code

Description

200

Successful response. Plan updated.

Code Block
{
  "volume": 2.5,
  "retentionUnit": "MONTHS",
  "retentionValue": 6
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path18
path18
PUT/domain/{domainName}/roles

Updates a domain custom role in a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Request body

The request JSON body must include the userInfo object with the following key-value pairs:

Parameter

Type

Description

name required

string

Enter the name of the role to be updated.

description

string

An optional description for the role.

policies

list

The role policies (or permissions) of the role.

If this parameter is not included, all the available policies will be added to the role. Using the value [*] or * will also add all the available policies. For an empty policy list, use [].

Example: ["policy_1", "policy_2"]

Note

Role without policies

Note that a role without policies must have at least one application assigned, otherwise the creation operation will fail.

applications

list

Specify the applications available for the role.

Using the value [*] or * will add all the available applications. For an empty application list, use [].

Example: ["application_1", "application_2"]

defaultApplicationName

string

The required application to use as the default one. The default application name must be among the role applications specified.

A default application name is not required when the policies list is empty (a missing registry key is interpreted as an empty list.)

resourceIds

object

A JSON object with the resource type and a list of resources IDs. Each resource ID instance takes a name plus an integer array. The name is not really important and only exists to provide a clearer way to describe the role. Each entry resource ID list can be empty.

Using the key pair "*": [] will add all the available domain resources. For an empty resource list, use [].

Examples

Assign specific resources:

Code Block
  "resourceIds": {
    "activeboard": [501]
    "lookup": [1000, 2000]
  }

No resources assigned:

Code Block
  "resourceIds": {
    "activeboard": []
    "lookup": []
  }

Add all the available domain resources (lookups and activeboards):

Code Block
  "resourceIds": {
    "*": []
  }

finderName

string

Optionally, enter the name of the default finder to be assigned to the role.

alertPermission

string

Level of permission over alerts that you want to grant to the role. There are 3 options available:

  • Null value - Permissions over alerts will not be updated over any existing ones while updating a role, or will be created empty when creating a role.

  • Empty value - No permissions are given over alerts. Several policies might produce and error when the role has no permissions over any alert.

  • Specific value - The role will have permissions only over the provided alerts. This is the format to follow:

    • level - The access level to be granted. Options are: all, category (can be abbreviated as cat), subcategory (can be abbreviated as sub), and context (can be abbreviated as ctx).

    • granted - The alert ID over which the access is granted. Use all to include all alerts. For the permission to work, the level and grant value must match, meaning that
      the granted ID must belong to the specified category.

    • editable - Defines if the alert can be edited or not. Use values 1 (editable) and 0 (not editable).

Code Block
 ...
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 0 }
  ],
  ...

Note that several policies require certain alert permissions to be assigned. For example, to include any policy related with alerts, permissions over at least one alert is required. Similarly, any alert management policy requires the same but for an alert with management permissions.

When the * value is used for policies, the policies assigned will depend on the alert permissions granted. In the following example, we are granting view permissions over all alerts, so the policies assigned by the wildcard will include values like policy.alerts.view but not policy.alerts.manage

Code Block
{
  "name": "test-role",
  "alertPermission": [
    { "level" : "all", "granted": "all", "editable": 0 }
  ],
  "policies": "*"
}
Info

Only name required

Only the name is actually required. If you define a role and give it a name only, a role with all the available policies, applications, and resources will be created.

Currently, these parameters cannot be changed through the API but can be requested:

Parameter

Type

Description

defVaultId

integer

The default vault (querying priority level) defined for the role.

maxVaultId

integer

The maximum vault defined to be used in the role.

Note

Using the defVault and maxVault parameters

Admin users need some additional permissions in order to use the defVault and maxVault parameters. Please contact us if you need to use these parameters and we will grant the required permissions to your user.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles

And this is an example of a request body, including the required JSON object:

Code Block
{
  "name": "test-role",
  "description": "test-role-description",
  "policies": "*",
  "applications": ["my-custom-app","another-app"],
  "defaultApplicationName": "my-custom-app",
  "resourceIds": {
      "activeboard": [501]
      "lookup": [1000, 2000]
  } 
  "finderName": "myFinder"
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 1 }
  ],
}
Expand
titleResponse

Code

Description

200

Successful response. Role updated.

Code Block
{
  "name": "test-role",
  "description": "test-role-description",
  "policies": "*",
  "applications": ["my-custom-app","another-app"],
  "defaultApplicationName": "my-custom-app",
  "resourceIds": {
      "activeboard": [501]
      "lookup": [1000, 2000]
  } 
  "finderName": "myFinder"
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 1 }
  ],
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path19
path19
PUT/domain/{domainName}/roles/{roleName}

Updates a domain custom role.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

roleName required

string

Enter the name of the role to be updated.

Request body

The request JSON body must include the userInfo object with the following key-value pairs:

Parameter

Type

Description

name required

string

Enter the name of the role to be updated.

description

string

An optional description for the role.

policies

list

The role policies (or permissions) of the role.

If this parameter is not included, all the available policies will be added to the role. Using the value [*] or * will also add all the available policies. For an empty policy list, use [].

Example: ["policy_1", "policy_2"]

Note

Role without policies

Note that a role without policies must have at least one application assigned, otherwise the creation operation will fail.

applications

list

Specify the applications available for the role.

Using the value [*] or * will add all the available applications. For an empty application list, use [].

Example: ["application_1", "application_2"]

defaultApplicationName

string

The required application to use as the default one. The default application name must be among the role applications specified.

A default application name is not required when the policies list is empty (a missing registry key is interpreted as an empty list.)

resourceIds

object

A JSON object with the resource type and a list of resources IDs. Each resource ID instance takes a name plus an integer array. The name is not really important and only exists to provide a clearer way to describe the role. Each entry resource ID list can be empty.

Using the key pair "*": [] will add all the available domain resources. For an empty resource list, use [].

Examples

Assign specific resources:

Code Block
  "resourceIds": {
    "activeboard": [501]
    "lookup": [1000, 2000]
  }

No resources assigned:

Code Block
  "resourceIds": {
    "activeboard": []
    "lookup": []
  }

Add all the available domain resources (lookups and activeboards):

Code Block
  "resourceIds": {
    "*": []
  }

finderName

string

Optionally, enter the name of the default finder to be assigned to the role.

alertPermission

string

Level of permission over alerts that you want to grant to the role. There are 3 options available:

  • Null value - Permissions over alerts will not be updated over any existing ones while updating a role, or will be created empty when creating a role.

  • Empty value - No permissions are given over alerts. Several policies might produce and error when the role has no permissions over any alert.

  • Specific value - The role will have permissions only over the provided alerts. This is the format to follow:

    • level - The access level to be granted. Options are: all, category (can be abbreviated as cat), subcategory (can be abbreviated as sub), and context (can be abbreviated as ctx).

    • granted - The alert ID over which the access is granted. Use all to include all alerts. For the permission to work, the level and grant value must match, meaning that
      the granted ID must belong to the specified category.

    • editable - Defines if the alert can be edited or not. Use values 1 (editable) and 0 (not editable).

Code Block
 ...
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 0 }
  ],
  ...

Note that several policies require certain alert permissions to be assigned. For example, to include any policy related with alerts, permissions over at least one alert is required. Similarly, any alert management policy requires the same but for an alert with management permissions.

When the * value is used for policies, the policies assigned will depend on the alert permissions granted. In the following example, we are granting view permissions over all alerts, so the policies assigned by the wildcard will include values like policy.alerts.view but not policy.alerts.manage

Code Block
{
  "name": "test-role",
  "alertPermission": [
    { "level" : "all", "granted": "all", "editable": 0 }
  ],
  "policies": "*"
}
Info

Only name required

Only the name is actually required. If you define a role and give it a name only, a role with all the available policies, applications, and resources will be created.

Currently, these parameters cannot be changed through the API but can be requested:

Parameter

Type

Description

defVaultId

integer

The default vault (querying priority level) defined for the role.

maxVaultId

integer

The maximum vault defined to be used in the role.

Note

Using the defVault and maxVault parameters

Admin users need some additional permissions in order to use the defVault and maxVault parameters. Please contact us if you need to use these parameters and we will grant the required permissions to your user.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles

And this is an example of a request body, including the required JSON object:

Code Block
{
  "name": "test-role",
  "description": "test-role-description",
  "policies": "*",
  "applications": ["my-custom-app","another-app"],
  "defaultApplicationName": "my-custom-app",
  "resourceIds": {
      "activeboard": [501]
      "lookup": [1000, 2000]
  } 
  "finderName": "myFinder"
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 1 }
  ],
}
Expand
titleResponse

Code

Description

200

Successful response. Role updated.

Code Block
{
  "name": "test-role",
  "description": "test-role-description",
  "policies": "*",
  "applications": ["my-custom-app","another-app"],
  "defaultApplicationName": "my-custom-app",
  "resourceIds": {
      "activeboard": [501]
      "lookup": [1000, 2000]
  } 
  "finderName": "myFinder"
  "alertPermission": [
    { "level" : "all", 
      "granted": "all", 
      "editable": 1 }
  ],
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path20
path20
PUT/domain/{domainName}/preferences

Update the subset of preferences of a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Request body

The request JSON body must include the spec object with the following key-value pairs:

Parameter

Type

Description

inactivityPeriod required

number

Specify the period of time during which a user can be inactive (that is, not interact with the system in any way) without any impact on their session. After the inactivity period expires, the user is locked out of the session and must log back in to continue working with Devo.

This is valid only when the expiresSession parameter is set to true.

expiresSession

boolean

Select if you want to set an inactivity timeout for domain session. Otherwise, user sessions remain open until manually closed.

getLocaleFromBrowser

boolean

Set this parameter to true to use the language configured in your web browser.

If your browser language is not supported by Devo, English is the language automatically applied.

You can only use this parameter if you don’t include the parameter locale, or set it to false.

locale

string

Specify the language of the application. This can be overridden in a user's individual preferences.

hideDemoTablesChecked

booleang

Check this box to hide the demo* tables in the finder.

loxcopeCaseSensitivity

string

Some query operations have a case-sensitive and a case insensitive version. You can choose which one is used by default when both options exist. There are two options available:

  • case sensitive - Set case sensitive operations as default for operations that have both options.

  • case insensitive - Set case insensitive operations as default for operations that have both options.

defaultRange

string

Specify the time range that determines which events to load by default. The maximum is 24 hours. This applies to all users and all data tables in the domain.

queryForever

string

Select to activate real-time data flow by default when opening a data table or query. Otherwise, data tables open with a time range whose end date corresponds to the moment they were opened.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/preferences

And this is an example of a request body, including the required JSON object:

Code Block
{
    "inactivityPeriod": 10,
    "expiresSession": true,
    "getLocaleFromBrowser": true,
    "locale": 1000,
    "hideDemoTablesChecked": false,
    "loxcopeCaseSensitivity": "yes",
    "defaultRange": "1000"
}
Expand
titleResponse

Code

Description

200

Successful response. Preferences updated.

Code Block
{
    "inactivityPeriod": 10,
    "expiresSession": true,
    "getLocaleFromBrowser": true,
    "locale": 1000,
    "hideDemoTablesChecked": false,
    "loxcopeCaseSensitivity": "yes",
    "defaultRange": "1000"
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path21
path21
PUT/domain/{domainName}/preferences/limits

Update the limits in the preferences of a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Request body

The request JSON body must include the spec object with the following key-value pairs:

Parameter

Type

Description

userLimit

number

Specify the limit of users in the domain.

certificateLimit

number

Specify the number of certificates that can be created in a domain.

keyLimit

number

Specify the number of access keys that can be created in a domain

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/preferences/limits

And this is an example of a request body, including the required JSON object:

Code Block
{
  "userLimit": 99999,
  "certificateLimit": 9999,
  "keyLimit": 9999
}
Expand
titleResponse

Code

Description

200

Successful response. Limits updated.

Code Block
{
  "userLimit": 99999,
  "certificateLimit": 9999,
  "keyLimit": 9999
}

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path212
path212
PUT/domain/{domainName}/certificates/download

Download the certificates of a given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. For multitenant domains, enter the full domain name using the format {domainName}@{resellerName}

Query string parameters

Query string parameters are added after the path parameters, preceded by a question mark (?) and separated by an ampersand (&)

Parameter

Type

Description

name

string

Name of the certificate to be downloaded. Note that this is the name that appears in the Administration → Credentials → X.509 Certificates area.

pwd

string

Password of the required certificate. This is the password for the private key in the Administration → Credentials → X.509 Certificates area.

type

string

Type of certificate to be downloaded. Possible values are pkcs12, tar, jks, or bks (default value is pkcs12).

Depending on the parameters given, the behavior will be different:

  • Name and password provided → The service will look for a certificate matching the given values. A failure response will be sent on errors.

  • Name given, but no password provided → The service will assume the domain API secret as the certificate password. If the certificate exists but has a different password, an error will be returned.

  • No name nor password →  In this case, a certificate named '{domainName}_0' will be used, creating it when not found, and using the domain API secret as the password.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/certificates/download

Anchor
path00
path00
PUT /domain/{domainName}/auth

...

Note

Note that this request requires multitenant API credentials.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Request body

The request JSON body must include the saml2 , openid or password object with the following key-value pairs:

SAML

Parameter

Type

Description

active

boolean

Set this parameter to true to activate this method.

userProvisioning

boolean

Set this parameter to true to automatically register the new user during the authentication process.

roleMapping

boolean

Set this parameter to true to link your external roles with the ones in your Devo domain.

usePostMappingRequest

boolean

Set this parameter to true to use a POST-Binding workflow instead of HTTP-Redirect.

idp

array

Include the following parameters in this array:

  • id (string)

  • ssoUrl (string)

  • certificate (string)

  • nameIdFormat (string)

Learn more about this parameters in this article.

sp

array

Include the following parameters in this array:

  • acsUrl (string)

  • id (string)

  • homeUrl (string)

Learn more about this parameters in this article.

OpenID

Parameter

Type

Description

active

boolean

Set this parameter to true to activate this method.

userProvisioning

boolean

Set this parameter to true to automatically register the new user during the authentication process.

roleMapping

boolean

Set this parameter to true to link your external roles with the ones in your Devo domain.

idp

array

Include the following parameters in this array:

  • id (string)

  • secret (string)

  • ssoUrl (string)

  • certificate (string)

  • nameIdFormat (string)

Learn more about these parameters in this article.

sp

array

Include the following parameters in this array:

  • homeUrl (string)

Learn more about these parameters in this article.

Password

Parameter

Type

Description

active

boolean

Set this parameter to true to activate this method.

mfaActive

boolean

Set this parameter to true to enable MFA (Multi-factor authentication). Learn more about this authentication method in this article.

mfaSkip

boolean

Set this parameter to true if you want to make MFA optional for your domain users temporarily. Learn more about this in this article.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/auth

And these are examples of the required JSON bodies:

SAML

Code Block
{
  "saml2": {
      "active": false,
      "userProvisioning": true,
      "roleMapping": true,
      "usePostMappingRequest": true,
      "sp": {
          "homeUrl": "",
          "acsUrl": "",
          "id": ""
      },
      "idp": {
          "id": "",
          "ssoUrl": "",
          "certificate": "",
          "nameIdFormat": ""
      }
   }  
}

OpenID

Code Block
{
   "openid": {
        "active": false,
        "userProvisioning": true,
        "roleMapping": true,
        "sp": {
            "homeUrl": ""
        },
        "idp": {
            "id": "",
            "secret": "",
            "ssoUrl": "",
            "tokenUrl": "",
            "userInfoUrl": ""
        }
    }
}    

Password

Code Block
{    
    "password": {
        "active": true,
        "mfaActive": true,
        "mfaSkip": true
    }
}

Anchor
path22
path22
DELETE/domain/{domainName}

Delete a multitenant domain. This will additionally delete all user domains belonging to the multitenant domain. Any user that ends up without at least one user domain will be deleted as well.

Note

Note that this request requires multitenant API credentials.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName
Expand
titleResponse

Code

Description

200

Successful response. Domain deleted.

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

...

Anchor
path23
path23
DELETE/domain/{domainName}/roles/{roleName}

Delete a role in a given domain. Note that a role cannot be deleted while it is assigned to a user.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

roleName required

string

Enter the name of the role to be deleted.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/roles/myRole
Expand
titleResponse

Code

Description

200

Successful response. Role deleted.

400

Bad request.

Code Block
{
  "code": {
    "10": "Invalid signature"
  },
  "message": "string"
}

Anchor
path233
path233
DELETE/domain/{domainName}/keys/{key}

Delete a specific API key from the given domain.

Expand
titleRequest

Path parameters

Add the following path parameters as part of the endpoint:

Parameter

Type

Description

domainName required

string

Enter the name of the required domain. You must enter the full domain name using the format {domainName}@{resellerName}

key required

string

ID of the API key you want to delete.

You can get this using the GET/domain/{domainName}/keys endpoint. Find the required API key ID in the apiKey parameter of the response.

Find below a request example:

Code Block
https://api-us.devo.com/probio/domain/domainName@resellerName/keys/1234

...