Skip to content

Update the fleet's shell access policy (fleet alias)

PUT
/api/fleets/{fleet_id}/access-policy
curl --request PUT \
--url https://example.com/api/fleets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/access-policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "additions_require_approval": true, "allowed_tiers": [ "example" ], "breakglass_enabled": true, "breakglass_notification_channels": [ "example" ], "breakglass_session_timeout_minutes": 1, "elevated_approval_mode": "example", "elevated_approval_timeout_minutes": 1, "elevated_session_timeout_minutes": 1, "max_concurrent_sessions": 1, "recording_retention_days": 1, "recording_storage_quota_bytes": 1, "standard_recording_enabled": true, "webhook_secret": "example", "webhook_url": "example" }'

Upsert the shell access policy for the fleet (organisation).

fleet_id is the organisation UUID. Alias for PUT /organizations/{organization_id}/access-policy — same logic, same auth gates (OWNER / ADMIN only), same policy.changed audit event.

fleet_id
required
Fleet Id
string format: uuid
Media type application/json
AccessPolicyUpdateRequest

Mutable fields for the PUT /access-policy endpoint.

All fields are optional — only supplied (non-None) values are applied. Validators enforce domain constraints so callers receive clear 422 errors rather than mysterious integrity violations or silent mis-configurations.

object
additions_require_approval
Any of:
boolean
allowed_tiers
Any of:
Array<string>
breakglass_enabled
Any of:
boolean
breakglass_notification_channels
Any of:
Array<string>
breakglass_session_timeout_minutes
Any of:
integer
elevated_approval_mode
Any of:
string
elevated_approval_timeout_minutes
Any of:
integer
elevated_session_timeout_minutes
Any of:
integer
max_concurrent_sessions
Any of:
integer
recording_retention_days
Any of:
integer
recording_storage_quota_bytes
Any of:
integer
standard_recording_enabled
Any of:
boolean
webhook_secret
Any of:
string
>= 8 characters
webhook_url
Any of:
string
<= 2048 characters
Example generated
{
"additions_require_approval": true,
"allowed_tiers": [
"example"
],
"breakglass_enabled": true,
"breakglass_notification_channels": [
"example"
],
"breakglass_session_timeout_minutes": 1,
"elevated_approval_mode": "example",
"elevated_approval_timeout_minutes": 1,
"elevated_session_timeout_minutes": 1,
"max_concurrent_sessions": 1,
"recording_retention_days": 1,
"recording_storage_quota_bytes": 1,
"standard_recording_enabled": true,
"webhook_secret": "example",
"webhook_url": "example"
}

Successful Response

Media type application/json
AccessPolicyResponse

Full shell access policy document for an organisation.

is_default is True when no row exists yet in shell_access_policy and the response represents the documented model defaults. Once a PUT has been issued, is_default is always False.

id is None when the response is a virtual defaults object (is_default=True).

object
additions_require_approval
required
Additions Require Approval
boolean
allowed_tiers
required
Allowed Tiers
Array<string>
breakglass_enabled
required
Breakglass Enabled
boolean
breakglass_notification_channels
required
Breakglass Notification Channels
Array<string>
breakglass_session_timeout_minutes
required
Breakglass Session Timeout Minutes
integer
created_at
Any of:
string format: date-time
current_usage_bytes
Any of:
integer
elevated_approval_mode
required
Elevated Approval Mode
string
elevated_approval_timeout_minutes
required
Elevated Approval Timeout Minutes
integer
elevated_session_timeout_minutes
required
Elevated Session Timeout Minutes
integer
has_webhook_secret
Has Webhook Secret
boolean
id
Any of:
string format: uuid
is_default
Is Default
boolean
max_concurrent_sessions
Any of:
integer
organization_id
required
Organization Id
string format: uuid
recording_retention_days
required
Recording Retention Days
integer
recording_storage_quota_bytes
Any of:
integer
standard_recording_enabled
required
Standard Recording Enabled
boolean
updated_at
Any of:
string format: date-time
webhook_url
Any of:
string
Example
{
"has_webhook_secret": false,
"is_default": false
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}