Plan operations
Juan Tomás Alonso Nieto (Deactivated)
Borja Moro Moreno (Unlicensed)
Overview
Check the list of available endpoints and methods to create and modify multitenant plans using the Provisioning API.
Endpoints and methods | Description |
---|
Endpoints and methods | Description |
---|---|
GET | Get multitenant plans. |
GET | Get plan info. |
GET | Get plan configuration info. |
GET | Get plan roles. |
GET | Get plan info by name. |
GET | Get all policies of a given plan. |
GET | Get all applications of a given plan. |
GET | Get all vaults of a given plan. |
GET | Get the retention values of a given plan. |
POST | Create a new price plan role. |
PUT | Update plan configuration. |
PUT | Update plan roles. |
PUT | Update a plan role by name. |
PUT | Update the applications of a given plan. |
PUT | Update the retention values of a given plan. |
DELETE | Delete a plan role by name. |
Endpoints and methods
GET /plan
Returns the list of plans valid for your multitenant structure.
Note that this endpoint requires multitenant API credentials. Common domain API key/secret pairs won’t work.
Find below a request example:
https://api-us.devo.com/probio/plan
Code | Description |
---|
Code | Description |
---|---|
200 | Successful response. Plans retrieved. [
{
"id": 30,
"name": "test",
"roles": [
{
"id": 332,
"name": "Administrator",
"type": "ADMIN",
"policies": [
{
"op": "op_manage",
"action": "permalinks",
"label": "policy.permalinks.manage"
},
{
"op": "op_view",
"action": "credentials",
"label": "policy.credentials.view"
},
{
"op": "op_view",
"action": "certs",
"label": "policy.certs.view"
},
{
"op": "op_view",
"action": "oDataFeeds",
"label": "policy.oDataFeeds.view"
},
{
"op": "op_view",
"action": "query_management",
"label": "policy.query_management.view"
},
{
"op": "op_manage",
"action": "inject_myapp",
"label": "policy.inject_myapp.manage"
},
{
"op": "op_manage",
"action": "loxcope_columns",
"label": "policy.loxcope_columns.manage"
},
{
"op": "op_manage",
"action": "vault",
"label": "policy.vault.manage"
},
{
"op": "op_view",
"action": "finder",
"label": "policy.finder.view"
},
{
"op": "op_view",
"action": "alertSM_pagerduty",
"label": "policy.alertSM_pagerduty.view"
},
{
"op": "op_view",
"action": "lookups",
"label": "policy.lookups.view"
},
{
"op": "op_view",
"action": "http_tokens",
"label": "policy.http_tokens.view"
},
{
"op": "op_view",
"action": "permalinks",
"label": "policy.permalinks.view"
},
{
"op": "op_view",
"action": "view_profile",
"label": "policy.view_profile.view"
},
{
"op": "op_view",
"action": "alertSM_email",
"label": "policy.alertSM_email.view"
},
{
"op": "op_view",
"action": "redadaDashboards",
"label": "policy.redadaDashboards.view"
},
{
"op": "op_view",
"action": "alertSM_pushover",
"label": "policy.alertSM_pushover.view"
},
{
"op": "op_manage",
"action": "oDataFeeds",
"label": "policy.oDataFeeds.manage"
},
{
"op": "op_manage",
"action": "landing",
"label": "policy.landing.manage"
},
{
"op": "op_view",
"action": "dyn_lookups",
"label": "policy.dyn_lookups.view"
},
{
"op": "op_manage",
"action": "alertSM_servicedesk",
"label": "policy.alertSM_servicedesk.manage"
},
{
"op": "op_manage",
"action": "preference_account",
"label": "policy.preference_account.manage"
},
{
"op": "op_view",
"action": "apiv2_tokens",
"label": "policy.apiv2_tokens.view"
},
{
"op": "op_manage",
"action": "relays",
"label": "policy.relays.manage"
},
{
"op": "op_manage",
"action": "users",
"label": "policy.users.manage"
},
{
"op": "op_view",
"action": "alertSM_httpjson",
"label": "policy.alertSM_httpjson.view"
},
{
"op": "op_view",
"action": "social_networks",
"label": "policy.social_networks.view"
},
{
"op": "op_view",
"action": "domain_permalinks",
"label": "policy.domain_permalinks.view"
},
{
"op": "op_manage",
"action": "redadaDashboards",
"label": "policy.redadaDashboards.manage"
},
{
"op": "op_manage",
"action": "auth_prefs",
"label": "policy.auth_prefs.manage"
},
{
"op": "op_manage",
"action": "userdsh",
"label": "policy.userdsh.manage"
},
{
"op": "op_manage",
"action": "alertSM_httpjson",
"label": "policy.alertSM_httpjson.manage"
},
{
"op": "op_manage",
"action": "alertSM_email",
"label": "policy.alertSM_email.manage"
},
{
"op": "op_view",
"action": "alerts",
"label": "policy.alerts.view"
},
{
"op": "op_view",
"action": "contact",
"label": "policy.contact.view"
},
{
"op": "op_manage",
"action": "lookups_restriction",
"label": "policy.lookups_restriction.manage"
},
{
"op": "op_view",
"action": "alertSM_slack",
"label": "policy.alertSM_slack.view"
},
{
"op": "op_manage",
"action": "roles",
"label": "policy.roles.manage"
},
{
"op": "op_view",
"action": "domain_activity",
"label": "policy.domain_activity.view"
},
{
"op": "op_manage",
"action": "free-query",
"label": "policy.free-query.manage"
},
{
"op": "op_manage",
"action": "casperables_custom",
"label": "policy.casperables_custom.manage"
},
{
"op": "op_manage",
"action": "alertSM_pushover",
"label": "policy.alertSM_pushover.manage"
},
{
"op": "op_view",
"action": "go_to_query",
"label": "policy.go_to_query.view"
},
{
"op": "op_view",
"action": "alertSM_jira",
"label": "policy.alertSM_jira.view"
},
{
"op": "op_manage",
"action": "alertSM_jira",
"label": "policy.alertSM_jira.manage"
},
{
"op": "op_view",
"action": "alertSM_servicedesk",
"label": "policy.alertSM_servicedesk.view"
},
{
"op": "op_manage",
"action": "alerts",
"label": "policy.alerts.manage"
},
{
"op": "op_view",
"action": "home",
"label": "policy.home.view"
},
{
"op": "op_view",
"action": "roles",
"label": "policy.roles.view"
},
{
"op": "op_view",
"action": "domain_connections",
"label": "policy.domain_connections.view"
},
{
"op": "op_view",
"action": "notifications",
"label": "policy.notifications.view"
},
{
"op": "op_view",
"action": "domain-queries",
"label": "policy.domain-queries.view"
},
{
"op": "op_manage",
"action": "domain_permalinks",
"label": "policy.domain_permalinks.manage"
},
{
"op": "op_manage",
"action": "alertSM_slack",
"label": "policy.alertSM_slack.manage"
},
{
"op": "op_manage",
"action": "alertSM_servicenow",
"label": "policy.alertSM_servicenow.manage"
},
{
"op": "op_view",
"action": "auth_prefs",
"label": "policy.auth_prefs.view"
},
{
"op": "op_manage",
"action": "custom_tables",
"label": "policy.custom_tables.manage"
},
{
"op": "op_manage",
"action": "admin_user_resources",
"label": "policy.admin_user_resources.manage"
},
{
"op": "op_manage",
"action": "apiv2_tokens",
"label": "policy.apiv2_tokens.manage"
},
{
"op": "op_manage",
"action": "send_data",
"label": "policy.send_data.manage"
},
{
"op": "op_view",
"action": "lookups_restriction",
"label": "policy.lookups_restriction.view"
},
{
"op": "op_manage",
"action": "lookups",
"label": "policy.lookups.manage"
},
{
"op": "op_view",
"action": "alerts_config",
"label": "policy.alerts_config.view"
},
{
"op": "op_manage",
"action": "alertSM_pagerduty",
"label": "policy.alertSM_pagerduty.manage"
},
{
"op": "op_view",
"action": "inject_myapp",
"label": "policy.inject_myapp.view"
},
{
"op": "op_manage",
"action": "finder",
"label": "policy.finder.manage"
},
{
"op": "op_manage",
"action": "alerts_resetglobe",
"label": "policy.alerts_resetglobe.manage"
},
{
"op": "op_view",
"action": "landing",
"label": "policy.landing.view"
},
{
"op": "op_view",
"action": "users",
"label": "policy.users.view"
},
{
"op": "op_view",
"action": "relays",
"label": "policy.relays.view"
},
{
"op": "op_manage",
"action": "credentials",
"label": "policy.credentials.manage"
},
{
"op": "op_manage",
"action": "app_gallery",
"label": "policy.app_gallery.manage"
},
{
"op": "op_view",
"action": "casperables_custom",
"label": "policy.casperables_custom.view"
},
{
"op": "op_manage",
"action": "alerts_config",
"label": "policy.alerts_config.manage"
},
{
"op": "op_manage",
"action": "dyn_lookups",
"label": "policy.dyn_lookups.manage"
},
{
"op": "op_manage",
"action": "http_tokens",
"label": "policy.http_tokens.manage"
},
{
"op": "op_manage",
"action": "certs",
"label": "policy.certs.manage"
},
{
"op": "op_view",
"action": "social_intelligence",
"label": "policy.social_intelligence.view"
},
{
"op": "op_view",
"action": "alertSM_servicenow",
"label": "policy.alertSM_servicenow.view"
},
{
"op": "op_view",
"action": "userdsh",
"label": "policy.userdsh.view"
},
{
"op": "op_manage",
"action": "query_management",
"label": "policy.query_management.manage"
},
{
"op": "op_manage",
"action": "notifications",
"label": "policy.notifications.manage"
},
{
"op": "op_manage",
"action": "logautoparser",
"label": "policy.logautoparser.manage"
}
],
"apps": [],
"finder": null
},
{
"id": 333,
"name": "No Privileges",
"type": "NO_PRIVILEGES",
"policies": [
{
"op": "op_view",
"action": "social_intelligence",
"label": "policy.social_intelligence.view"
},
{
"op": "op_view",
"action": "notifications",
"label": "policy.notifications.view"
},
{
"op": "op_manage",
"action": "userdsh",
"label": "policy.userdsh.manage"
},
{
"op": "op_manage",
"action": "preference_account",
"label": "policy.preference_account.manage"
},
{
"op": "op_view",
"action": "contact",
"label": "policy.contact.view"
},
{
"op": "op_view",
"action": "landing",
"label": "policy.landing.view"
},
{
"op": "op_view",
"action": "view_profile",
"label": "policy.view_profile.view"
},
{
"op": "op_manage",
"action": "landing",
"label": "policy.landing.manage"
},
{
"op": "op_view",
"action": "finder",
"label": "policy.finder.view"
},
{
"op": "op_view",
"action": "home",
"label": "policy.home.view"
},
{
"op": "op_view",
"action": "alerts",
"label": "policy.alerts.view"
},
{
"op": "op_view",
"action": "social_networks",
"label": "policy.social_networks.view"
}
],
"apps": [],
"finder": null
},
{
"id": 19611,
"name": "notifications",
"type": "CUSTOM",
"policies": [
{
"op": "op_view",
"action": "notifications",
"label": "policy.notifications.view"
},
{
"op": "op_manage",
"action": "notifications",
"label": "policy.notifications.manage"
}
],
"apps": [],
"finder": null
}
],
"apps": [
"lib.custom",
"app.avm",
"lib.appserver",
"lib.attack",
"lib.system",
"lib.tracking",
"lib.logtrust",
"lib.webserver",
"app.report.firewall",
"app.custom.SecurityInsights_1_2_0"
],
"menu": [
{
"id": "menu.home",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 0
},
{
"id": "menu.dashboards",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 1
},
{
"id": "menu.search",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 2
},
{
"id": "menu.send_data",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 4
},
{
"id": "menu.administration",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 5
},
{
"id": "menu.admin.users",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 6
},
{
"id": "menu.admin.roles",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 7
},
{
"id": "menu.admin.relays",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 8
},
{
"id": "menu.admin.credentials",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 9
},
{
"id": "menu.admin.subscription",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 11
},
{
"id": "menu.admin.appgallery",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 12
},
{
"id": "menu.admin.alert_config",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 13
},
{
"id": "menu.admin.ci",
"route": null,
"cssClass": null,
"parent": "menu.administration",
"roles": null,
"action": null,
"textI18n": null,
"position": 14
},
{
"id": "menu.applications",
"route": null,
"cssClass": "nt-apps",
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 15
},
{
"id": "menu.marketplace",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 16
},
{
"id": "menu.alerts",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 17
},
{
"id": "menu.notifications",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 18
},
{
"id": "menu.preferences",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 19
},
{
"id": "menu.social_intelligence",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 20
},
{
"id": "menu.makeijan",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 21
},
{
"id": "menu.flow",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 22
},
{
"id": "menu.redadashboard",
"route": null,
"cssClass": null,
"parent": null,
"roles": null,
"action": null,
"textI18n": null,
"position": 1
}
],
"retentionUnit": "DAYS",
"retentionValue": 1080,
"volume": 10.0,
"config": {
"usersCount": 50,
"redefineTablesRetention": false,
"shareAcrossPlan": false,
"queryForever": false
},
"dataDeletion": false,
"archivingDays": 0
},
]
|
4xx | Bad request. {
"error": {
"code": 4xx,
"message": "string"
}
} |
GET /plan/{planName}
Returns information about a given service plan.
Note that this endpoint requires multitenant API credentials. Common domain API key/secret pairs won’t work.
Path parameters
Add the following path parameters as part of the endpoint:
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
|
| Name of the required plan. |
Find below a request example:
Code | Description |
---|
Code | Description |
---|---|
200 | Successful response. Plan info retrieved. |
4xx | Bad request. |
GET /plan/{planName}/configuration
Returns information about the configuration of a given service plan.
Note that this endpoint requires multitenant API credentials. Common domain API key/secret pairs won’t work.
Path parameters
Add the following path parameters as part of the endpoint:
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
|
| Name of the required plan. |
Find below a request example:
GET /plan/{planName}/roles
Retrieves all roles belonging to the provided domain.
GET /plan/{planName}/roles/{roleName}
Retrieves information about a specific role in a plan.
GET /plan/{planName}/policies
Given a price plan, returns all the role policies (or permissions) that can be given to any custom role.
GET /plan/{planName}/applications
Given a price plan, returns all the applications that can be given to any custom role.
GET /plan/{planName}/roles/vaults
Given a price plan, returns all the vaults that can be given to any custom role.
GET /plan/{planName}/retention
Given a price plan, returns all the retention values.
POST /plan/{planName}/roles
Creates a new role assigned to a given price plan.
There are custom roles that can be configured for a given multitenant plan. Those roles cannot be managed in the Devo application, only through the API.
This allows the multitenant administrator to manage the policies and resources the users of a domain can access without exposing some resources that only should be applied to other domains in the plan.
You should know that:
Basic roles Administrator and No privileges are taken from the defaults at the price plan instead of the global ones.
The owner of a domain is a role Administrator flagged as
owner
.Multiple roles apply.
PUT /plan/{planName}/configuration
Updates the configuration of a given price plan.
PUT /plan/{planName}/roles
Updates a price plan custom role to match the provided specification.
PUT /plan/{planName}/roles/{roleName}
Updates a custom role of a given price plan indicating its name.
PUT /plan/{planName}/applications
Update the applications of a given plan.
PUT /plan/{planName}/retention
Update the retention values of a given plan. Partial updates are allowed.
DELETE /plan/{planName}/roles/{roleName}
Deletes a role from a given plan.