User account resources
The user management service employs the native identity management feature of Zenoss Cloud to create and manage user accounts.
Resource list
- Create an account (POST /v1/user-mgmt/end-user-accounts)
- Get one account (GET /v1/user-mgmt/end-user-accounts/{user-ID})
- Update an account (PUT /v1/user-mgmt/end-user-accounts/{user-ID})
- Delete an account (DELETE /v1/user-mgmt/end-user-accounts/{user-ID})
- Get user IDs (POST /v1/user-mgmt/end-user-account-ids)
POST /v1/user-mgmt/end-user-accounts
Creates one user account.
Request template
An abstract preview of a JSON request to create one user.
{
"user": {
"email": "<email>",
"password": "<password>",
"lastName": "<first>",
"firstName": "<last>",
"groups": [ "<group>" ]
}
}
Request fields
-
user
(object, required) - An object containing one user account specification.
-
email
(string, required) - An email address. The address must be unique to your Zenoss Cloud environment.
-
password
(string, required) -
A password. Passwords must be a minimum of 8 characters, with no more than two identical characters in a row, and must include at least one character from three of the following classes:
- Special characters (! @ # $ % ^ & *)
- Lower-case letters (a-z)
- Upper-case letters (A-Z)
- Digits (0-9)
-
firstName
(string, optional) - A first name.
-
lastName
(string, optional) - A last name.
-
groups
(array, optional) -
A list of one or more existing groups.
A user account must have at least one group before it can be used to log in to Zenoss Cloud. To add a group to an existing account, use the update account resource.
Response fields
createdAt
- The date and time at which the user account was created.
createdBy
- The user that created the user account (
unknown
for API requests). id
- The identifier of the user account.
updatedAt
- The date and time at which the user account was updated.
Status codes
- 200 (success)
- 400 (bad request)
- 401 (unauthorized; missing or invalid authentication key)
Example
curl https://YOUR-API-ENDPOINT/v1/user-mgmt/end-user-accounts \
-H "content-type: application/json" \
-H "zenoss-api-key: YOUR-API-KEY" \
-X POST -s -S -d \
'{
"user": {
"email": "user_fake@example.com",
"password": "YOUR-USER-PASSWORD",
"lastName": "Doe",
"firstName": "John",
"groups": [
"group1",
"group2"
]
}
}'
{
"user": {
"createdAt": "2021-07-08T18:46:31.060Z",
"createdBy": "unknown",
"email": "user_fake@example.com",
"firstName": "John",
"groups": [
"group1",
"group2"
],
"id": "YOUR-USER-ID",
"lastName": "Doe",
"updatedAt": "2021-07-08T18:46:31.060Z"
}
}
GET /v1/user-mgmt/end-user-accounts/{user-ID}
Get an account. The password field is not returned.
Use the get user IDs resource to get a specific user ID.
Status codes
- 200 (success)
- 401 (unauthorized; missing or invalid authentication key)
- 404 (not found)
Example
curl https://YOUR-API-ENDPOINT/v1/user-mgmt/end-user-accounts/YOUR-USER-ID \
-H "content-type: application/json" \
-H "zenoss-api-key: YOUR-API-KEY" \
-X GET
{
"user": {
"id": "YOUR-USER-ID",
"email": "user_fake@example.com",
"lastName": "Doe",
"firstName": "John",
"groups": [
"group1",
"group2"
],
"createdBy": "unknown",
"createdAt": "2021-07-08T18:46:31.060Z",
"updatedAt": "2021-07-08T18:46:31.060Z"
}
}
PUT /v1/user-mgmt/end-user-accounts/{user-ID}
Update an existing account.
Use the get user IDs resource to get a specific user ID.
Request fields
Update requests use the same fields as create requests.
The name
field cannot be changed.
To prevent a user from logging in, specify an empty array for the groups
field.
Status codes
- 200 (success)
- 400 (bad request)
- 401 (unauthorized; missing or invalid authentication key)
Example
curl https://YOUR-API-ENDPOINT/v1/user-mgmt/end-user-accounts/YOUR-USER-ID \
-H "content-type: application/json" \
-H "zenoss-api-key: YOUR-API-KEY" \
-X PUT -s -S -d \
'{
"user": {
"groups": [
"group3",
"group4"
]
}
}'
{
"user": {
"createdAt": "2021-07-08T18:46:31.060Z",
"createdBy": "unknown",
"email": "user_fake@example.com",
"firstName": "John",
"groups": [
"group3",
"group4"
],
"id": "YOUR-USER-ID",
"lastName": "Doe",
"updatedAt": "2021-07-08T20:08:49.200Z",
}
}
{
"code": 3,
"message": "Group from the request doesn't exist"
}
DELETE /v1/user-mgmt/end-user-accounts/{user-ID}
Delete a user account.
Use the get user IDs resource to get a specific user ID.
Status codes
- 200 (success)
- 401 (unauthorized; missing or invalid authentication key)
- 404 (not found)
Example
curl https://YOUR-API-ENDPOINT/v1/user-mgmt/end-user-accounts/YOUR-USER-ID \
-H "content-type: application/json" \
-H "zenoss-api-key: YOUR-API-KEY" \
-X DELETE
{}
POST /v1/user-mgmt/end-user-account-ids
Get an array of user IDs of accounts that match the search criteria.
Only full matches are returned (no partial matches).
Request template
An abstract preview of a JSON request to query user accounts.
{
"user": {
"email": "<email>",
"lastName": "<first>",
"firstName": "<last>"
}
}
Request fields
-
email
(string, optional) - An email address.
-
firstName
(string, optional) - A first name.
-
lastName
(string, optional) - A last name.
Status codes
- 200 (success)
- 400 (bad request)
- 401 (unauthorized; missing or invalid authentication key)
Example
curl https://YOUR-API-ENDPOINT/v1/user-mgmt/end-user-account-ids \
-H "content-type: application/json" \
-H "zenoss-api-key: YOUR-API-KEY" \
-X POST -s -S -d \
'{
"email": "user_fake@example.com",
"lastName": "Doe",
"firstName": "John"
}'
{
"ids": [
"YOUR-USER-ID"
]
}
{
"code": 3,
"message": "invalid input, empty request or some fields"
}