Operation details

POST /v1/openresty-security/actions/download-cc-image

operationId
queueCCImageDownload
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:openresty_security.manage

Parameters

queueCCImageDownload Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Responses

queueCCImageDownload Responses
StatusDescription
202Durable download_cc_img task queued
401Authentication required
403Permission denied
409Duplicate target or idempotency conflict

What to do on failure

  • 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.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list

GET /v1/openresty-security/configs/global

operationId
getGlobalOpenRestySecurityConfig
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:openresty_security.read

Responses

getGlobalOpenRestySecurityConfig Responses
StatusDescription
200Current redacted configuration document

Fields:id: string(uuid) scope_type: string: global / region / node scope_id: string scope_label?: string revision: integer config: Config key_configured: boolean updated_at: string(date-time) sources?: object

401Authentication required
403Permission denied

What to do on failure

  • 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.

↑ Back to list

PATCH /v1/openresty-security/configs/global

operationId
patchGlobalOpenRestySecurityConfig
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:openresty_security.manage

Description (from the contract)

Applies the smallest auto-save patch. A logical retry must reuse the same Idempotency-Key.

Parameters

patchGlobalOpenRestySecurityConfig Parameters
NameInTypeRequiredDescription
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

patchGlobalOpenRestySecurityConfig Request body
NameTypeRequiredDescription
patchConfigYes—

Responses

patchGlobalOpenRestySecurityConfig Responses
StatusDescription
200Current redacted configuration document

Fields:id: string(uuid) scope_type: string: global / region / node scope_id: string scope_label?: string revision: integer config: Config key_configured: boolean updated_at: string(date-time) sources?: object

400Invalid field, conditional value, range, or relationship
401Authentication required
403Permission denied
409Duplicate target or idempotency conflict
412If-Match revision conflict

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.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 412 The revision changed: read the latest ETag, decide again, then send the new If-Match.

↑ Back to list

GET /v1/openresty-security/effective

operationId
getEffectiveOpenRestySecurityConfig
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:openresty_security.read

Description (from the contract)

Resolves the deterministic node-over-region-over-global configuration.

Parameters

getEffectiveOpenRestySecurityConfig Parameters
NameInTypeRequiredDescription
node_idquerystring(uuid)Yes—

Responses

getEffectiveOpenRestySecurityConfig Responses
StatusDescription
200Current redacted configuration document

Fields:id: string(uuid) scope_type: string: global / region / node scope_id: string scope_label?: string revision: integer config: Config key_configured: boolean updated_at: string(date-time) sources?: object

401Authentication required
403Permission denied
404Target absent or hidden across tenant boundary

What to do on failure

  • 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.

↑ Back to list

GET /v1/openresty-security/overrides

operationId
listOpenRestySecurityOverrides
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:openresty_security.read

Parameters

listOpenRestySecurityOverrides Parameters
NameInTypeRequiredDescription
scope_typequerystring: region / nodeNo—
queryquerystringNo—
pagequeryintegerNo—
page_sizequeryintegerNo—

Responses

listOpenRestySecurityOverrides Responses
StatusDescription
200Stable page ordered by update time

Fields:items: array<Document> page: integer page_size: integer total: integer

401Authentication required
403Permission denied

What to do on failure

  • 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.

↑ Back to list

POST /v1/openresty-security/overrides

operationId
createOpenRestySecurityOverride
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:openresty_security.manage

Parameters

createOpenRestySecurityOverride Parameters
NameInTypeRequiredDescription
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

createOpenRestySecurityOverride Request body
NameTypeRequiredDescription
scope_typestring: region / nodeYes—
scope_idstringYes—
configOverrideConfigYesSparse override allowlist of exactly the 24 observed selectable configuration groups.

Responses

createOpenRestySecurityOverride Responses
StatusDescription
201Current redacted configuration document

Fields:id: string(uuid) scope_type: string: global / region / node scope_id: string scope_label?: string revision: integer config: Config key_configured: boolean updated_at: string(date-time) sources?: object

400Invalid field, conditional value, range, or relationship
401Authentication required
403Permission denied
409Duplicate target or idempotency conflict

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.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list

PATCH /v1/openresty-security/overrides/{id}

operationId
patchOpenRestySecurityOverride
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:openresty_security.manage

Parameters

patchOpenRestySecurityOverride Parameters
NameInTypeRequiredDescription
idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

patchOpenRestySecurityOverride Request body
NameTypeRequiredDescription
patchOverrideConfigYesSparse override allowlist of exactly the 24 observed selectable configuration groups.
removed_fieldsarray<string>No—

Responses

patchOpenRestySecurityOverride Responses
StatusDescription
200Current redacted configuration document

Fields:id: string(uuid) scope_type: string: global / region / node scope_id: string scope_label?: string revision: integer config: Config key_configured: boolean updated_at: string(date-time) sources?: object

400Invalid field, conditional value, range, or relationship
401Authentication required
403Permission denied
404Target absent or hidden across tenant boundary
409Duplicate target or idempotency conflict
412If-Match revision conflict

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.
  • 412 The revision changed: read the latest ETag, decide again, then send the new If-Match.

↑ Back to list

DELETE /v1/openresty-security/overrides/{id}

operationId
deleteOpenRestySecurityOverride
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:openresty_security.manage

Parameters

deleteOpenRestySecurityOverride Parameters
NameInTypeRequiredDescription
idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Responses

deleteOpenRestySecurityOverride Responses
StatusDescription
204Deleted; a replay returns the same result
401Authentication required
403Permission denied
404Target absent or hidden across tenant boundary
412If-Match revision conflict

What to do on failure

  • 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.
  • 412 The revision changed: read the latest ETag, decide again, then send the new If-Match.

↑ Back to list

GET /v1/openresty-security/targets

operationId
searchOpenRestySecurityTargets
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:openresty_security.read

Parameters

searchOpenRestySecurityTargets Parameters
NameInTypeRequiredDescription
scope_typequerystring: region / nodeYes—
queryquerystringNo—
pagequeryintegerNo—
page_sizequeryintegerNo—

Responses

searchOpenRestySecurityTargets Responses
StatusDescription
200Remote node or distinct-region search results

Fields:items: array<Target> page: integer page_size: integer total: integer

401Authentication required
403Permission denied

What to do on failure

  • 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.

↑ Back to list