cam — Cloud Access Management
cam · 2019-01-16

ListUsersForGroup

POST

Query the list of users associated with a user group.

Wire call

Converge Cloud is RPC over HTTP. There is one path — / — and the action travels in the X-TC-Action header. The /cam/ListUsersForGroup path used in the OpenAPI document is a documentation convenience so each action is addressable; it is not a route on the server.

curl
curl -sS https://cam.api3.convergecloud.com/ \
  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/cam/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \
  -H 'Content-Type: application/json; charset=utf-8' \
  -H 'Host: cam.api3.convergecloud.com' \
  -H 'X-TC-Action: ListUsersForGroup' \
  -H 'X-TC-Version: 2019-01-16' \
  -H 'X-TC-Timestamp: <unix-seconds>' \
  -H 'X-TC-Region: luzon' \
  -d '{}'

Request parameters

FieldTypeRequiredDescription
GroupIdintegerYesUser group ID
PageintegerNoPage number; default is 1
RpintegerNoNumber of entries per page; default is 20

Response

Fields are returned inside the Response envelope. Converge Cloud answers HTTP 200 for errors as well as successes, so read Response.Error rather than the status code — and test for the presence of that object, because Code is occasionally the empty string.

FieldTypeDescription
TotalNumintegerTotal number of users associated with the User Group
UserInfoGroupMemberInfo[]Sub-user information
RequestIdstringThe unique request ID, which is returned for each request. RequestId is required for locating a problem.
Success
{
  "Response": {
    "TotalNum": …,
    "UserInfo": …,
    "RequestId": "…"
  }
}
Error
{
  "Response": {
    "Error": { "Code": "…", "Message": "…" },
    "RequestId": "…"
  }
}

Try it

CredentialThe key never leaves this tab — it signs the request here. The signed request goes to /api-relay/cam.
Request bodyvalid JSONPOST cam.api3.convergecloud.com · ListUsersForGroup
Read-only. Creates nothing.

What failure looks like

Example error responses for this action. Match on Code.

Recorded error 1
{
  "Response": {
    "Error": {
      "Code": "InternalError.SystemError",
      "Message": "record not found",
      "code": 1001,
      "msg": "record not found",
      "value": null
    },
    "RequestId": "8f5e9d75-034a-8575-f1b0-c4e6bb67b145"
  }
}
Recorded error 2
{
  "Response": {
    "Error": {
      "Code": "InternalError.SystemError",
      "Message": "record not found",
      "code": 1001,
      "msg": "record not found",
      "value": null
    },
    "RequestId": "01066e44-996f-d606-7b02-380ae2c3eba7"
  }
}