Navigation

Update a Custom Role

Info With Circle IconCreated with Sketch.Note

Groups and projects are synonymous terms. Your {GROUP-ID} is the same as your project ID. For existing groups, your group/project ID remains the same. The resource and corresponding endpoints use the term groups.

https://cloud.mongodb.com/api/atlas/v1.0

The Atlas API uses HTTP Digest Authentication. Provide your Atlas username as the username and Atlas API key as the password as part of the HTTP request.

This endpoint requires that the Atlas user has the Owner role. To view the available Atlas users, click on Users & Teams in the left-hand navigation.

For complete documentation on configuring API access for an Atlas project, see Configure Atlas API Access.

PATCH /api/atlas/v1.0/groups/{GROUP-ID}/customDBRoles/roles/{ROLE-NAME}
ParameterRequired/OptionalDescription
GROUP-IDRequired.The unique identifier for the project.
ROLE-NAMERequired.The name of the role to update.

The following query parameters are optional:

Query ParameterTypeDescriptionDefault
prettybooleanDisplays response in a prettyprint format.false
envelopebooleanSpecifies whether or not to wrap the response in an envelope.false
Important With Circle IconCreated with Sketch.Important

Only the properties specified in the request body are updated. For example, if you do not specify the actions array, the custom role retains the actions it had before the request was made.

You cannot update a role's roleName. To rename a role, you must delete it and recreate the role with the desired the name.

NameTypeDescription
actionsarrayEach object in the actions array represents an individual privilege action granted by the role.
actions.actionstringName of the privilege action. For a complete list of actions available in the Atlas API, see Custom Role Actions.
actions.resourcesarrayContains information on where the action is granted. Each object in the array either indicates a database and collection on which the action is granted, or indicates that the action is granted on the cluster resource.
actions.resources.collectionstring

Collection on which the action is granted. If this value is an empty string, the action is granted on all collections within the database specified in the actions.resources.db field.

Info With Circle IconCreated with Sketch.Note

This field is mutually exclusive with the actions.resources.cluster field.

actions.resources.dbstring

Database on which the action is granted.

Info With Circle IconCreated with Sketch.Note

This field is mutually exclusive with the actions.resources.cluster field.

actions.resources.clusterboolean

Set to true to indicate that the action is granted on the cluster resource.

Info With Circle IconCreated with Sketch.Note

This field is mutually exclusive with the actions.resources.collection and actions.resources.db fields.

inheritedRolesarrayEach object in the inheritedRoles array represents a key-value pair indicating the inherited role and the database on which the role is granted.
inheritedRoles.dbstring

Database on which the inherited role is granted.

Info With Circle IconCreated with Sketch.Note

This value should be admin for all roles except read and readWrite.

inheritedRoles.rolestringName of the inherited role. This can either be another custom role or a built-in role.

This endpoint does not have response elements.

Important With Circle IconCreated with Sketch.Important

You must modify the following code block with the appropriate credentials and project ID.

curl --user '{PUBLIC-KEY}:{PRIVATE-KEY}' --digest \
--header 'Content-Type: application/json' \
--include \
--request PATCH "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/customDBRoles/roles/ShardingAdmin" --data '
{
"actions" : [ {
"action" : "COLL_MOD",
"resources" : [ {
"collection" : "",
"db" : "staging"
} ]
}, {
"action" : "COLL_STATS",
"resources" : [ {
"collection" : "",
"db" : "staging"
} ]
} ],
"inheritedRoles" : [ {
"db" : "admin",
"role" : "enableSharding"
}, {
"db" : "admin",
"role" : "backup"
} ]
}'
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: application/json
Strict-Transport-Security: max-age=300
Date: {dateInUnixFormat}
Connection: keep-alive
Content-Length: {requestLengthInBytes}
{
"actions" : [ {
"action" : "COLL_MOD",
"resources" : [ {
"collection" : "",
"db" : "staging"
} ]
}, {
"action" : "COLL_STATS",
"resources" : [ {
"collection" : "",
"db" : "staging"
} ]
} ],
"inheritedRoles" : [ {
"db" : "admin",
"role" : "enableSharding"
}, {
"db" : "admin",
"role" : "backup"
} ],
"roleName" : "ShardingAdmin"
}
Give Feedback