Operation details
GET /v1/escalate/grantees
Active resellers the session scope may grant line groups to
- operationId
listEscalateGrantees- Auth
- Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
- Required permissions
All of:node_scheduling.manage
Description (from the contract)
The platform gets the active resellers (an active tenant with an active reseller profile); a tenant (reseller) gets an empty list, as 1.0.35 has one level. Replaces GET /v1/admin/tenant-scopes in the grant dialog.
Parameters
listEscalateGrantees Parameters| Name | In | Type | Required | Description |
|---|
search | query | string | No | Short tenant ID, or a case-insensitive substring of the tenant name or scope UUID. |
|---|
Responses
listEscalateGrantees Responses| Status | Description |
|---|
200 | At most 200 resellers ordered by name. Fields:items: array<Grantee> |
|---|
400 | Error. |
|---|
401 | Error. |
|---|
403 | Error. |
|---|
503 | Error. |
|---|
What to do on failure
400 Fix the parameters or body per the field list; do not retry unchanged.401 Check the credential format and whether it expired or was rotated.403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
GET /v1/escalate/line-groups
List the line groups the session scope may use for B/C (own and granted) with their tier
- operationId
listEscalateLineGroups- Auth
- Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
- Required permissions
All of:node_scheduling.read
Responses
listEscalateLineGroups Responses| Status | Description |
|---|
200 | Usable line groups. Fields:items: array<UsableLineGroup> |
|---|
400 | Error. |
|---|
401 | Error. |
|---|
403 | Error. |
|---|
503 | Error. |
|---|
What to do on failure
400 Fix the parameters or body per the field list; do not retry unchanged.401 Check the credential format and whether it expired or was rotated.403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
GET /v1/escalate/line-groups/grants
The grants the session scope made, newest first, revoked ones included
- operationId
listEscalateLineGroupGrants- Auth
- Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
- Required permissions
All of:node_scheduling.manage
Description (from the contract)
NODE-N05. Cursor paged by (created_at, id) descending; next_cursor is empty on the last page. Only the session scope's own grants (grantor_scope_id); a reseller gets none, as 1.0.35 has one level. Revoked grants carry revoked_at so the history stays visible; only live ones can be revoked.
Parameters
listEscalateLineGroupGrants Parameters| Name | In | Type | Required | Description |
|---|
cursor | query | string | No | — |
|---|
limit | query | integer | No | — |
|---|
Responses
listEscalateLineGroupGrants Responses| Status | Description |
|---|
200 | A page of grants. Fields:items: array<GrantRecord> next_cursor: string |
|---|
400 | Error. |
|---|
401 | Error. |
|---|
403 | Error. |
|---|
503 | Error. |
|---|
What to do on failure
400 Fix the parameters or body per the field list; do not retry unchanged.401 Check the credential format and whether it expired or was rotated.403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
POST /v1/escalate/line-groups/grants
Grant a platform line group to an active reseller
- operationId
grantEscalateLineGroup- Auth
- Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
- Required permissions
All of:node_scheduling.manage
Required features:module.escalate
Description (from the contract)
Only the platform grants, only its own line groups, and only to an active reseller (GET /v1/escalate/grantees). 1.0.35 has one reseller level, so may_regrant must be false (422 escalate_regrant_unsupported); a grantee that is not an active reseller is 422 escalate_grantee_not_reseller; a tenant caller or a line group the platform does not own is 403 escalate_grant_denied.
Request body
application/json · Required:Yes
grantEscalateLineGroup Request body| Name | Type | Required | Description |
|---|
owner_scope_id | string(uuid) | Yes | — |
|---|
line_group_id | string(uuid) | Yes | — |
|---|
grantee_scope_id | string(uuid) | Yes | — |
|---|
may_regrant | boolean | Yes | Must be false in 1.0.35. |
|---|
Responses
grantEscalateLineGroup Responses| Status | Description |
|---|
201 | The grant. Fields:id: string(uuid) owner_scope_id: string(uuid) line_group_id: string(uuid) grantor_scope_id: string(uuid) grantee_scope_id: string(uuid) may_regrant: boolean created_at: string(date-time) |
|---|
400 | Error. |
|---|
401 | Error. |
|---|
403 | Error. |
|---|
404 | Error. |
|---|
409 | Error. |
|---|
422 | Error. |
|---|
503 | Error. |
|---|
What to do on failure
400 Fix the parameters or body per the field list; do not retry unchanged.401 Check the credential format and whether it expired or was rotated.403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
DELETE /v1/escalate/line-groups/grants/{grant_id}
Revoke a grant; the reseller's packages using the line group are withdrawn and their B/C cleared
- operationId
revokeEscalateLineGroupGrant- Auth
- Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
- Required permissions
All of:node_scheduling.manage
Required features:module.escalate
Description (from the contract)
In one transaction: the grant (and anything passed on) is revoked, every published package of the reseller that uses the line group is withdrawn, and B/C pointing at it are cleared (audited in the reseller's scope as package.escalate_policy.grant_revoked). Sold subscriptions keep their snapshot until they expire.
Parameters
revokeEscalateLineGroupGrant Parameters| Name | In | Type | Required | Description |
|---|
grant_id | path | string(uuid) | Yes | — |
|---|
Responses
revokeEscalateLineGroupGrant Responses| Status | Description |
|---|
200 | What the revocation did. Fields:revoked: integer withdrawn_products: array<string(uuid)> cleared_policies: array<string(uuid)> |
|---|
400 | Error. |
|---|
401 | Error. |
|---|
403 | Error. |
|---|
404 | Error. |
|---|
503 | Error. |
|---|
What to do on failure
400 Fix the parameters or body per the field list; do not retry unchanged.401 Check the credential format and whether it expired or was rotated.403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.404 The resource does not exist or belongs to another tenant.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
PUT /v1/escalate/line-groups/{line_group_id}/tier
Mark one of the session scope's own line groups 普通 / 高防 / 无限防
- operationId
putEscalateLineGroupTier- Auth
- Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
- Required permissions
All of:node_scheduling.manage
Required features:module.escalate
Parameters
putEscalateLineGroupTier Parameters| Name | In | Type | Required | Description |
|---|
line_group_id | path | string(uuid) | Yes | — |
|---|
Request body
application/json · Required:Yes
putEscalateLineGroupTier Request body| Name | Type | Required | Description |
|---|
tier | string: normal / high_defense / unlimited | Yes | — |
|---|
Responses
putEscalateLineGroupTier Responses| Status | Description |
|---|
200 | The tier written. Fields:line_group_id: string(uuid) tier: string: normal / high_defense / unlimited |
|---|
400 | Error. |
|---|
401 | Error. |
|---|
403 | Error. |
|---|
404 | Error. |
|---|
503 | Error. |
|---|
What to do on failure
400 Fix the parameters or body per the field list; do not retry unchanged.401 Check the credential format and whether it expired or was rotated.403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.404 The resource does not exist or belongs to another tenant.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list