Skip to content

Deny access request

POST
/v1/requests/{id}/deny
curl --request POST \
--url https://example.com/v1/requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/deny \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--header 'X-Tenant-ID: 2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \
--data '{ "reasoning": "example" }'
id
required
string format: uuid
X-Tenant-ID
required
string format: uuid

Tenant identifier. Must match the tenant associated with the credential. Returns 403 tenant_mismatch if the credential and header belong to different tenants.

Media type application/json
object
reasoning
string
Example generated
{
"reasoning": "example"
}

OK

Media type application/json
object
id
required
string format: uuid
requester_id
required

Identity of the user requesting access (subject claim from JWT).

string
resource
required
object
type
required
string
Allowed values: aws_account aws_permission_set aws_s3_bucket aws_rds_instance aws_ec2_instance aws_organizational_unit
id
required

Resource identifier. Format depends on type: aws_account: 12-digit AWS account ID aws_permission_set: permission set ARN aws_s3_bucket: bucket name aws_rds_instance: DB instance ARN aws_ec2_instance: instance ID (i-xxxx) aws_organizational_unit: OU ID (ou-xxxx-xxxxxxxx)

string
action
required
string
reason

User-provided justification for the request.

string
nullable
status
required
string
Allowed values: pending approved denied expired cancelled
decision_reasoning

Approver or system-provided explanation of the decision.

string
nullable
decided_by

Identity of the user who approved or denied the request.

string
nullable
approval_mode

How the request was approved. Null for requests created before this field existed.

string
nullable
Allowed values: require auto break_glass
break_glass

Whether this was an emergency break-glass request.

boolean
duration_seconds

Requested duration in seconds.

integer
nullable
metadata
required
object
key
additional properties
any
created_at
required
string format: date-time
updated_at
required
string format: date-time
Example
{
"resource": {
"type": "aws_account"
},
"status": "pending",
"approval_mode": "require"
}

Unauthenticated

Media type application/json
object
code
required

Machine-readable error code (e.g. “not_found”, “tenant_mismatch”).

string
message
required

Human-readable description of the error.

string
details

Optional additional context about the error.

object
key
additional properties
any
notices

Policy notices from determining Cedar rules, if applicable.

Array<string>
Example generated
{
"code": "example",
"message": "example",
"details": {},
"notices": [
"example"
]
}

Forbidden

Media type application/json
object
code
required

Machine-readable error code (e.g. “not_found”, “tenant_mismatch”).

string
message
required

Human-readable description of the error.

string
details

Optional additional context about the error.

object
key
additional properties
any
notices

Policy notices from determining Cedar rules, if applicable.

Array<string>
Example generated
{
"code": "example",
"message": "example",
"details": {},
"notices": [
"example"
]
}

Not found

Media type application/json
object
code
required

Machine-readable error code (e.g. “not_found”, “tenant_mismatch”).

string
message
required

Human-readable description of the error.

string
details

Optional additional context about the error.

object
key
additional properties
any
notices

Policy notices from determining Cedar rules, if applicable.

Array<string>
Example generated
{
"code": "example",
"message": "example",
"details": {},
"notices": [
"example"
]
}

Request not in pending state

Media type application/json
object
code
required

Machine-readable error code (e.g. “not_found”, “tenant_mismatch”).

string
message
required

Human-readable description of the error.

string
details

Optional additional context about the error.

object
key
additional properties
any
notices

Policy notices from determining Cedar rules, if applicable.

Array<string>
Example generated
{
"code": "example",
"message": "example",
"details": {},
"notices": [
"example"
]
}