Skip to content

Approve or reject lifecycle request

POST/tenants/{tenant_id}/lifecycle-requests/{id}/approve

Records an approval or rejection decision on a pending lifecycle request. If approved, the requested action (suspend, terminate, etc.) is executed immediately. If rejected, the request is closed without executing the action and the reason is recorded.

Request

Path parameters

NameTypeRequiredDescription
tenant_idstringYes

The tenant identifier.

idstringYes

The lifecycle request ID to act on.

Request body

Content type application/json.

FieldTypeRequiredDescription
decisionstringNo

Whether to approve or reject the lifecycle request.

One of: "approve", "reject" · Default: "approve"

commentstring, nullableNo

Decision comment recorded in the audit trail.

Max length: 1000

Example

{
  "decision": "approve",
  "comment": "Finance confirmed non-payment. Proceeding with suspension."
}

Responses

200 Lifecycle decision recorded; action executed if approved

Content type application/json, object · LifecycleRequestV1.

FieldTypeRequiredDescription
idstringNo

Unique lifecycle request identifier.

tenant_idstringNo
actionstringNo

One of: "suspend", "unsuspend", "terminate", "change_plan"

statusstringNo

One of: "pending", "approved", "rejected", "executed", "failed"

requested_bystringNo

Email of the admin who created the request.

reasonstring, nullableNo
planstring, nullableNo
approved_bystring, nullableNo

Email of the approving admin.

decision_commentstring, nullableNo
created_atstring (date-time)No
actioned_atstring (date-time), nullableNo

404 Tenant or lifecycle request not found

409 Request has already been actioned

Example request

Paths are relative to the control-plane API base URL ($BASE_URL below).

curl -X POST "$BASE_URL/tenants/{tenant_id}/lifecycle-requests/{id}/approve" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"decision": "approve", "comment": "Finance confirmed non-payment. Proceeding with suspension."}'
Loading