Roles requests
Roles requests
| Redis Enterprise Software |
|---|
| Method | Path | Description |
|---|---|---|
| GET | /v1/roles | Get all roles |
| GET | /v1/roles/{uid} | Get a single role |
| PUT | /v1/roles/{uid} | Update an existing role |
| POST | /v1/roles | Create a new role |
| DELETE | /v1/roles/{uid} | Delete a role |
Get all roles
GET /v1/roles Get all roles' details.
Permissions
| Permission name | Roles |
|---|---|
| view_all_roles_info | admin cluster_member cluster_viewer db_member db_viewer user_manager |
Request
Example HTTP request
GET /v1/roles Headers
| Key | Value | Description |
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name |
| Accept | application/json | Accepted media type |
Response
Returns a JSON array of role objects.
Example JSON body
[ { "uid": 1, "name": "Admin", "management": "admin" }, { "uid": 2, "name": "Cluster Member", "management": "cluster_member" }, { "uid": 3, "name": "Cluster Viewer", "management": "cluster_viewer" }, { "uid": 4, "name": "DB Member", "management": "db_member" }, { "uid": 5, "name": "DB Viewer", "management": "db_viewer" }, { "uid": 6, "name": "None", "management": "none" }, { "uid": 17, "name": "DBA", "management": "admin" } ] Status codes
| Code | Description |
|---|---|
| 200 OK | No error |
| 501 Not Implemented | Cluster doesn't support roles yet. |
Get role
GET /v1/roles/{int: uid} Get the details of a single role.
Permissions
| Permission name | Roles |
|---|---|
| view_role_info | admin cluster_member cluster_viewer db_member db_viewer user_manager |
Request
Example HTTP request
GET /v1/roles/1 Headers
| Key | Value | Description |
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name |
| Accept | application/json | Accepted media type |
URL parameters
| Field | Type | Description |
|---|---|---|
| uid | integer | The role's unique ID. |
Response
Returns a role object.
Example JSON body
{ "uid": 17, "name": "DBA", "management": "admin" } Status codes
| Code | Description |
|---|---|
| 200 OK | Success. |
| 403 Forbidden | Operation is forbidden. |
| 404 Not Found | Role does not exist. |
| 501 Not Implemented | Cluster doesn't support roles yet. |
Update role
PUT /v1/roles/{int: uid} Update an existing role's details.
Permissions
| Permission name | Roles |
|---|---|
| update_role | admin user_manager |
Request
Example HTTP request
PUT /v1/roles/17 Example JSON body
{ "management": "cluster_member" } Headers
| Key | Value | Description |
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name |
| Accept | application/json | Accepted media type |
Query parameters
| Field | Type | Description |
|---|---|---|
| dry_run | Validate the updated role object but don't apply the update. |
URL parameters
| Field | Type | Description |
|---|---|---|
| uid | integer | The role's unique ID. |
Body
Include a role object with updated fields in the request body.
Response
Returns a role object with the updated fields.
Example JSON body
{ "uid": 17, "name": "DBA", "management": "cluster_member" } Error codes
Possible error_code values:
| Code | Description |
|---|---|
| unsupported_resource | The cluster is not yet able to handle this resource type. This could happen in a partially upgraded cluster, where some of the nodes are still on a previous version. |
| name_already_exists | An object of the same type and name exists. |
| change_last_admin_role_not_allowed | At least one user with admin role should exist. |
Status codes
| Code | Description |
|---|---|
| 200 OK | Success, role is created. |
| 400 Bad Request | Bad or missing configuration parameters. |
| 404 Not Found | Attempting to change a non-existant role. |
| 501 Not Implemented | Cluster doesn't support roles yet. |
Create role
POST /v1/roles Create a new role.
Permissions
| Permission name | Roles |
|---|---|
| create_role | admin user_manager |
Request
Example HTTP request
POST /v1/roles Example JSON body
{ "name": "DBA", "management": "admin" } Headers
| Key | Value | Description |
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name |
| Accept | application/json | Accepted media type |
Query parameters
| Field | Type | Description |
|---|---|---|
| dry_run | Validate the new role object but don't apply the update. |
Body
Include a role object in the request body.
Response
Returns the newly created role object.
Example JSON body
{ "uid": 17, "name": "DBA", "management": "admin" } Error codes
Possible error_codevalues:
| Code | Description |
|---|---|
| unsupported_resource | The cluster is not yet able to handle this resource type. This could happen in a partially upgraded cluster, where some of the nodes are still on a previous version. |
| name_already_exists | An object of the same type and name exists |
| missing_field | A needed field is missing |
Status codes
| Code | Description |
|---|---|
| 200 OK | Success, role is created. |
| 400 Bad Request | Bad or missing configuration parameters. |
| 501 Not Implemented | Cluster doesn't support roles yet. |
Examples
cURL
curl -k -u "[username]:[password]" -X POST \ -H 'Content-Type: application/json' \ -d '{ "name": "DBA", "management": "admin" }' \ https://[host][:port]/v1/roles Python
import requests import json url = "https://[host][:port]/v1/roles" headers = { 'Content-Type': 'application/json' } payload = json.dumps({ "name": "DBA", "management": "admin" }) auth=("[username]", "[password]") response = requests.request("POST", url, auth=auth, headers=headers, payload=payload, verify=False) print(response.text) Delete role
DELETE /v1/roles/{int: uid} Delete a role object.
Permissions
| Permission name | Roles |
|---|---|
| delete_role | admin user_manager |
Request
Example HTTP request
DELETE /v1/roles/1 Headers
| Key | Value | Description |
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name |
| Accept | application/json | Accepted media type |
URL parameters
| Field | Type | Description |
|---|---|---|
| uid | integer | The role unique ID. |
Response
Returns a status code to indicate role deletion success or failure.
Status codes
| Code | Description |
|---|---|
| 200 OK | Success, the role is deleted. |
| 404 Not Found | Role does not exist. |
| 406 Not Acceptable | The request is not acceptable. |
| 501 Not Implemented | Cluster doesn't support roles yet. |