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

AttachRolePolicy

POST

Associate a policy with a role.

Wire call

Converge Cloud is RPC over HTTP. There is one path — / — and the action travels in the X-TC-Action header. The /cam/AttachRolePolicy 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: AttachRolePolicy' \
  -H 'X-TC-Version: 2019-01-16' \
  -H 'X-TC-Timestamp: <unix-seconds>' \
  -H 'X-TC-Region: luzon' \
  -d '{}'

Request parameters

FieldTypeRequiredDescription
PolicyIdinteger—Policy ID. Either `PolicyId` or `PolicyName` must be entered
AttachRoleIdstring—Role ID, used to specify a role. Input either `AttachRoleId` or `AttachRoleName`
AttachRoleNamestring—Role name, used to specify a role. Input either `AttachRoleId` or `AttachRoleName`
PolicyNamestring—Policy name. Either `PolicyId` or `PolicyName` must be entered

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
RequestIdstringThe unique request ID, which is returned for each request. RequestId is required for locating a problem.
Success
{
  "Response": {
    // action-specific fields,
    "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 · AttachRolePolicy

What failure looks like

Example error responses for this action. Match on Code.

Recorded error 1
{
  "Response": {
    "Error": {
      "Code": "InvalidParameter.RoleName",
      "Message": "invalid param RoleName",
      "code": 100,
      "msg": "invalid param RoleName",
      "value": null
    },
    "RequestId": "ed462f57-4809-4035-69e8-a74cbdd28dfc"
  }
}