Skip to main content
POST
/
requests
/
{id}
/
approve
cURL
curl --request POST \
  --url https://api.opal.dev/v1/requests/{id}/approve \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "level": "REGULAR",
  "comment": "Approved after security review"
}'
{
  "request": {
    "id": "7c86c85d-0651-43e2-a748-d69d658418e8",
    "created_at": "2021-01-06T20:00:00.000Z",
    "updated_at": "2021-01-06T20:00:00.000Z",
    "requester_id": "c86c85d-0651-43e2-a748-d69d658418e8",
    "target_user_id": "r86c85d-0651-43e2-a748-d69d658418e8",
    "target_group_id": "r86c85d-0651-43e2-a748-d69d658418e8",
    "status": "pending",
    "reason": "I need this resource.",
    "duration_minutes": 1440,
    "request_comments": [
      {
        "id": "7c86c85d-0651-43e2-a748-d69d658418e8",
        "created_at": "2021-01-06T20:00:00.000Z",
        "updated_at": "2021-01-06T20:00:00.000Z",
        "request_id": "4c86c85d-0651-43e2-a748-d69d658418e8",
        "user_id": "c86c85d-0651-43e2-a748-d69d658418e8",
        "comment": "This is a comment."
      }
    ],
    "reviewer_stages": [
      {
        "requestedRoleName": "Admin",
        "requestedItemName": "AWS Production Account",
        "stages": [
          {
            "stage": 1,
            "operator": "AND",
            "reviewers": [
              {
                "id": "7c86c85d-0651-43e2-a748-d69d658418e8",
                "status": "PENDING"
              }
            ]
          },
          {
            "stage": 2,
            "operator": "OR",
            "reviewers": [
              {
                "id": "8d86c85d-0651-43e2-a748-d69d658418e9",
                "status": "APPROVED"
              }
            ]
          }
        ]
      }
    ]
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

The ID of the request to approve

Body

application/json

Approval parameters

level
enum<string>
required

The decision level for the approval

Available options:
REGULAR,
ADMIN
Example:

"REGULAR"

comment
string

Optional comment for the approval

Example:

"Approved after security review"

Response

200 - application/json

Request successfully approved

request
object

Request Object

Description

The Request object is used to represent a request.

Usage Example

Returned from the GET Requests endpoint.

Example:
{
"id": "7c86c85d-0651-43e2-a748-d69d658418e8",
"created_at": "2021-01-06T20:00:00.000Z",
"updated_at": "2021-01-06T20:00:00.000Z",
"requester_id": "c86c85d-0651-43e2-a748-d69d658418e8",
"target_user_id": "r86c85d-0651-43e2-a748-d69d658418e8",
"target_group_id": "r86c85d-0651-43e2-a748-d69d658418e8",
"status": "pending",
"reason": "I need this resource.",
"duration_minutes": 1440,
"request_comments": [
{
"id": "7c86c85d-0651-43e2-a748-d69d658418e8",
"created_at": "2021-01-06T20:00:00.000Z",
"updated_at": "2021-01-06T20:00:00.000Z",
"request_id": "4c86c85d-0651-43e2-a748-d69d658418e8",
"user_id": "c86c85d-0651-43e2-a748-d69d658418e8",
"comment": "This is a comment."
}
],
"reviewer_stages": [
{
"requestedRoleName": "Admin",
"requestedItemName": "AWS Production Account",
"stages": [
{
"stage": 1,
"operator": "AND",
"reviewers": [
{
"id": "7c86c85d-0651-43e2-a748-d69d658418e8",
"status": "PENDING"
}
]
},
{
"stage": 2,
"operator": "OR",
"reviewers": [
{
"id": "8d86c85d-0651-43e2-a748-d69d658418e9",
"status": "APPROVED"
}
]
}
]
}
]
}