API reference

/v1/admin/security-ip-lists

4 operations · 4 support API keys

← All groups · First call? Read the tutorial: auth, permissions, requests and responses, common failures

MethodPathSummaryAuth
GET/v1/admin/security-ip-listsList named IP listsAPI keySession
POST/v1/admin/security-ip-listsCreate a named IP listAPI keySession
PUT/v1/admin/security-ip-lists/{list_id}Replace a named IP listAPI keySession
DELETE/v1/admin/security-ip-lists/{list_id}Delete a named IP listAPI keySession

Contract file:api/openapi/v1/control.yaml

Operation details

GET /v1/admin/security-ip-lists

List named IP lists

operationId
listAdminSecurityIPLists
Auth
  • API key: header Authorization: CdncaKey <key_id>.<secret>. Effective permissions are the key scopes intersected with the owner’s current permissions.
  • 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

The contract has no separate permission annotation; see the description below and the 403 response.

Description (from the contract)

Requires security_policies.read. Platform identities only: platform lists, which every tenant may reference.

Responses

listAdminSecurityIPLists Responses
StatusDescription
200Lists ordered own first, then by name.

Fields:items: array<SecurityIPList>

401Authentication failed or the session is invalid.
403The authenticated principal is not allowed to perform the action.
500The request could not be completed because of an internal failure.

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.
  • 500 Outcome unknown: read back by ID or list first, then decide whether to retry with the original Idempotency-Key.

↑ Back to list

POST /v1/admin/security-ip-lists

Create a named IP list

operationId
createAdminSecurityIPList
Auth
  • API key: header Authorization: CdncaKey <key_id>.<secret>. Effective permissions are the key scopes intersected with the owner’s current permissions.
  • 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

The contract has no separate permission annotation; see the description below and the 403 response.

Description (from the contract)

Requires security_policies.manage. Entries are canonicalized (masked, deduplicated, ordered). Audit security.ip_list.create. At most 200 live lists per scope.

Parameters

createAdminSecurityIPList Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYes—

Request body

application/json · Required:Yes

createAdminSecurityIPList Request body
NameTypeRequiredDescription
namestringYes—
descriptionstringNo—
entriesarray<string>Yes—

Responses

createAdminSecurityIPList Responses
StatusDescription
201Created, or an identical request replayed.

Fields:id: string(uuid) name: string description: string entries: array<string> revision: integer platform: boolean updated_at: string(date-time)

400The request body or parameters are invalid.
401Authentication failed or the session is invalid.
403The authenticated principal is not allowed to perform the action.
409The requested state conflicts with an existing resource or idempotency fact.
500The request could not be completed because of an internal failure.

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.
  • 500 Outcome unknown: read back by ID or list first, then decide whether to retry with the original Idempotency-Key.

↑ Back to list

PUT /v1/admin/security-ip-lists/{list_id}

Replace a named IP list

operationId
updateAdminSecurityIPList
Auth
  • API key: header Authorization: CdncaKey <key_id>.<secret>. Effective permissions are the key scopes intersected with the owner’s current permissions.
  • 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

The contract has no separate permission annotation; see the description below and the 403 response.

Description (from the contract)

Requires security_policies.manage and the current revision. Every tenant whose bound WAF policy references the list is republished automatically (system trigger ip_list). Audit security.ip_list.update.

Parameters

updateAdminSecurityIPList Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYes—
list_idpathstring(uuid)Yes—

Request body

application/json · Required:Yes

updateAdminSecurityIPList Request body
NameTypeRequiredDescription
expected_revisionintegerYes—
namestringYes—
descriptionstringNo—
entriesarray<string>Yes—

Responses

updateAdminSecurityIPList Responses
StatusDescription
200Replaced (revision + 1), or an identical request replayed.

Fields:id: string(uuid) name: string description: string entries: array<string> revision: integer platform: boolean updated_at: string(date-time)

400The request body or parameters are invalid.
401Authentication failed or the session is invalid.
403The authenticated principal is not allowed to perform the action.
404The requested resource was not found.
409The requested state conflicts with an existing resource or idempotency fact.
500The request could not be completed because of an internal failure.

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.
  • 500 Outcome unknown: read back by ID or list first, then decide whether to retry with the original Idempotency-Key.

↑ Back to list

DELETE /v1/admin/security-ip-lists/{list_id}

Delete a named IP list

operationId
deleteAdminSecurityIPList
Auth
  • API key: header Authorization: CdncaKey <key_id>.<secret>. Effective permissions are the key scopes intersected with the owner’s current permissions.
  • 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

The contract has no separate permission annotation; see the description below and the 403 response.

Description (from the contract)

Requires security_policies.manage and the current revision. A list any live policy version references is refused (409 ip_list_in_use). Audit security.ip_list.delete.

Parameters

deleteAdminSecurityIPList Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYes—
list_idpathstring(uuid)Yes—
expected_revisionqueryintegerYes—

Responses

deleteAdminSecurityIPList Responses
StatusDescription
204Deleted.
400The request body or parameters are invalid.
401Authentication failed or the session is invalid.
403The authenticated principal is not allowed to perform the action.
404The requested resource was not found.
409The requested state conflicts with an existing resource or idempotency fact.
500The request could not be completed because of an internal failure.

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.
  • 500 Outcome unknown: read back by ID or list first, then decide whether to retry with the original Idempotency-Key.

↑ Back to list