Group Roles Resource
Description
This resource is for managing roles and their permissions within a group.
GET /groups/:ID/roles
Returns all available roles for that group. This is a paged query.
GET Parameters
| Name | Required | Type | Description | Default Value |
|---|---|---|---|---|
| :ID | Yes | URL Parameter | Numeric ID of the group whose roles you want to check. |
GET Response Values
| Name | Type | Description |
|---|---|---|
| name | JSON String | The name of the role. |
| description | JSON String | The description of the role. |
| features | JSON Array | Array containing the features allowed for the role. Each feature is an object with a "name" and "privilege" element. See the role resource for more information. |
| role_resource | JSON String | A string indicating the role resource identifier for this role. |
| users | JSON Array | An array of JSON strings containing the usernames assigned to this role. |
| admin_group | JSON Object | The entire JSON object representing the group resource that owns the role. |
| group_resources | JSON Array | This array is a list of the group resources to which this role's permissions apply. |
Example GET Request
GET /groups/407/roles
Example GET Response
{
"rows": 3,
"data": [
{
"name": "Test Group 3 admin",
"description": "a role created by default",
"features": [
{
"name": "group",
"privilege": "rw"
},
{
"name": "mitigation_reporting",
"privilege": "rw"
},
{
"name": "mitigation_config",
"privilege": "rw"
},
{
"name": "limit_resource",
"privilege": "rw"
},
{
"name": "group_routing",
"privilege": "rw"
},
{
"name": "zone_routing",
"privilege": "rw"
},
{
"name": "group_admin",
"privilege": "rw"
},
{
"name": "device",
"privilege": "none"
},
{
"name": "rweb",
"privilege": "none"
}
],
"role_resource": "/roles/960",
"users": [],
"admin_group": {
"name": "Electic bugaloo",
"description": "Test group 4",
"mode": "NONE",
"customer_resource": "/customers/407",
"zones_resource": "/groups/407/zones",
"reports_resource": "/groups/407/report_statuses",
"scheduled_reports_resource": "/groups/407/scheduled_reports",
"customer_configurations_resource": "/groups/407/configurations",
"customer_devices_resource": "/groups/407/mapped_devices",
"customer_traffic_resource": "/groups/407/traffic",
"customer_logs_resource": "/groups/407/logs",
"group_resource": "/groups/407",
"group_configurations_resource": "/groups/407/configurations",
"group_traffic_resource": "/groups/407/traffic",
"group_logs_resource": "/groups/407/logs",
"members_resource": "/groups/407/members",
"roles_resource": "/groups/407/roles",
"users_resource": "/groups/407/users",
"templates_resource": "/groups/407/templates",
"subnets_resource": "/groups/407/subnets",
"mapped_devices_resource": "/groups/407/mapped_devices",
"pre_mapped_devices_resource": "/groups/407/pre_mapped_devices",
"sub_groups_resource": "/groups/407/groups",
"parent_resource": "/groups/279"
},
"group_resources": [
"/groups/407"
]
},
{
"name": "Test Group 3 read write",
"description": "a role created by default",
"features": [
{
"name": "group",
"privilege": "rw"
},
{
"name": "mitigation_reporting",
"privilege": "rw"
},
{
"name": "mitigation_config",
"privilege": "rw"
},
{
"name": "limit_resource",
"privilege": "rw"
},
{
"name": "group_routing",
"privilege": "rw"
},
{
"name": "zone_routing",
"privilege": "rw"
},
{
"name": "group_admin",
"privilege": "none"
},
{
"name": "device",
"privilege": "none"
},
{
"name": "rweb",
"privilege": "none"
}
],
"role_resource": "/roles/961",
"users": [],
"admin_group": {
"name": "Electic bugaloo",
"description": "Test group 4",
"mode": "NONE",
"customer_resource": "/customers/407",
"zones_resource": "/groups/407/zones",
"reports_resource": "/groups/407/report_statuses",
"scheduled_reports_resource": "/groups/407/scheduled_reports",
"customer_configurations_resource": "/groups/407/configurations",
"customer_devices_resource": "/groups/407/mapped_devices",
"customer_traffic_resource": "/groups/407/traffic",
"customer_logs_resource": "/groups/407/logs",
"group_resource": "/groups/407",
"group_configurations_resource": "/groups/407/configurations",
"group_traffic_resource": "/groups/407/traffic",
"group_logs_resource": "/groups/407/logs",
"members_resource": "/groups/407/members",
"roles_resource": "/groups/407/roles",
"users_resource": "/groups/407/users",
"templates_resource": "/groups/407/templates",
"subnets_resource": "/groups/407/subnets",
"mapped_devices_resource": "/groups/407/mapped_devices",
"pre_mapped_devices_resource": "/groups/407/pre_mapped_devices",
"sub_groups_resource": "/groups/407/groups",
"parent_resource": "/groups/279"
},
"group_resources": [
"/groups/407"
]
},
{
"name": "Test Group 3 read",
"description": "a role created by a crazy person",
"features": [
{
"name": "group",
"privilege": "ro"
},
{
"name": "mitigation_reporting",
"privilege": "ro"
},
{
"name": "mitigation_config",
"privilege": "ro"
},
{
"name": "limit_resource",
"privilege": "none"
},
{
"name": "group_routing",
"privilege": "none"
},
{
"name": "zone_routing",
"privilege": "ro"
},
{
"name": "group_admin",
"privilege": "none"
},
{
"name": "device",
"privilege": "none"
},
{
"name": "rweb",
"privilege": "none"
}
],
"role_resource": "/roles/962",
"users": [],
"admin_group": {
"name": "Electic bugaloo",
"description": "Test group 4",
"mode": "NONE",
"customer_resource": "/customers/407",
"zones_resource": "/groups/407/zones",
"reports_resource": "/groups/407/report_statuses",
"scheduled_reports_resource": "/groups/407/scheduled_reports",
"customer_configurations_resource": "/groups/407/configurations",
"customer_devices_resource": "/groups/407/mapped_devices",
"customer_traffic_resource": "/groups/407/traffic",
"customer_logs_resource": "/groups/407/logs",
"group_resource": "/groups/407",
"group_configurations_resource": "/groups/407/configurations",
"group_traffic_resource": "/groups/407/traffic",
"group_logs_resource": "/groups/407/logs",
"members_resource": "/groups/407/members",
"roles_resource": "/groups/407/roles",
"users_resource": "/groups/407/users",
"templates_resource": "/groups/407/templates",
"subnets_resource": "/groups/407/subnets",
"mapped_devices_resource": "/groups/407/mapped_devices",
"pre_mapped_devices_resource": "/groups/407/pre_mapped_devices",
"sub_groups_resource": "/groups/407/groups",
"parent_resource": "/groups/279"
},
"group_resources": [
"/groups/407"
]
}
],
"start": 0
}
POST /groups/:ID/roles
POST Parameters
| Name | Required | Type | Description | Default Value |
|---|---|---|---|---|
| :ID | Yes | URL Parameter | The numeric ID for the group you are creating a new role for. | |
| name | Yes | JSON String | The name of the role. | |
| description | Yes | JSON String | The description of the role. | |
| admin_group_resource | No | JSON String | The group resource that should administrate this role. | Defaults to the group identified by the :ID parameter |
| features | Yes | JSON Array | An array of the desired permissions for this role. See the role resource for more information. | |
| group_resources | Yes | JSON Array | This array is a list of the group resources to which this role's permissions apply. |
POST Response Values
| Name | Type | Description |
|---|---|---|
| name | JSON String | The name of the role. |
| description | JSON String | The description of the role. |
| features | JSON Array | Array containing the features allowed for the role. Each feature is an object with a "name" and "privilege" element. See the role resource for more information. |
| role_resource | JSON String | A string indicating the role resource identifier for this role. |
| users | JSON Array | An array of JSON strings containing the usernames assigned to this role. |
| admin_group | JSON Object | The entire JSON object representing the group resource that owns the role. |
| group_resources | JSON Array | This array is a list of the group resources to which this role's permissions apply. |
Example POST Request
POST /groups/407/roles
JSON Body:
{
"data": {
"name": "API Inserted Role",
"description": "Used API to create this role.",
"group_resources": ["/groups/407"],
"features": [
{
"name": "mitigation_reporting",
"privilege": "ro"
},
{
"name": "mitigation_config",
"privilege": "ro"
},
{
"name": "limit_resource",
"privilege": "none"
},
{
"name": "zone_routing",
"privilege": "none"
},
{
"name": "group_routing",
"privilege": "none"
},
{
"name": "group_admin",
"privilege": "none"
}
]
}
}
Example POST Response
HTTP/1.1 201 Created
{
"name": "API Inserted Role",
"description": "Used API to create this role.",
"features": [
{
"name": "group",
"privilege": "ro"
},
{
"name": "mitigation_reporting",
"privilege": "ro"
},
{
"name": "mitigation_config",
"privilege": "ro"
},
{
"name": "limit_resource",
"privilege": "none"
},
{
"name": "group_routing",
"privilege": "none"
},
{
"name": "zone_routing",
"privilege": "none"
},
{
"name": "group_admin",
"privilege": "none"
},
{
"name": "device",
"privilege": "none"
},
{
"name": "rweb",
"privilege": "none"
}
],
"role_resource": "/roles/1887",
"users": [],
"admin_group": {
"name": "Electic bugaloo",
"description": "Test group 4",
"mode": "NONE",
"customer_resource": "/customers/407",
"zones_resource": "/groups/407/zones",
"reports_resource": "/groups/407/report_statuses",
"scheduled_reports_resource": "/groups/407/scheduled_reports",
"customer_configurations_resource": "/groups/407/configurations",
"customer_devices_resource": "/groups/407/mapped_devices",
"customer_traffic_resource": "/groups/407/traffic",
"customer_logs_resource": "/groups/407/logs",
"group_resource": "/groups/407",
"group_configurations_resource": "/groups/407/configurations",
"group_traffic_resource": "/groups/407/traffic",
"group_logs_resource": "/groups/407/logs",
"members_resource": "/groups/407/members",
"roles_resource": "/groups/407/roles",
"users_resource": "/groups/407/users",
"templates_resource": "/groups/407/templates",
"subnets_resource": "/groups/407/subnets",
"mapped_devices_resource": "/groups/407/mapped_devices",
"pre_mapped_devices_resource": "/groups/407/pre_mapped_devices",
"sub_groups_resource": "/groups/407/groups",
"parent_resource": "/groups/279"
},
"group_resources": [
"/groups/407"
]
}