euroNAS

eEKAS REST API Reference

Version 1.0.0 · Generated 2026-10-08 · 285 operations · Billing API updated 2026-10-08

Disclaimer: Use of this API is entirely at the user's own responsibility. API usage is not covered by support.

Getting started

Base URL: https://<server>:18443

Send X-API-Key: <API_KEY> with protected requests. Use a unique Idempotency-Key for retryable mutating requests. Retain the returned X-Correlation-ID for audits and troubleshooting.

Passwords, API keys, access keys, secret keys, tokens, and fencing credentials must use an application/json request body. Secret values in URLs are rejected.

Examples validate the server certificate. For a private CA, add --cacert /path/to/ca.pem.

Product scope

Only operations supported by this product are included; storage and cluster features from other product families are intentionally omitted.

Operation summary

MethodCount
GET104
POST137
PUT3
PATCH3
DELETE38

Contents

S3 administration workflows and billing examples

API

GET /api/docs

Get /api/docs.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/docs'

Responses

StatusMeaning
200Swagger UI
404Documentation disabled

GET /api/docs/openapi-json

Get /api/docs/openapi-json.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/docs/openapi-json'

Responses

StatusMeaning
200Swagger UI static asset

GET /api/docs/swagger-ui-bundle.js

Get /api/docs/swagger-ui-bundle.js.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/docs/swagger-ui-bundle.js'

Responses

StatusMeaning
200Swagger UI static asset

GET /api/docs/swagger-ui-standalone-preset.js

Get /api/docs/swagger-ui-standalone-preset.js.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/docs/swagger-ui-standalone-preset.js'

Responses

StatusMeaning
200Swagger UI static asset

GET /api/docs/swagger-ui.css

Get /api/docs/swagger-ui.css.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/docs/swagger-ui.css'

Responses

StatusMeaning
200Swagger UI static asset

GET /api/openapi.json

Get /api/openapi.json.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/openapi.json'

Responses

StatusMeaning
200OpenAPI 3.1 document
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/openapi.yaml

Get /api/openapi.yaml.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/openapi.yaml'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/groups

Delete /api/v1/groups.

Parameters

ParameterLocationRequiredTypeDescription
group_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/groups?group_name=example-group'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/groups

Get /api/v1/groups.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/groups'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

PATCH /api/v1/groups

Patch /api/v1/groups.

Parameters

ParameterLocationRequiredTypeDescription
gidquerynostringRequest parameter.
group_namequeryyesstringRequest parameter.
new_group_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X PATCH \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/groups?group_name=example-group'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/groups

Post /api/v1/groups.

Parameters

ParameterLocationRequiredTypeDescription
gidquerynostringRequest parameter.
group_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/groups?group_name=example-group'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/jobs

Delete /api/v1/jobs.

Parameters

ParameterLocationRequiredTypeDescription
job_idqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/jobs?job_id=<job_id>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/jobs

read the state and captured output of a long-running API operation.

Parameters

ParameterLocationRequiredTypeDescription
job_idquerynostringRequest parameter.
limitquerynostringRequest parameter.
statusquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/jobs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/mounts

unmount and remove a remote SMB share definition.

Parameters

ParameterLocationRequiredTypeDescription
mount_folderquerynostringRequest parameter.
server_namequerynostringRequest parameter.
share_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/mounts'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/mounts

mount a remote SMB share.

Parameters

ParameterLocationRequiredTypeDescription
domain_namequerynostringRequest parameter.
ip_addressqueryyesstring (ipv4)Request parameter.
mount_folderqueryyesstringRequest parameter.
share_namequeryyesstringRequest parameter.
user_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodynostringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/mounts?ip_address=192.0.2.10&mount_folder=<mount_folder>&share_name=example-share'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/mounts/cloud

mount a cloud bucket through the configured rclone profile.

Parameters

ParameterLocationRequiredTypeDescription
bucketqueryyesstringRequest parameter.
config_pathqueryyesstringRequest parameter.
mount_folderqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/mounts/cloud?bucket=<bucket>&config_path=<config_path>&mount_folder=<mount_folder>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/multi-cluster/license

show the local cluster license and version information.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/multi-cluster/license'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/multi-cluster/shared-iscsi-disk

create a shared iSCSI-backed cluster disk resource.

Parameters

ParameterLocationRequiredTypeDescription
chap_userquerynostringRequest parameter.
portal_ipqueryyesstring (ipv4)Request parameter.
resource_namequeryyesstringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodynostringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/multi-cluster/shared-iscsi-disk?portal_ip=<portal_ip>&resource_name=<resource_name>&target_name=example-target'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/multi-cluster/status

show cluster node and cluster-service status.

Parameters

ParameterLocationRequiredTypeDescription
extendedquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/multi-cluster/status'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/notifications

Get /api/v1/notifications.

Parameters

ParameterLocationRequiredTypeDescription
viewquerynostringOptional alternate representation, such as discovered BMC data.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/notifications'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/notifications

Post /api/v1/notifications.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/notifications'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

PUT /api/v1/notifications

Put /api/v1/notifications.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X PUT \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/notifications'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/product/capabilities

Get /api/v1/product/capabilities.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/product/capabilities'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/rdma/devices

list RDMA devices, ports, modes, and detected IP information.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/rdma/devices'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/rdma/nfs

disable the persistent NFS over RDMA configuration.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/rdma/nfs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/rdma/nfs

report NFS over RDMA configuration, interface, port, and listener state.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/rdma/nfs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/rdma/nfs

enable persistent NFS over RDMA support.

Parameters

ParameterLocationRequiredTypeDescription
portquerynointeger; minimum 0TCP port; NFS over RDMA defaults to 20049.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/rdma/nfs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/rdma/recovery

report RDMA failover recovery service state and its latest recovery activity.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/rdma/recovery'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/rdma/recovery

install or repair and start the persistent RDMA failover recovery service.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/rdma/recovery'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/rdma/reset-port

reset InfiniBand ports through the RDMA management backend.

Parameters

ParameterLocationRequiredTypeDescription
ip_addressquerynostring (ipv4)Request parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/rdma/reset-port'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/rdma/software-roce

enable or disable software RoCE on one network port.

Parameters

ParameterLocationRequiredTypeDescription
modequeryyesstringRequested operating or access mode; accepted values depend on the endpoint.
network_portqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/rdma/software-roce?mode=<mode>&network_port=<network_port>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/rdma/software-roce/enable-all

enable all persistently configured software RoCE devices.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/rdma/software-roce/enable-all'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/s3/buckets

List buckets from the selected S3 service instance using its current credentials.

Parameters

ParameterLocationRequiredTypeDescription
instancequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/s3/buckets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/s3/console

return S3 console settings.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/s3/console'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/s3/console

update the S3 console runtime.

Parameters

ParameterLocationRequiredTypeDescription
actionquerynostringOperation-specific action selector.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/console'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/s3/credentials/rotate

Rotate the administrative access key and secret key for an S3 service instance. The previous credentials stop working immediately, and the response contains the replacement credentials.

Parameters

ParameterLocationRequiredTypeDescription
namequeryyesstringHuman-readable display name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/credentials/rotate?name=<name>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/s3/runtime

control an S3 service runtime.

Parameters

ParameterLocationRequiredTypeDescription
actionquerynostringOperation-specific action selector.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/runtime'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/s3/services

list configured S3 services.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/s3/services'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/s3/services

create an S3 service.

Parameters

ParameterLocationRequiredTypeDescription
scopequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/services'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/s3/status

return S3 health and runtime status.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/s3/status'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/s3/storage

remove S3 storage.

Parameters

ParameterLocationRequiredTypeDescription
scopequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/storage'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/s3/storage

create S3 storage.

Parameters

ParameterLocationRequiredTypeDescription
scopequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/storage'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

PUT /api/v1/s3/storage

import existing S3 storage.

Parameters

ParameterLocationRequiredTypeDescription
actionquerynostringOperation-specific action selector.
scopequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X PUT \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/s3/storage'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ssh-trust

Post /api/v1/ssh-trust.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ssh-trust'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/storage/md

Get /api/v1/storage/md.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/storage/md'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/storage/md

Post /api/v1/storage/md.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/storage/md'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/sync/jobs

Delete /api/v1/sync/jobs.

Parameters

ParameterLocationRequiredTypeDescription
job_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/sync/jobs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/sync/jobs

Get /api/v1/sync/jobs.

Parameters

ParameterLocationRequiredTypeDescription
job_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/sync/jobs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/sync/jobs

Post /api/v1/sync/jobs.

Parameters

ParameterLocationRequiredTypeDescription
job_namequerynostringRequest parameter.
snapshot_replicationquerynostringRequest parameter.
source_sharequerynostringRequest parameter.
target_serverquerynostringRequest parameter.
target_sharequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/sync/jobs'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/system/api-configuration

Get /api/v1/system/api-configuration.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/system/api-configuration'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

PUT /api/v1/system/api-configuration

Put /api/v1/system/api-configuration.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X PUT \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/system/api-configuration'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/system/settings

Post /api/v1/system/settings.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/system/settings'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ups

query the configured UPS and return its current status values.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ups'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ups/snmp-devices

scan and configure an SNMP UPS.

Parameters

ParameterLocationRequiredTypeDescription
ip_addressqueryyesstring (ipv4)Request parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ups/snmp-devices?ip_address=192.0.2.10'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ups/usb-devices

scan for a USB UPS and write a new NUT configuration.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ups/usb-devices'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/volumes

list available volumes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/volumes'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Ceph

DELETE /api/v1/ceph-targets

Delete /api/v1/ceph-targets.

Parameters

ParameterLocationRequiredTypeDescription
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
pool_namequerynostringZFS pool name.
target_namequerynostringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph-targets

Get /api/v1/ceph-targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph-targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets

Post /api/v1/ceph-targets.

Parameters

ParameterLocationRequiredTypeDescription
device_pathquerynostringRequest parameter.
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
pool_namequerynostringZFS pool name.
target_namequerynostringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/activate

Post /api/v1/ceph-targets/activate.

Parameters

ParameterLocationRequiredTypeDescription
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/activate'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/configs

Post /api/v1/ceph-targets/configs.

Parameters

ParameterLocationRequiredTypeDescription
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
pool_namequerynostringZFS pool name.
target_namequerynostringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/configs'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph-targets/connections

Get /api/v1/ceph-targets/connections.

Parameters

ParameterLocationRequiredTypeDescription
target_nqnquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph-targets/connections'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/deactivate

Post /api/v1/ceph-targets/deactivate.

Parameters

ParameterLocationRequiredTypeDescription
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/deactivate'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/initiators

Post /api/v1/ceph-targets/initiators.

Parameters

ParameterLocationRequiredTypeDescription
allowed_initiatorsquerynostringRequest parameter.
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
pool_namequerynostringZFS pool name.
target_namequerynostringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/initiators'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/listeners

Post /api/v1/ceph-targets/listeners.

Parameters

ParameterLocationRequiredTypeDescription
ip_addressquerynostring (ipv4)Request parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/listeners'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/portals/reset

Post /api/v1/ceph-targets/portals/reset.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/portals/reset'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/ports/activate

Post /api/v1/ceph-targets/ports/activate.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/ports/activate'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/ports/manage

Post /api/v1/ceph-targets/ports/manage.

Parameters

ParameterLocationRequiredTypeDescription
ip_addressquerynostring (ipv4)Request parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/ports/manage'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/service/start

Post /api/v1/ceph-targets/service/start.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/service/start'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph-targets/volumes

Post /api/v1/ceph-targets/volumes.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
sizequerynostringRequest parameter.
target_namequerynostringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph-targets/volumes'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage

Get /api/v1/ceph/storage.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage-snapshots

Delete /api/v1/ceph/storage-snapshots.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
resource_namequerynostringRequest parameter.
snapshot_namequerynostringRequest parameter.
typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage-snapshots

Get /api/v1/ceph/storage-snapshots.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
resource_namequerynostringRequest parameter.
typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage-snapshots

Post /api/v1/ceph/storage-snapshots.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
resource_namequerynostringRequest parameter.
retention_daysquerynointeger; minimum 0Request parameter.
typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage-snapshots/expired

Delete /api/v1/ceph/storage-snapshots/expired.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots/expired'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage-snapshots/pools-and-volumes

Get /api/v1/ceph/storage-snapshots/pools-and-volumes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots/pools-and-volumes'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage-snapshots/rollback

Post /api/v1/ceph/storage-snapshots/rollback.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
resource_namequerynostringRequest parameter.
snapshot_namequerynostringRequest parameter.
typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots/rollback'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage-snapshots/schedules

Post /api/v1/ceph/storage-snapshots/schedules.

Parameters

ParameterLocationRequiredTypeDescription
max_snapshotsquerynostringRequest parameter.
resourcesquerynostringRequest parameter.
scheduleTypequerynostringRequest parameter.
startHourquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots/schedules'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage-snapshots/summary

Get /api/v1/ceph/storage-snapshots/summary.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage-snapshots/summary'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/analyse-pgs

Get /api/v1/ceph/storage/analyse-pgs.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/analyse-pgs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/cephfs/attach

Post /api/v1/ceph/storage/cephfs/attach.

Parameters

ParameterLocationRequiredTypeDescription
fs_namequerynostringRequest parameter.
mountpointquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/cephfs/attach'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage/cephfs/detach

Delete /api/v1/ceph/storage/cephfs/detach.

Parameters

ParameterLocationRequiredTypeDescription
fs_namequerynostringRequest parameter.
mountpointquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/cephfs/detach'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/diagnostics

Get /api/v1/ceph/storage/diagnostics.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/diagnostics'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/ec-calculator

Get /api/v1/ceph/storage/ec-calculator.

Parameters

ParameterLocationRequiredTypeDescription
failure_domainquerynostringRequest parameter.
usable_sizequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/ec-calculator'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/health-status

Get /api/v1/ceph/storage/health-status.

Parameters

ParameterLocationRequiredTypeDescription
formatquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/health-status'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/io-performance

Get /api/v1/ceph/storage/io-performance.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/io-performance'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/legacy-osds/convert

Post /api/v1/ceph/storage/legacy-osds/convert.

Deprecated: retained for compatibility.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/legacy-osds/convert'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage/orphan-osd-services

Delete /api/v1/ceph/storage/orphan-osd-services.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/orphan-osd-services'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/osd-drives

Get /api/v1/ceph/storage/osd-drives.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/osd-drives'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage/osd-pool-members

Delete /api/v1/ceph/storage/osd-pool-members.

Parameters

ParameterLocationRequiredTypeDescription
node_namequerynostringRequest parameter.
osd_numberquerynostringRequest parameter.
pool_namequerynostringZFS pool name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/osd-pool-members'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/osd-pool-members

Post /api/v1/ceph/storage/osd-pool-members.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/osd-pool-members'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage/osd-pools

Delete /api/v1/ceph/storage/osd-pools.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/osd-pools'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/osd-pools

Post /api/v1/ceph/storage/osd-pools.

Parameters

ParameterLocationRequiredTypeDescription
data_drivesquerynostringRequest parameter.
ip_addressquerynostring (ipv4)Request parameter.
ip_groupquerynostringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
pool_namequerynostringZFS pool name.
purposequerynostringStorage purpose. Use S3 when creating an eEKAS object-storage drive.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/osd-pools'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/pg-per-pool

Get /api/v1/ceph/storage/pg-per-pool.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/pg-per-pool'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/pool-status

Get /api/v1/ceph/storage/pool-status.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/pool-status'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/rbd-drives

Get /api/v1/ceph/storage/rbd-drives.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/rbd-drives'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage/rbds

Delete /api/v1/ceph/storage/rbds.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
rbd_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/rbds'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/rbds

Post /api/v1/ceph/storage/rbds.

Parameters

ParameterLocationRequiredTypeDescription
SizequerynostringRequest parameter.
pool_namequerynostringZFS pool name.
rbd_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/rbds'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/rbds/clone

Post /api/v1/ceph/storage/rbds/clone.

Parameters

ParameterLocationRequiredTypeDescription
clone_namequerynostringRequest parameter.
new_namequerynostringRequest parameter.
pool_namequerynostringZFS pool name.
rbd_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/rbds/clone'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/rbds/map

Post /api/v1/ceph/storage/rbds/map.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/rbds/map'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/repairs

Post /api/v1/ceph/storage/repairs.

Parameters

ParameterLocationRequiredTypeDescription
actionquerynostringOperation-specific action selector.
confirmedquerynostringRequest parameter.
issue_idquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/repairs'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/s3-ingress-config

Post /api/v1/ceph/storage/s3-ingress-config.

Parameters

ParameterLocationRequiredTypeDescription
zone_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/s3-ingress-config'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/ceph/storage/s3-zones

Delete /api/v1/ceph/storage/s3-zones.

Parameters

ParameterLocationRequiredTypeDescription
zone_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/s3-zones'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/subvolumes/resize

Post /api/v1/ceph/storage/subvolumes/resize.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
sizequerynostringRequest parameter.
volume_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/subvolumes/resize'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/ceph/storage/topology-map

Get /api/v1/ceph/storage/topology-map.

Parameters

ParameterLocationRequiredTypeDescription
formatquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/ceph/storage/topology-map'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/ceph/storage/zfs-volumes

Post /api/v1/ceph/storage/zfs-volumes.

Parameters

ParameterLocationRequiredTypeDescription
pool_namequerynostringZFS pool name.
volume_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/storage/zfs-volumes'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Cluster

POST /api/v1/ceph/cluster

bootstrap Ceph on the configured eEKAS cluster and deploy monitor/manager roles to registered nodes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/ceph/cluster'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster-drives

delete a cluster drive.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequeryyesstringRequest parameter.
typequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-drives?drive_name=<drive_name>&type=<type>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/available/all

show available backing devices across all cluster nodes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/available/all'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/available/local

show locally available cluster drive backing devices.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/available/local'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/check-shared

identify physically shared drives across cluster nodes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/check-shared'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/fc-targets

list FC cluster targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/fc-targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/fc-volumes

list FC cluster volumes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/fc-volumes'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-drives/import-volume

import an existing NAS volume into cluster management.

Parameters

ParameterLocationRequiredTypeDescription
ip_addressqueryyesstring (ipv4)Request parameter.
nodequerynostringCluster node name.
protocolquerynostring; values: http, https, NFS, CIFS, iscsi, nvmeRequest parameter.
volume_pathqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-drives/import-volume?ip_address=192.0.2.10&volume_path=<volume_path>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-drives/ip-address

change the access IP address for a cluster drive.

Parameters

ParameterLocationRequiredTypeDescription
current_ip_addressqueryyesstring (ipv4)Request parameter.
drive_namequeryyesstringRequest parameter.
new_ip_addressqueryyesstring (ipv4)Request parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-drives/ip-address?current_ip_address=<current_ip_address>&drive_name=<drive_name>&new_ip_address=<new_ip_address>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-drives/preferred-node

change the preferred node for a cluster drive.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequeryyesstringRequest parameter.
new_nodequeryyesstringRequest parameter.
shared_data_storagequerynobooleanRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-drives/preferred-node?drive_name=<drive_name>&new_node=<new_node>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/resource-candidates

list suitable cluster drives for resource creation, including capacity, eligibility, physical media and Ceph pool protection mode.

Parameters

ParameterLocationRequiredTypeDescription
MEDIAqueryyesstringRequest parameter.
POOLMODEqueryyesstringRequest parameter.
TOTALSIZEINGBqueryyesstringRequest parameter.
iSCSI_OnlyqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/resource-candidates?MEDIA=<MEDIA>&POOLMODE=<POOLMODE>&TOTALSIZEINGB=<TOTALSIZEINGB>&iSCSI_Only=<iSCSI_Only>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-drives/shared-volumes

list shared cluster volumes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-drives/shared-volumes'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-drives/shared-volumes

create a shared cluster volume.

Parameters

ParameterLocationRequiredTypeDescription
disk_pathqueryyesstringRequest parameter.
drive_namequeryyesstringRequest parameter.
ip_addressqueryyesstring (ipv4)Request parameter.
preferred_nodequerynostringRequest parameter.
purposequeryyesstringStorage purpose. Use S3 when creating an eEKAS object-storage drive.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-drives/shared-volumes?disk_path=<disk_path>&drive_name=<drive_name>&ip_address=192.0.2.10&purpose=<purpose>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/bootstrap

create or resume a three-node eEKAS HA cluster, then initialize node registration for Ceph.

Parameters

ParameterLocationRequiredTypeDescription
cluster_namequeryyesstringRequest parameter.
node1_ipqueryyesstring (ipv4)Request parameter.
node1_replicationqueryyesstringRequest parameter.
node2_ipqueryyesstring (ipv4)Request parameter.
node2_replicationqueryyesstringRequest parameter.
node3_ipqueryyesstring (ipv4)Request parameter.
node3_replicationqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheaderyesstring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/cluster/bootstrap?cluster_name=<cluster_name>&node1_ip=<node1_ip>&node1_replication=<node1_replication>&node2_ip=<node2_ip>&node2_replication=<node2_replication>&node3_ip=<node3_ip>&node3_replication=<node3_replication>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
428Idempotency-Key is required
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/check-system-files

verify and fix system file permissions/ownership.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/check-system-files'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/csync2-config

create or recreate the csync2 cluster file sync configuration.

Parameters

ParameterLocationRequiredTypeDescription
recreatequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/csync2-config'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/fencing

Get /api/v1/cluster/fencing.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/fencing'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/fencing

Post /api/v1/cluster/fencing.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/fencing'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/file-sync/switch

switch the cluster to cluster file sync mode.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/file-sync/switch'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/heartbeat/global-ocfs2

create the global OCFS2 heartbeat infrastructure.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/heartbeat/global-ocfs2'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/heartbeat/initialize-ram-device

initialize the heartbeat RAM device.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/heartbeat/initialize-ram-device'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/import-drives

import non-configured cluster drives.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/import-drives'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/import-resources

import non-configured cluster resources.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/import-resources'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster/ip-groups

delete an empty cluster IP group.

Parameters

ParameterLocationRequiredTypeDescription
group_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ip-groups?group_name=example-group'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/ip-groups

list cluster IP groups and their current members.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/ip-groups'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/ip-groups

create a cluster IP group with an ordered gateway-node failover policy.

Parameters

ParameterLocationRequiredTypeDescription
address_modequerynostringRequest parameter.
group_namequeryyesstringRequest parameter.
ip_addressqueryyesstring (ipv4)Request parameter.
preferred_nodequeryyesstringRequest parameter.
priority_nodesquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ip-groups?group_name=example-group&ip_address=192.0.2.10&preferred_node=<preferred_node>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/ip-groups/clear-move

Post /api/v1/cluster/ip-groups/clear-move.

Parameters

ParameterLocationRequiredTypeDescription
group_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ip-groups/clear-move?group_name=example-group'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/ip-groups/edit

edit IP addresses or the ordered gateway-node policy for a cluster IP group.

Parameters

ParameterLocationRequiredTypeDescription
address_modequerynostringRequest parameter.
group_namequeryyesstringRequest parameter.
ip_addressquerynostring (ipv4)Request parameter.
preferred_nodequerynostringRequest parameter.
priority_nodesquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ip-groups/edit?group_name=example-group'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/ip-groups/move

Post /api/v1/cluster/ip-groups/move.

Parameters

ParameterLocationRequiredTypeDescription
group_namequeryyesstringRequest parameter.
target_nodequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ip-groups/move?group_name=example-group&target_node=<target_node>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster/ipmi-stonith

remove one managed BMC fencing resource and reconcile overall readiness.

Parameters

ParameterLocationRequiredTypeDescription
nodequeryyesstringCluster node name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ipmi-stonith?node=node1'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/ipmi-stonith

report BMC fencing coverage or discovered BMC addresses without changing cluster configuration.

Parameters

ParameterLocationRequiredTypeDescription
viewquerynostringOptional alternate representation, such as discovered BMC data.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/ipmi-stonith'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/ipmi-stonith

create, update, or adopt BMC fencing resources for HA cluster nodes.

Parameters

ParameterLocationRequiredTypeDescription
bmc_admin_userquerynostringRequest parameter.
create_stonithquerynostringRequest parameter.
enable_stonithquerynostringRequest parameter.
ipmi_channelquerynostringRequest parameter.
ipmi_channelsquerynostringRequest parameter.
ipmi_ipqueryyesstring (ipv4)Request parameter.
ipmi_mapquerynostringRequest parameter.
ipmi_user_idquerynostringRequest parameter.
nodequerynostringCluster node name.
provision_bmc_userquerynostringRequest parameter.
stonith_userquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
bmc_admin_passJSON bodynostringRequest parameter.
stonith_passJSON bodynostringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"bmc_admin_pass":"<bmc_admin_pass>","stonith_pass":"<stonith_pass>"}' \
  'https://<server>:18443/api/v1/cluster/ipmi-stonith?ipmi_ip=<ipmi_ip>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/join/add-node

add a new node to an existing cluster.

Parameters

ParameterLocationRequiredTypeDescription
heartbeat_ipqueryyesstring (ipv4)Request parameter.
node_ipqueryyesstring (ipv4)Request parameter.
replication_ipqueryyesstring (ipv4)Request parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheaderyesstring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/cluster/join/add-node?heartbeat_ip=<heartbeat_ip>&node_ip=<node_ip>&replication_ip=<replication_ip>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
428Idempotency-Key is required
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/join/dual

join a node into a dual-node cluster.

Parameters

ParameterLocationRequiredTypeDescription
my_heartbeatqueryyesstringRequest parameter.
my_replicationqueryyesstringRequest parameter.
remote_heartbeatqueryyesstringRequest parameter.
remote_replicationqueryyesstringRequest parameter.
use_folderquerynobooleanRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheaderyesstring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/cluster/join/dual?my_heartbeat=<my_heartbeat>&my_replication=<my_replication>&remote_heartbeat=<remote_heartbeat>&remote_replication=<remote_replication>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
428Idempotency-Key is required
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/join/info

inspect a remote node and collect cluster join information.

Parameters

ParameterLocationRequiredTypeDescription
ip_addressqueryyesstring (ipv4)Request parameter.
user_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/cluster/join/info?ip_address=192.0.2.10&user_name=<user_name>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/join/multi

join a node into a multi-node cluster.

Parameters

ParameterLocationRequiredTypeDescription
my_heartbeatqueryyesstringRequest parameter.
my_replicationqueryyesstringRequest parameter.
remote_heartbeatqueryyesstringRequest parameter.
remote_replicationqueryyesstringRequest parameter.
use_folderquerynobooleanRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheaderyesstring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/cluster/join/multi?my_heartbeat=<my_heartbeat>&my_replication=<my_replication>&remote_heartbeat=<remote_heartbeat>&remote_replication=<remote_replication>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
428Idempotency-Key is required
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/maintenance

Get /api/v1/cluster/maintenance.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/maintenance'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/maintenance

Post /api/v1/cluster/maintenance.

Parameters

ParameterLocationRequiredTypeDescription
confirmquerynostringRequest parameter.
nodequerynostringCluster node name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/maintenance'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/monitor

Get /api/v1/cluster/monitor.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/monitor'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/name

change the cluster base name.

Parameters

ParameterLocationRequiredTypeDescription
newnamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/name?newname=<newname>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/non-configured-resources

scan for resources present on the nodes but missing in cluster configuration.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/non-configured-resources'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/ping-ips

ping configured cluster IPs locally or across nodes.

Parameters

ParameterLocationRequiredTypeDescription
local_onlyquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/ping-ips'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/push-system-files

push this node's system files to the other nodes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/push-system-files'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/ra-monitor-timeouts

reconfigure resource-agent monitor intervals/timeouts.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/ra-monitor-timeouts'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster/resources

delete a cluster resource.

Parameters

ParameterLocationRequiredTypeDescription
lun_numberquerynointeger; minimum 0Request parameter.
resource_namequeryyesstringRequest parameter.
resource_typequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/resources?resource_name=<resource_name>&resource_type=<resource_type>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/resources

list cluster resources relevant to storage/share targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/resources'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster/resources/move

clear the temporary `cli-prefer`/`cli-ban` constraint created by a move without deleting permanent preferred-node constraints.

Parameters

ParameterLocationRequiredTypeDescription
resource_namequeryyesstringRequest parameter.
wait_secondsquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/resources/move?resource_name=<resource_name>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/resources/move

return the resource's current node and whether a temporary Pacemaker move constraint is active.

Parameters

ParameterLocationRequiredTypeDescription
resource_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/resources/move?resource_name=<resource_name>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/resources/move

move a Pacemaker resource to a configured cluster node and wait for placement to complete.

Parameters

ParameterLocationRequiredTypeDescription
node_namequeryyesstringRequest parameter.
resource_namequeryyesstringRequest parameter.
run_asyncquerynostringRequest parameter.
wait_secondsquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/resources/move?node_name=<node_name>&resource_name=<resource_name>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/resources/rename

rename a cluster resource.

Parameters

ParameterLocationRequiredTypeDescription
current_namequeryyesstringRequest parameter.
new_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/resources/rename?current_name=<current_name>&new_name=<new_name>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/resources/resize

resize a cluster resource.

Parameters

ParameterLocationRequiredTypeDescription
lun_numberquerynointeger; minimum 0Request parameter.
new_sizequeryyesstringRequest parameter.
resource_namequeryyesstringRequest parameter.
resource_typequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/resources/resize?new_size=<new_size>&resource_name=<resource_name>&resource_type=<resource_type>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/resources/upgrade

upgrade legacy cluster resource ordering/constraint syntax.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/resources/upgrade'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster/status

return cluster and CEPH/node status information.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster/status'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster/sync-system-files

synchronize system files from the newest node.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster/sync-system-files'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Cluster Shares

DELETE /api/v1/cluster-shares

delete a cluster share.

Parameters

ParameterLocationRequiredTypeDescription
share_namequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-shares?share_name=example-share'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-shares

list cluster shares.

Parameters

ParameterLocationRequiredTypeDescription
capabilitiesquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-shares'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-shares

create a cluster share.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequeryyesstringRequest parameter.
file_systemqueryyesstringRequest parameter.
ip_groupqueryyesstringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
protocolsqueryyesstringRequest parameter.
share_namequeryyesstringRequest parameter.
sizequeryyesstringRequest parameter.
sws_sharequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-shares?drive_name=<drive_name>&file_system=<file_system>&ip_group=<ip_group>&protocols=<protocols>&share_name=example-share&size=<size>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-shares/ceph

list Ceph-backed cluster shares.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-shares/ceph'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster-shares/sws

delete an SWS cluster share resource.

Parameters

ParameterLocationRequiredTypeDescription
sws_sharequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-shares/sws?sws_share=<sws_share>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-shares/sws

create an SWS cluster share resource.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequerynostringRequest parameter.
main_share_namequeryyesstringRequest parameter.
sws_sharequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-shares/sws?main_share_name=<main_share_name>&sws_share=<sws_share>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Cluster iSCSI

GET /api/v1/cluster-iscsi/alua

list the preferred portal and current optimized gateway for every clustered iSCSI LUN.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-iscsi/alua'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-iscsi/alua

validate and reconcile ALUA multipath for a distributed IP Group.

Parameters

ParameterLocationRequiredTypeDescription
ip_groupqueryyesstringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-iscsi/alua?ip_group=<ip_group>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/cluster-iscsi/targets

Delete /api/v1/cluster-iscsi/targets.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequeryyesstringRequest parameter.
drive_typequeryyesstring; values: ceph, lvmRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
target_typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-iscsi/targets?drive_name=<drive_name>&drive_type=ceph&target_name=example-target'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/cluster-iscsi/targets

Get /api/v1/cluster-iscsi/targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/cluster-iscsi/targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-iscsi/targets

Post /api/v1/cluster-iscsi/targets.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequeryyesstringRequest parameter.
drive_typequeryyesstring; values: ceph, lvmRequest parameter.
ip_groupqueryyesstringIP Group that supplies service addresses and an ordered, selectable subset of eligible gateway nodes. Multiple distributed addresses can balance SMB, NFS or S3 client connections when published under one DNS name.
sizequeryyesstringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
target_runtimequerynostring; values: coordinator, raRequest parameter.
target_typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-iscsi/targets?drive_name=<drive_name>&drive_type=ceph&ip_group=<ip_group>&size=<size>&target_name=example-target'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/cluster-iscsi/targets/extend

Post /api/v1/cluster-iscsi/targets/extend.

Parameters

ParameterLocationRequiredTypeDescription
drive_namequerynostringRequest parameter.
new_sizequerynostringRequest parameter.
target_namequerynostringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/cluster-iscsi/targets/extend'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Fibre Channel

DELETE /api/v1/fc/access

delete an unused FC host or group definition.

Parameters

ParameterLocationRequiredTypeDescription
groupsqueryyesstringComma-separated FC host-group identifiers.
hostsqueryyesstringComma-separated FC host identifiers.
idqueryyesstringStable host or group identifier.
kindqueryyesstringRegistry type or result category requested by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/access?groups=<groups>&hosts=<hosts>&id=<id>&kind=<kind>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/fc/access

list saved FC hosts or host groups, detected initiators, or the.

Parameters

ParameterLocationRequiredTypeDescription
kindquerynostringRegistry type or result category requested by the operation.
targetquerynostringCluster FC target resource identifier.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/fc/access'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/fc/access

create or update hosts/groups, or apply unrestricted/restricted LUN access to a cluster FC target.

Parameters

ParameterLocationRequiredTypeDescription
actionqueryyesstringOperation-specific action selector.
idquerynostringStable host or group identifier.
namequerynostringHuman-readable display name.
valuesquerynostringComma-separated WWPN or membership values, depending on action.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/access?action=<action>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/fc/hbas

list detected Fibre Channel adapters, port identity, link state, active mode, serial information, and firmware.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/fc/hbas'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/fc/interrupt-coalescing

apply the fixed FC interrupt coalescing settings used by the CLI.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/interrupt-coalescing'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/fc/luns

list configured Fibre Channel LUN mappings.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/fc/luns'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/fc/mode

report runtime and persistent FC mode on every cluster node.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/fc/mode'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/fc/mode

persistently enable FC target mode across all cluster nodes.

Parameters

ParameterLocationRequiredTypeDescription
modequeryyesstringRequested operating or access mode; accepted values depend on the endpoint.
targetqueryyesstringCluster FC target resource identifier.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/mode?mode=<mode>&target=<target>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

DELETE /api/v1/fc/targets

remove an FC target through the GUI-compatible deletion workflow.

Parameters

ParameterLocationRequiredTypeDescription
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
volume_groupqueryyesstringBacking ZFS pool or LVM volume group.
volume_typequeryyesstringBacking storage type: zfs or volume.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/targets?target_name=example-target&volume_group=<volume_group>&volume_type=<volume_type>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/fc/targets

list current Fibre Channel targets, LUN numbers, backing pools,.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/fc/targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/fc/targets

create a Fibre Channel target using the same validated workflow as the management GUI.

Parameters

ParameterLocationRequiredTypeDescription
portsqueryyesstringComma-separated FC port WWPNs that remain assigned to the target.
size_gbqueryyesstringRequested capacity in GiB.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
volume_groupqueryyesstringBacking ZFS pool or LVM volume group.
volume_typequeryyesstringBacking storage type: zfs or volume.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/targets?ports=<ports>&size_gb=<size_gb>&target_name=example-target&volume_group=<volume_group>&volume_type=<volume_type>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/fc/targets/expand

expand an existing FC target while retaining its current port assignments.

Parameters

ParameterLocationRequiredTypeDescription
current_size_gbqueryyesstringCurrent target capacity in GiB.
new_size_gbqueryyesstringNew target capacity in GiB; shrinking is rejected.
portsquerynostringComma-separated FC port WWPNs that remain assigned to the target.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
volume_groupqueryyesstringBacking ZFS pool or LVM volume group.
volume_typequerynostringBacking storage type: zfs or volume.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/fc/targets/expand?current_size_gb=<current_size_gb>&new_size_gb=<new_size_gb>&target_name=example-target&volume_group=<volume_group>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

NVMe

DELETE /api/v1/nvme-targets

remove an NVMe target.

Parameters

ParameterLocationRequiredTypeDescription
remove_volumequerynostringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
volume_typequerynostringBacking storage type: zfs or volume.
zfsquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets?target_name=example-target'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/nvme-targets

list configured NVMe targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/nvme-targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets

create an NVMe target.

Parameters

ParameterLocationRequiredTypeDescription
device_pathqueryyesstringRequest parameter.
ip_addressquerynostring (ipv4)Request parameter.
port_numberquerynointeger; minimum 0Request parameter.
serial_numberquerynostringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
transport_typequerynostringRequest parameter.
uuidquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets?device_path=<device_path>&target_name=example-target'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/activate

activate currently configured NVMe targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/activate'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/activate-ports

activate NVMe target ports.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/activate-ports'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/allowed-initiators

apply allowed initiator rules for an NVMe target.

Parameters

ParameterLocationRequiredTypeDescription
NQNqueryyesstringRequest parameter.
permission_filequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/allowed-initiators?NQN=<NQN>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/nvme-targets/connections

list initiator connections for one NVMe target.

Parameters

ParameterLocationRequiredTypeDescription
nqnquerynostringRequest parameter.
target_nqnqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/nvme-targets/connections?target_nqn=<target_nqn>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/manage-port

call the port-management alias for NVMe targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/manage-port'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/reset-portals

reset NVMe target portals to the currently allowed portal set.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/reset-portals'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/service/start

start the NVMe target service.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/service/start'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/service/stop

stop the NVMe target service.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/service/stop'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-targets/volumes

create an NVMe backing volume.

Parameters

ParameterLocationRequiredTypeDescription
sizequeryyesstringRequest parameter.
volume_groupqueryyesstringBacking ZFS pool or LVM volume group.
volume_namequeryyesstringRequest parameter.
volume_typequerynostringBacking storage type: zfs or volume.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-targets/volumes?size=<size>&volume_group=<volume_group>&volume_name=<volume_name>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

NVMe Initiator

POST /api/v1/nvme-initiators/connect

connect to an NVMe target.

Parameters

ParameterLocationRequiredTypeDescription
NQNqueryyesstringRequest parameter.
portal_ipqueryyesstring (ipv4)Request parameter.
portal_portquerynointeger; minimum 0Request parameter.
transport_typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-initiators/connect?NQN=<NQN>&portal_ip=<portal_ip>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-initiators/connect-configured

connect all persistently configured NVMe initiator targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-initiators/connect-configured'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/nvme-initiators/connections

list current NVMe initiator connections.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/nvme-initiators/connections'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-initiators/disconnect

disconnect an NVMe target.

Parameters

ParameterLocationRequiredTypeDescription
NQNqueryyesstringRequest parameter.
keep_configquerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-initiators/disconnect?NQN=<NQN>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/nvme-initiators/discover

discover NVMe targets on a portal.

Parameters

ParameterLocationRequiredTypeDescription
port_numberquerynointeger; minimum 0Request parameter.
portal_ipqueryyesstring (ipv4)Request parameter.
transport_typequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/nvme-initiators/discover?portal_ip=<portal_ip>'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Object Storage

S3 administration workflows

Updated: 2026-10-08. This chapter is part of the eEKAS API reference.

8 October 2026. Administrative API for eEKAS-to-eEKAS sync, other S3 destinations, backup/recovery, customers, billing and logging. Requests require an API key; mutating object-storage requests require admin or s3-admin. These endpoints are not a customer self-service portal.

Requests and job handling

Use HTTPS and the X-API-Key header. Send credentials, passphrases, invitation bundles and encoded credentials in an application/json body. Base64 values are not encrypted. URL secrets are rejected. Use an Idempotency-Key to replay identical mutating requests safely. A 202 response contains an API job ID and status URL; poll GET /api/v1/jobs?job_id=... until complete or failed. Cancellation uses DELETE /api/v1/jobs?job_id=....

An API job ID differs from a restore-worker job ID. Setup and recovery-bundle export/import run as API jobs. Restore previews return a restore-worker job ID; use backup status and backup control for that job. Configuration apply queues an API job which submits configuration recovery to the restore worker; then monitor backup status.

eEKAS-to-eEKAS sync

GET /api/v1/object-storage/replication lists relationships. Add relationship_id for status. Views are invitations, audit, buckets, backfill and destinations. Bucket metrics accept marker, query and limit (1–50); follow the backend continuation marker rather than loading every bucket into a browser. The destinations view discovers local service instances.

POST /api/v1/object-storage/replication accepts the following actions and their OpenAPI parameters: enable; pause/resume; set_mode; set_policy; set_advanced_policy; refresh_topology; promote; dr_test; recover_gateway; remove_site; decommission_local; credential rotation/adoption/activation/finalization; backfill start/pause/resume/cancel; recovery_validate; compliance_report; orchestrate_recovery; run_archive; revoke_invitation; purge_invitations. Selected native buckets and backfill buckets accept JSON arrays or semicolon-separated strings. Existing fencing, conflict acknowledgements and deletion confirmations are enforced by the backend.

{"action":"set_policy","relationship_id":"RELATIONSHIP_ID","bucket_scope":"all","rpo_seconds":300,"allow_untrusted":false}

Invitation endpoints are /replication/invitations and /replication/invitations/redeem. Joining uses POST /replication/join; validate_only:true performs preflight. Supply a public ca_pem certificate, a server-local ca_file, or an explicitly chosen allow_untrusted exception. Uploaded certificates are validated and held in private temporary files until the request finishes. Invitation and passphrase values preserve commas and Unicode.

Sync and backup to other S3 instances

A scheduled external mirror is configured by set_advanced_policy using config_b64 and started by run_archive. This workflow follows the mirror/deletion policy. A generation-preserving backup has its own catalogue, checkpoints and recovery bundle; use the backup endpoints below when independent disaster recovery is required. Direct mode reads completed object generations from the source. History mode uses an intermediate archive zone to retain generations. Direct mode cannot retrieve a generation overwritten or deleted before capture.

All backup operations are exposed at /api/v1/object-storage/replication/backups. POST bodies contain action and a structured request. The worker retains the same validation and protection rules as the GUI. Successful synchronous responses contain status and data.

Action Request / behaviour
backup_discover {}; discovers local realms, zones and worker hosts.
backup_bucket_search realm, source_zone, query, cursor, limit. Maximum 100 results per page; follow next_cursor. An index may initially report building.
backup_list {}; returns saved configurations with credentials removed.
backup_save id; new configurations also require mode, realm, zonegroup, source_zone, host, source_endpoint, endpoint, bucket and destination access_key/secret_key. Whole-zone scope uses bucket_scope=zone and includes future buckets. Individual scope uses bucket_scope=selected and a buckets array. History mode additionally needs archive_zone, archive_endpoint, gateway_certificate and gateway_private_key. Editing retains omitted settings and secrets; changing storage identity requires a new ID.
backup_setup id. Queued API job; applies settings on the selected worker host and starts the worker.
backup_status id. Includes worker activity, progress, scans, jobs, checkpoint, event queue and protection-check state.
backup_checkpoints id and optional continuation_token. Returns bounded items, display_name (UTC date plus original ID in brackets), and another continuation_token when present.
backup_preview id, checkpoint, target_endpoint, target_access_key/target_secret_key. Optional source_bucket, object_key, prefix or object_id narrows selection. target_prefix defaults to recovery-. target_bucket requires a source_bucket. Returns a worker job_id; wait for preview_ready and review the preview.
backup_control id and control. Without job_id: pause/resume backup. With job_id: start/pause/resume/cancel recovery. Starting recovery requires confirm=job_id after review.
backup_bundle_export id, bundle_password (at least 16 characters). Queued API job. Download the encrypted result from /replication/backups/bundle?job_id=API_JOB_ID after completion.
backup_bundle_import id, bundle_b64, bundle_password. Queued API job. Use an unused archive ID on a replacement node; imports a recovery-only configuration.
backup_configuration_preview id, job_id. Reviews owner and bucket configuration recovery from the imported bundle.
backup_configuration_apply id, job_id, confirm=job_id, target_realm, target_zone. Queued API job; monitor the restore worker for configuration_complete.

Optional backup settings include concurrency (1–8), interval (10–3600 seconds), catalog_interval (minimum 60 seconds, default 3600), staging_limit, recall_timeout, scale_enabled, protection_concurrency and lock_check_interval. source_ca_pem supplies the source CA; destination_ca_pem supplies a private destination CA without disabling certificate verification. target_ca_pem supplies a recovery-destination CA. Passphrases and all private keys stay in JSON bodies.

{
  "action": "backup_save",
  "request": {
    "id": "offsite-backup", "mode": "direct",
    "realm": "REALM", "zonegroup": "ZONEGROUP", "source_zone": "SOURCE_ZONE",
    "host": "WORKER_HOST", "source_endpoint": "https://source.example:8443",
    "endpoint": "https://backup.example", "bucket": "archive-target",
    "access_key": "DESTINATION_ACCESS_KEY", "secret_key": "DESTINATION_SECRET_KEY",
    "bucket_scope": "zone", "catalog_interval": 3600, "scale_enabled": true
  }
}

The worker host is the server running transfer, catalogue and recovery jobs. Send configuration/start requests to that host. The backups route accepts a bounded 24 MiB JSON body, enough for the worker's 16 MiB encrypted recovery-bundle limit after base64 encoding. Ordinary routes retain the configured body limit, normally 1 MiB. Bundle export uses background work and a separate download endpoint, so job output truncation cannot corrupt the downloaded bundle.

WORM sources remain protected. A WORM or unclassified backup cannot overwrite an existing recovery bucket; verified protection metadata is required and protected content uses new recovery buckets. Recovery retains active retention and legal holds according to backend checks. Configuration recovery needs a separate reviewed confirmation, and automatic lifecycle expiration stays disabled. External target tape completion remains unknown to eEKAS.

Customers, storage sampling and billing

/api/v1/object-storage/customers supports GET/POST/PATCH/DELETE for customer metadata, quota and storage/upload/download prices. POST /customers/usage samples storage and collects traffic. Schedule storage sampling separately; the five-minute traffic collector does not sample storage peaks. Inspect error_count, errors and traffic_error even when HTTP status is 200.

POST /customers/adopt registers an existing replicated or recovered user/bucket without recreating data, keys or quotas. Supply customer_id, customer_name, quota_gb, site, bucket and uid; the existing bucket owner must match uid. Use primary metadata including prices, generation_id and created_at when appropriate. quota_gb records the existing agreed quota; adoption does not enforce or change it. PATCH can explicitly change quota later. Adopted registrations default to registration-only deletion when purge_data is omitted; explicit purge_data=true remains destructive. Existing customer creation retains its existing deletion behaviour.

GET /billing, /billing/users and /billing/export accept inclusive UTC period_start/period_end, with customer_id or uid filters where supported. GB means GiB (1073741824 bytes). A selected range has one sampled storage peak and minimum charge. Reports use current prices/status; keep approved exports because this is not an immutable issued-invoice ledger. suspended remains billable and does not revoke S3 access.

Billing across installations

GET /billing/federation reads the explicit billing configuration. POST /billing/federation configures HTTPS peers and ownership groups using a body-only request object. Each group maps a single logical realm/user/bucket across distinct accounting zones and identifies one pricing owner. Use customer adoption on replicas first. Peer API keys are stored privately and removed from responses. Omitting a key preserves it only for an unchanged peer ID and origin. TLS verification is mandatory; supply ca_pem for private CAs. Redirects are rejected.

{"request":{
  "peers":[{"id":"site-b","url":"https://site-b.example:18443","api_key":"PEER_API_KEY","ca_pem":"PUBLIC_CA_PEM"}],
  "groups":[{"id":"customer-a","owner":{"peer":"local","customer_id":"customer-a"},
    "members":[{"peer":"local","customer_id":"customer-a"},{"peer":"site-b","customer_id":"customer-a"}]}]
}}

POST /billing/federation/report takes {"request":{"period_start":"2026-09-01","period_end":"2026-09-30"}}. It charges the maximum logical storage peak once, adds traffic from distinct zones, and uses the pricing owner's tariffs/status. Totals remain separated by currency. Missing counters produce null amounts, provisional/incomplete coverage remains visible, and unavailable peers or duplicate accounting zone IDs fail the report. Reaching a peer does not make its recent traffic final.

Consolidation is opt-in. Customer registries, tariff changes and historical ledgers are not silently copied by object replication. Retain customer exports and approved reports off the primary installation. Changing billing ownership after a disaster requires review; recovery of object content does not reconstruct a lost billing ledger. There is no automatic accounting failover or automatic invoice finalization.

Traffic accounting and access logs

GET /traffic reads tracking status; POST /traffic enables a selected site; POST /traffic/collect collects counters. Enabling tracking may restart gateways. Accounting begins at a full UTC-hour boundary; recently flushed hours remain provisional. Amounts measure gateway S3 bytes, not all network/WAN bytes. Managed archive source reads use dedicated system accounts and are excluded from gateway customer usage logs. Caller-supplied source credentials must be system credentials; customer keys are rejected to prevent internal archive reads being charged to customers. Native synchronization already uses system requests.

External destination uploads and recovery requests are accounted by their destination. If an eEKAS destination bucket is registered for billing and ordinary customer credentials write or restore into it, those destination transfers can be billable. Source-read exclusion does not disable destination accounting.

Endpoint Operation
GET /access-logs Logging level, retention and service state; optional site for applicable providers.
POST /access-logs level=off/standard/detailed; retention_days; optional site. Uses the GUI backend and can restart gateways. Provider-specific restrictions apply.
GET /access-logs/export days=0/1/7/30/90/365 (default 7); optional site. Returns JSON log contents with filename and MIME type.
POST /access-logs/clear confirm=clear-access-logs; optional site. Existing traffic-billing protections prevent erasing required accounting logs.
GET /usage Legacy raw usage view with uid, start, end and show_entries; use traffic/billing APIs for coverage-aware accounting.

Endpoint prefixes above are /api/v1/object-storage. OpenAPI JSON/YAML and the generated Python SDK include the new routes and replication parameters.

Customer management and billing examples

Updated: 2026-10-08. Applies to the eEKAS S3 implementation. The existing product API usage disclaimer also applies.

Authentication and request conventions

Use the configured HTTPS API listener, normally https://<server>:18443, and send X-API-Key on every request. Login credentials for the web GUI are not API keys. The listener must be enabled separately; the test listener was temporary. Validate the appliance certificate in production (--cacert <CA_FILE> where needed). Examples use placeholders, not appliance credentials.

Customer metadata and billing options below use URL query parameters. Percent-encode values with --data-urlencode. Supply a unique Idempotency-Key on retryable mutations; repeat the same request and key to replay its original response. Provisioning replays include the same secret-key response, so protect API responses. Do not place credentials in URLs. X-Correlation-ID is optional and is returned for tracing.

The s3-admin and admin roles can perform these mutations. A read-only key can read reports and tracking status but cannot provision, edit, collect or activate tracking. Product guards restrict these object-storage endpoints to applicable products.

Operations

Method Path Result
GET /api/v1/object-storage/customers Customer list; optional paired billing dates
POST /api/v1/object-storage/customers Provision customer, user, bucket and quota; 201
PATCH /api/v1/object-storage/customers Change metadata, quota and billing settings
DELETE /api/v1/object-storage/customers Remove registration; optional destructive purge
POST /api/v1/object-storage/customers/usage Storage snapshots plus traffic collection
GET /api/v1/object-storage/traffic Tracking state for all sites or one site
POST /api/v1/object-storage/traffic Queue activation for required site; 202
POST /api/v1/object-storage/traffic/collect Traffic collection for all sites or one site
GET /api/v1/object-storage/billing Per-customer JSON report
GET /api/v1/object-storage/billing/export Same report with CSV text and filename
GET /api/v1/object-storage/billing/users UID/site summary with CSV text and filename

All billing dates use YYYY-MM-DD. Report endpoints require both period_start and period_end; the customer list accepts neither or both. Dates are inclusive in UTC and start must not exceed end. Reports and per-customer exports accept customer_id and uid; UID summary accepts uid.

Provision and edit

Creation requires customer_id, customer_name and a positive integer quota_gb. Optional fields are customer_number, email, site, bucket, service_type (s3 or s3_nextcloud), currency, price_per_gb, minimum_charge, billing_status, charge_uploads, charge_downloads, upload_price_per_gb and download_price_per_gb. Site defaults to the backend default site; bucket defaults to the generated customer bucket. Currency defaults to EUR and storage prices to zero. Traffic flags accept lowercase true or false and prices must be nonnegative. On Ceph, upload charging defaults off, download charging defaults on, and both traffic prices default to zero. Enabling tracking and configuring a price are separate operations.

curl --cacert <CA_FILE> -X POST -G \
  -H 'X-API-Key: <API_KEY>' -H 'Idempotency-Key: <REQUEST_ID>' \
  --data-urlencode 'customer_id=example-001' \
  --data-urlencode 'customer_name=Example Customer' \
  --data-urlencode 'quota_gb=100' --data-urlencode 'site=<SITE>' \
  --data-urlencode 'price_per_gb=0.20' --data-urlencode 'minimum_charge=5' \
  --data-urlencode 'charge_uploads=false' --data-urlencode 'charge_downloads=true' \
  --data-urlencode 'download_price_per_gb=0.05' \
  'https://<server>:18443/api/v1/object-storage/customers'

Creation returns status, customer and credentials containing access_key and secret_key. Store the secret securely; customer lists do not return it. Use the separately configured S3 endpoint to transfer objects, not the management API port.

PATCH requires customer_id and accepts the creation billing/metadata fields except site and bucket. Omitted fields stay unchanged. Set a price to 0 or a flag to false explicitly to disable charging. Quota edits update the actual Ceph bucket quota; validate it through GET /api/v1/object-storage/quotas?quota_scope=bucket&bucket=<BUCKET> and inspect data.bucket_quota.enabled and max_size (bytes).

Billing statuses are active, suspended, trial, cancelled, and do_not_bill. Active and suspended are billable; the other three produce zero charges. These labels do not revoke S3 access. Changing current prices or billing status recalculates historical reports. Preserve approved billing exports.

DELETE requires customer_id. Without purge_data=true it removes registration; a purge also deletes customer S3 data and its user. Purging is destructive. Recreating an ID creates a new generation and does not inherit its previous storage peak.

Traffic tracking and polling

curl --cacert <CA_FILE> -X POST -G \
  -H 'X-API-Key: <API_KEY>' -H 'Idempotency-Key: <REQUEST_ID>' \
  --data-urlencode 'site=<SITE>' \
  'https://<server>:18443/api/v1/object-storage/traffic'

curl --cacert <CA_FILE> -G -H 'X-API-Key: <API_KEY>' \
  --data-urlencode 'site=<SITE>' \
  'https://<server>:18443/api/v1/object-storage/traffic'

Activation returns HTTP 202 with status=ok, phase=queued and a message. It configures RGW usage logging and may restart gateway services. Poll GET until the selected site is active; inspect failure messages rather than assuming that 202 means activation is complete. Repeating activation on an active site preserves its original accounting boundary.

GET returns status and sites. Each site contains site, phase (disabled, enabling, active, or error), start, last_collected, message and warnings. The two time fields are Unix epoch seconds; zero indicates no recorded boundary/collection. Warnings may be null or an array.

Tracking and newly registered customer traffic accounting begin at the next full UTC hour. Earlier traffic is not billed. The collector counts RGW request and response bytes, including supported failed operations; it does not measure NIC totals, replication or physical storage overhead. The latest hours are provisional while RGW logs flush. Initial historical backfill is bounded per collection and can require repeated runs.

POST /api/v1/object-storage/traffic/collect accepts optional site and returns status=ok on success. It uses the existing distributed lease and hourly ledger, so retries do not double-count bytes. A concurrent operation may temporarily fail to acquire the lease; retry later. The five-minute collector timer captures traffic only. Disabling tracking or clearing protected usage logs is intentionally unsupported, including through the API.

Storage snapshots and billing reports

POST /api/v1/object-storage/customers/usage captures storage and also collects traffic. Its response includes count, error_count, collected, errors and traffic_error. HTTP 200 can include partial failures: check these fields. Schedule this endpoint at the storage sampling cadence you require. Writes and deletions between snapshots can be missed by sampled peak billing; the traffic timer does not supply storage snapshots.

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/customers/usage'

curl --cacert <CA_FILE> -G -H 'X-API-Key: <API_KEY>' \
  --data-urlencode 'period_start=2026-10-01' \
  --data-urlencode 'period_end=2026-10-31' \
  --data-urlencode 'customer_id=example-001' \
  'https://<server>:18443/api/v1/object-storage/billing/export'

GB means 1,073,741,824 bytes. For a billable customer:

storage_amount = max(sampled_peak_GB * price_per_gb, minimum_charge)

amount = storage_amount + upload_amount + download_amount

Each monetary component rounds to three decimals. Upload/download amounts use measured traffic and their prices when their charging flags are enabled. The minimum charge applies to storage only. A range spanning several months uses one peak and one minimum; it is not the sum of separate monthly invoices. Current quota and current stored bytes are separate from the selected period peak.

Billing JSON contains status, billing_mode, period_start, period_end, total, total_amount and rows. Rows include customer metadata and pricing, peak_used_gb, billable_gb, latest_object_count, storage_amount, uploaded_gb, downloaded_gb, upload_amount, download_amount, amount, currency, traffic_coverage, traffic_warning, traffic_start_at and traffic_collected_at. The legacy actual_used_gb report field also represents the period peak; current sampled use is latest_used_gb on the customer list. Do not sum different currencies into an invoice without grouping them first.

Customer lists contain status, provider, s3_ready, total and customers; with billing dates the amount and billable storage refer to that range, while latest_used_gb remains the latest snapshot.

Inspect traffic_coverage and traffic_warning before approving charges. Coverage can be partial when activation starts inside the period, incomplete while logs/history are pending, stale when collection is overdue, or unavailable. Null traffic counters mean unavailable, not zero. traffic_start_at and traffic_collected_at are ISO UTC timestamps when available.

Exports remain JSON: /billing/export adds csv and filename to the per-customer report. /billing/users returns summary, csv and filename, grouping by UID and site with aggregate storage/traffic quantities and component amounts. Parse the JSON and write its csv string to a file; the HTTP body is not a raw CSV download.

Python SDK

The regenerated SDK includes traffic management, CSV export, period-aware customer lists and the four traffic pricing parameters. Python booleans are serialized as lowercase query values.

from euronas_api import EuroNasApi
api = EuroNasApi("https://<server>:18443", "<API_KEY>", ca_file="<CA_FILE>")
api.patch_api_v1_object_storage_customers(
    customer_id="example-001", charge_uploads=False,
    charge_downloads=True, download_price_per_gb=0.05)
report = api.get_api_v1_object_storage_billing_export(
    period_start="2026-10-01", period_end="2026-10-31")
with open(report["filename"], "w", encoding="utf-8", newline="") as output:
    output.write(report["csv"])

Errors and verification

Invalid dates, unknown sites, invalid billing statuses, negative prices, invalid booleans and nonpositive quotas return HTTP 400. Missing/invalid keys return 401; denied mutations return 403; unsupported methods return 405. Backend failures may return 500. A queued activation can fail later; poll state and inspect its message. Use correlation IDs for diagnostics.

The October 2026 implementation was checked against the live HTTPS API on test appliance 192.168.178.21 with isolated temporary keys/listener. Tests cover authentication and read-only restrictions, tracking status and activation retry, collection, customer provisioning and purge, S3 transfer, storage snapshots, actual Ceph quota edits, traffic-price changes, all five billing statuses, period validation, JSON/CSV totals, idempotent provisioning and generated SDK behavior. Initial activation from disabled and cross-midnight/month accounting remain covered by existing collector/backend controlled tests; the live API activation test uses an already active site. A newly created customer before its next-hour boundary cannot demonstrate billable traffic yet; existing measured customer traffic was checked in report totals.

See the separate Customers and Billing administrator guide and white paper in /home/admin/manuals/customers_billing for illustrated GUI workflows.

The integrated S3 administration and billing chapters explain the workflows used by the endpoint reference below.

GET /api/v1/object-storage/billing

Return per-customer JSON billing rows for inclusive UTC dates, with sampled storage peak, traffic amounts and coverage warnings. One selected range uses one storage peak and minimum charge. GB means 1073741824 bytes; monetary components round to three decimals.

Parameter Location Required Type Description
customer_id query no string Backend parameter customer_id.
period_end query yes string (date) Backend parameter period_end.
period_start query yes string (date) Backend parameter period_start.
uid query no string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/billing?period_end=<PERIOD_END>&period_start=<PERIOD_START>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/billing/users

Return billing aggregated by S3 UID and site, with summary, filename and embedded CSV. Inclusive UTC dates are required. Traffic counters can be null when unavailable.

Parameter Location Required Type Description
period_end query yes string (date) Backend parameter period_end.
period_start query yes string (date) Backend parameter period_start.
uid query no string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/billing/users?period_end=<PERIOD_END>&period_start=<PERIOD_START>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/buckets

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
bypass_gc query no string Backend parameter bypass_gc.
purge_objects query no string Backend parameter purge_objects.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets?bucket=<BUCKET>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/buckets

Parameter Location Required Type Description
bucket query no string Backend parameter bucket.
stats query no string Backend parameter stats.
uid query no string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/buckets'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/buckets

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/buckets/cors

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/cors?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/buckets/cors

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/buckets/cors?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/buckets/cors

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
cors_b64 query yes string Backend parameter cors_b64.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/cors?bucket=<BUCKET>&cors_b64=<CORS_B64>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/buckets/lifecycle

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/lifecycle?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/buckets/lifecycle

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/buckets/lifecycle?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/buckets/lifecycle

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
lifecycle_b64 query yes string Backend parameter lifecycle_b64.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/lifecycle?bucket=<BUCKET>&lifecycle_b64=<LIFECYCLE_B64>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/buckets/notification

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/notification?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/buckets/notification

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/buckets/notification?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/buckets/notification

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
notification_b64 query yes string Backend parameter notification_b64.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/notification?bucket=<BUCKET>&notification_b64=<NOTIFICATION_B64>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/buckets/policy

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/policy?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/buckets/policy

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/buckets/policy?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/buckets/policy

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
policy_b64 query yes string Backend parameter policy_b64.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/buckets/policy?bucket=<BUCKET>&policy_b64=<POLICY_B64>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/customers

Remove customer registration; purge_data=true also purges its S3 data and user. Recreated customer IDs do not inherit prior storage usage.

Parameter Location Required Type Description
customer_id query yes string Backend parameter customer_id.
purge_data query no boolean Backend parameter purge_data.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/customers?customer_id=<CUSTOMER_ID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/customers

List customers, current sampled storage and traffic. Optional period_start and period_end must be supplied together; period amounts use sampled storage peaks plus traffic charges.

Parameter Location Required Type Description
period_end query no string (date) Backend parameter period_end.
period_start query no string (date) Backend parameter period_start.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/customers'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

PATCH /api/v1/object-storage/customers

Edit customer metadata, enforced Ceph bucket quota and storage/traffic prices. Omitted values remain unchanged. Current prices and billing status recalculate selected historical periods. suspended is billable and does not suspend S3 access.

Parameter Location Required Type Description
billing_status query no string; values: active, suspended, trial, cancelled, do_not_bill Backend parameter billing_status.
charge_downloads query no boolean Backend parameter charge_downloads.
charge_uploads query no boolean Backend parameter charge_uploads.
currency query no string Backend parameter currency.
customer_id query yes string Backend parameter customer_id.
customer_name query no string Backend parameter customer_name.
customer_number query no string Backend parameter customer_number.
download_price_per_gb query no number; minimum 0 Backend parameter download_price_per_gb.
email query no string (email) Backend parameter email.
minimum_charge query no number; minimum 0 Backend parameter minimum_charge.
price_per_gb query no number; minimum 0 Backend parameter price_per_gb.
quota_gb query no integer; minimum 1 Backend parameter quota_gb.
service_type query no string Backend parameter service_type.
upload_price_per_gb query no number; minimum 0 Backend parameter upload_price_per_gb.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X PATCH \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/customers?customer_id=<CUSTOMER_ID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/customers

Provision a customer, S3 user, bucket, quota and billing settings. Secret key is returned once. Traffic charging is supported for Ceph only; uploads default off, downloads default on, traffic prices default zero.

Parameter Location Required Type Description
billing_status query no string; values: active, suspended, trial, cancelled, do_not_bill Backend parameter billing_status.
bucket query no string Backend parameter bucket.
charge_downloads query no boolean Backend parameter charge_downloads.
charge_uploads query no boolean Backend parameter charge_uploads.
currency query no string Backend parameter currency.
customer_id query yes string Backend parameter customer_id.
customer_name query yes string Backend parameter customer_name.
customer_number query no string Backend parameter customer_number.
download_price_per_gb query no number; minimum 0 Backend parameter download_price_per_gb.
email query no string (email) Backend parameter email.
minimum_charge query no number; minimum 0 Backend parameter minimum_charge.
price_per_gb query no number; minimum 0 Backend parameter price_per_gb.
quota_gb query yes integer; minimum 1 Backend parameter quota_gb.
service_type query no string Backend parameter service_type.
site query no string Backend parameter site.
upload_price_per_gb query no number; minimum 0 Backend parameter upload_price_per_gb.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/customers?customer_id=<CUSTOMER_ID>&customer_name=<CUSTOMER_NAME>&quota_gb=<QUOTA_GB>'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/customers/usage

Capture storage usage snapshots and collect traffic. Inspect error_count, errors and traffic_error even when HTTP status is 200. The five-minute traffic timer does not capture storage snapshots.

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/customers/usage'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/daemons

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/daemons'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/health

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/health'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/quotas

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
quota_scope query no string Backend parameter quota_scope.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/quotas?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/quotas

Parameter Location Required Type Description
bucket query yes string Backend parameter bucket.
enabled query no boolean Backend parameter enabled.
max_objects query no integer; minimum 0 Backend parameter max_objects.
max_size query no string Backend parameter max_size.
quota_scope query no string Backend parameter quota_scope.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/quotas?bucket=<BUCKET>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/realms

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/realms'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/replication

Parameter Location Required Type Description
limit query no string Backend parameter limit.
marker query no string Backend parameter marker.
query query no string Backend parameter query.
relationship_id query no string Backend parameter relationship_id.
view query no string; values: invitations, audit, buckets, backfill, destinations Backend parameter view.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/replication'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/replication

Parameter Location Required Type Description
ack_conflicts query no string Backend parameter ack_conflicts.
ack_data_loss query no string Backend parameter ack_data_loss.
ack_delete_data query no string Backend parameter ack_delete_data.
ack_scope query no string Backend parameter ack_scope.
action query yes string; values: activate_credentials, adopt_credentials, cancel_backfill, compliance_report, decommission_local, dr_test, enable, finalize_credentials, orchestrate_recovery, pause, pause_backfill, promote, purge_invitations, recover_gateway, recovery_validate, refresh_topology, remove_site, resume, resume_backfill, revoke_invitation, rotate_credentials, run_archive, set_advanced_policy, set_mode, set_policy, start_backfill Backend parameter action.
alert_on_failure query no string Backend parameter alert_on_failure.
alert_on_lag query no string Backend parameter alert_on_lag.
allow_untrusted query no string Backend parameter allow_untrusted.
archive_id query no string Backend parameter archive_id.
bucket_scope query no string Backend parameter bucket_scope.
buckets query no string Backend parameter buckets.
config_b64 query no string Backend parameter config_b64.
confirm query no string Backend parameter confirm.
delete_data query no string Backend parameter delete_data.
force query no string Backend parameter force.
included_buckets query no string Backend parameter included_buckets.
instance query no string Backend parameter instance.
invitation_id query no string Backend parameter invitation_id.
job_id query no string Backend parameter job_id.
mode query no string Backend parameter mode.
primary_endpoint query no string Backend parameter primary_endpoint.
primary_fenced query no string Backend parameter primary_fenced.
relationship_id query yes string Backend parameter relationship_id.
rpo_seconds query no string Backend parameter rpo_seconds.
site_name query no string Backend parameter site_name.
sync_window query no string Backend parameter sync_window.
transfer_profile query no string Backend parameter transfer_profile.
zone query no string Backend parameter zone.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/replication?action=<ACTION>&relationship_id=<RELATIONSHIP_ID>'

Responses:

Status Meaning
200 Successful response
201 Successful response
202 Asynchronous operation accepted
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
archive_secret_b64 no string Sensitive backend parameter archive_secret_b64; never send it in the URL.
global_webhook_url_b64 no string Sensitive backend parameter global_webhook_url_b64; never send it in the URL.
webhook_url_b64 no string Sensitive backend parameter webhook_url_b64; never send it in the URL.
ack_conflicts no boolean
ack_data_loss no boolean
ack_delete_data no boolean
ack_scope no boolean
action no string Allowed values: activate_credentials, adopt_credentials, cancel_backfill, compliance_report, decommission_local, dr_test, enable, finalize_credentials, orchestrate_recovery, pause, pause_backfill, promote, purge_invitations, recover_gateway, recovery_validate, refresh_topology, remove_site, resume, resume_backfill, revoke_invitation, rotate_credentials, run_archive, set_advanced_policy, set_mode, set_policy, start_backfill
alert_on_failure no boolean
alert_on_lag no boolean
allow_untrusted no boolean
archive_id no string
bucket_scope no string
buckets no structured
config_b64 no string
confirm no string
delete_data no boolean
force no boolean
included_buckets no structured
instance no string
invitation_id no string
job_id no string
mode no string
primary_endpoint no string
primary_fenced no boolean
relationship_id no string
rpo_seconds no integer
site_name no string
sync_window no string
transfer_profile no string
zone no string

POST /api/v1/object-storage/replication/invitations

Parameter Location Required Type Description
management_url query yes string Backend parameter management_url.
method query yes string Backend parameter method.
output_file query no string Backend parameter output_file.
relationship_id query yes string Backend parameter relationship_id.
ttl query no string Backend parameter ttl.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/replication/invitations?management_url=<MANAGEMENT_URL>&method=<METHOD>&relationship_id=<RELATIONSHIP_ID>'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
passphrase no string Sensitive backend parameter passphrase; never send it in the URL.
management_url no string
method no string
output_file no string
relationship_id no string
ttl no string

POST /api/v1/object-storage/replication/invitations/redeem

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/replication/invitations/redeem'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
token yes string Sensitive backend parameter token; never send it in the URL.

POST /api/v1/object-storage/replication/join

Parameter Location Required Type Description
ack_conflicts query no string Backend parameter ack_conflicts.
allow_untrusted query no string Backend parameter allow_untrusted.
ca_file query no string Backend parameter ca_file.
ca_pem query no string Backend parameter ca_pem.
data_pool query no string Backend parameter data_pool.
endpoint query no string Backend parameter endpoint.
index_pool query no string Backend parameter index_pool.
input_file query no string Backend parameter input_file.
management_url query no string Backend parameter management_url.
mode query no string Backend parameter mode.
service_instance query no string Backend parameter service_instance.
site_name query yes string Backend parameter site_name.
validate_only query no string Backend parameter validate_only.
zone query no string Backend parameter zone.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/replication/join?site_name=<SITE_NAME>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
invitation_b64 no string Sensitive backend parameter invitation_b64; never send it in the URL.
passphrase no string Sensitive backend parameter passphrase; never send it in the URL.
token no string Sensitive backend parameter token; never send it in the URL.
ack_conflicts no boolean
allow_untrusted no boolean
ca_file no string
ca_pem no string
data_pool no string
endpoint no string
index_pool no string
input_file no string
management_url no string
mode no string
service_instance no string
site_name no string
validate_only no boolean
zone no string

GET /api/v1/object-storage/services

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/services'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/usage

Parameter Location Required Type Description
end query no string (date) Backend parameter end.
show_entries query no boolean Backend parameter show_entries.
start query no string (date) Backend parameter start.
uid query no string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/usage'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/users

Parameter Location Required Type Description
purge_data query no boolean Backend parameter purge_data.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users?uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/users

Parameter Location Required Type Description
uid query no string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/users'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/users

Parameter Location Required Type Description
display_name query yes string Backend parameter display_name.
email query no string (email) Backend parameter email.
max_buckets query no string Backend parameter max_buckets.
system query no string Backend parameter system.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users?display_name=<DISPLAY_NAME>&uid=<UID>'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
access_key no string Sensitive backend parameter access_key; never send it in the URL.
secret_key no string Sensitive backend parameter secret_key; never send it in the URL.

DELETE /api/v1/object-storage/users/caps

Parameter Location Required Type Description
caps query yes string Backend parameter caps.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/caps?caps=<CAPS>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/users/caps

Parameter Location Required Type Description
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/users/caps?uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/users/caps

Parameter Location Required Type Description
caps query yes string Backend parameter caps.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/caps?caps=<CAPS>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/users/keys

Parameter Location Required Type Description
key_type query no string Backend parameter key_type.
subuser query no string Backend parameter subuser.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/keys?uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
access_key yes string Sensitive backend parameter access_key; never send it in the URL.

POST /api/v1/object-storage/users/keys

Parameter Location Required Type Description
generate_key query no boolean Backend parameter generate_key.
key_type query no string Backend parameter key_type.
subuser query no string Backend parameter subuser.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/keys?uid=<UID>'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
access_key no string Sensitive backend parameter access_key; never send it in the URL.
secret_key no string Sensitive backend parameter secret_key; never send it in the URL.

DELETE /api/v1/object-storage/users/policies

Parameter Location Required Type Description
policy_arn query yes string Backend parameter policy_arn.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/policies?policy_arn=<POLICY_ARN>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/users/policies

Parameter Location Required Type Description
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/users/policies?uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/users/policies

Parameter Location Required Type Description
policy_arn query yes string Backend parameter policy_arn.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/policies?policy_arn=<POLICY_ARN>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

DELETE /api/v1/object-storage/users/subusers

Parameter Location Required Type Description
purge_keys query no boolean Backend parameter purge_keys.
subuser query yes string Backend parameter subuser.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/subusers?subuser=<SUBUSER>&uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/users/subusers

Parameter Location Required Type Description
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/users/subusers?uid=<UID>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/users/subusers

Parameter Location Required Type Description
access query no string Backend parameter access.
generate_secret query no boolean Backend parameter generate_secret.
key_type query no string Backend parameter key_type.
subuser query yes string Backend parameter subuser.
uid query yes string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/users/subusers?subuser=<SUBUSER>&uid=<UID>'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
secret_key no string Sensitive backend parameter secret_key; never send it in the URL.

GET /api/v1/object-storage/zonegroups

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/zonegroups'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/zones

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/zones'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/billing/export

Return billing rows plus filename and CSV text in a JSON envelope. Optional customer_id and uid filters apply. Preserve approved exports because current pricing recalculates reports.

Parameter Location Required Type Description
customer_id query no string Backend parameter customer_id.
period_end query yes string (date) Backend parameter period_end.
period_start query yes string (date) Backend parameter period_start.
uid query no string Backend parameter uid.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/billing/export?period_end=<PERIOD_END>&period_start=<PERIOD_START>'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/traffic

Read tracking phase, activation boundary, last collection, message and warnings for all sites or one site. Ceph S3 only.

Parameter Location Required Type Description
site query no string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/traffic'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/traffic

Queue traffic tracking activation for one required site. Poll GET on this endpoint until active or failed. Activation configures RGW usage logging and may restart gateway services. Accounting starts at the next full UTC hour. Usage logs are protected while tracking is enabled; disabling or clearing is intentionally unsupported.

Parameter Location Required Type Description
site query yes string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/traffic?site=<SITE>'

Responses:

Status Meaning
202 Activation queued; poll tracking status
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/traffic/collect

Collect Ceph request/response traffic for all sites or one optional site. Uses the shared distributed lease and hourly ledger; retries do not duplicate bytes. Recent hours are provisional and historical backfill is bounded per run.

Parameter Location Required Type Description
site query no string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/traffic/collect'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/access-logs

Parameter Location Required Type Description
site query no string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/access-logs'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/access-logs

Parameter Location Required Type Description
level query no string Backend parameter level.
retention_days query no integer; minimum 0 Backend parameter retention_days.
site query no string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/access-logs'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/access-logs/clear

Parameter Location Required Type Description
confirm query no string Backend parameter confirm.
site query no string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/access-logs/clear'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/access-logs/export

Parameter Location Required Type Description
days query no string Backend parameter days.
site query no string Backend parameter site.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/access-logs/export'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/billing/federation

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/billing/federation'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/billing/federation

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/billing/federation'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
request yes object

POST /api/v1/object-storage/billing/federation/report

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/billing/federation/report'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

JSON request body (credentials must stay in the body):

Field Required Type Description
request yes object

POST /api/v1/object-storage/customers/adopt

Parameter Location Required Type Description
billing_status query no string; values: active, suspended, trial, cancelled, do_not_bill Backend parameter billing_status.
bucket query no string Backend parameter bucket.
charge_downloads query no boolean Backend parameter charge_downloads.
charge_uploads query no boolean Backend parameter charge_uploads.
created_at query no string Backend parameter created_at.
currency query no string Backend parameter currency.
customer_id query no string Backend parameter customer_id.
customer_name query no string Backend parameter customer_name.
customer_number query no string Backend parameter customer_number.
download_price_per_gb query no number; minimum 0 Backend parameter download_price_per_gb.
email query no string (email) Backend parameter email.
generation_id query no string Backend parameter generation_id.
minimum_charge query no number; minimum 0 Backend parameter minimum_charge.
price_per_gb query no number; minimum 0 Backend parameter price_per_gb.
quota_gb query no string Backend parameter quota_gb.
service_type query no string Backend parameter service_type.
site query no string Backend parameter site.
uid query no string Backend parameter uid.
upload_price_per_gb query no number; minimum 0 Backend parameter upload_price_per_gb.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/customers/adopt'

Responses:

Status Meaning
201 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

GET /api/v1/object-storage/replication/backups

Parameter Location Required Type Description
action query no string Backend parameter action.
continuation_token query no string Backend parameter continuation_token.
cursor query no string Backend parameter cursor.
id query no string Backend parameter id.
limit query no string Backend parameter limit.
query query no string Backend parameter query.
realm query no string Backend parameter realm.
source_zone query no string Backend parameter source_zone.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/replication/backups'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

POST /api/v1/object-storage/replication/backups

Parameter Location Required Type Description
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.
Idempotency-Key header no string Required for cluster membership changes; otherwise replays the cached response for an identical mutating request.

Example:

curl --cacert <CA_FILE> -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <REQUEST_ID>' \
  'https://<server>:18443/api/v1/object-storage/replication/backups'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed
202 Setup, bundle export/import or configuration apply accepted

JSON request body (credentials must stay in the body):

Field Required Type Description
action yes string Allowed values: backup_discover, backup_bucket_search, backup_list, backup_save, backup_setup, backup_status, backup_checkpoints, backup_preview, backup_control, backup_bundle_export, backup_bundle_import, backup_configuration_preview, backup_configuration_apply
request yes object Backend operation request. Credentials and bundle passphrases remain body-only. See eekas.html#integrated-s3-guidance for fields and confirmations.

Action-specific required fields and validation are defined in the accompanying openapi.json / openapi.yaml. See the S3 API workflows guide for complete requests and recovery confirmations.

GET /api/v1/object-storage/replication/backups/bundle

Parameter Location Required Type Description
job_id query no string Backend parameter job_id.
X-Correlation-ID header no string Optional caller correlation ID; generated when omitted.

Example:

curl --cacert <CA_FILE> -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/object-storage/replication/backups/bundle'

Responses:

Status Meaning
200 Successful response
400 Invalid request
401 Invalid or missing API key
403 API role is not permitted
405 Method not allowed
409 Resource state conflict
422 Request could not be processed
429 Rate limit exceeded
500 Backend operation failed

System

GET /health

check whether the API is reachable.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/health'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Users

DELETE /api/v1/users

Delete /api/v1/users.

Parameters

ParameterLocationRequiredTypeDescription
remove_homequerynostringRequest parameter.
usernamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X DELETE \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/users?username=api-user'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/users

Get /api/v1/users.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/users'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

PATCH /api/v1/users

Patch /api/v1/users.

Parameters

ParameterLocationRequiredTypeDescription
full_namequerynostringRequest parameter.
homequerynostringRequest parameter.
new_usernamequerynostringRequest parameter.
primary_groupquerynostringRequest parameter.
shellquerynostringRequest parameter.
uidquerynostringRequest parameter.
usernamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X PATCH \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/users?username=api-user'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/users

Post /api/v1/users.

Parameters

ParameterLocationRequiredTypeDescription
full_namequeryyesstringRequest parameter.
groupqueryyesstringRequest parameter.
usernamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/users?full_name=<full_name>&group=<group>&username=api-user'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/users/generate-userid

request the next generated user ID from the CLI.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/users/generate-userid'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/users/groups

Post /api/v1/users/groups.

Parameters

ParameterLocationRequiredTypeDescription
groupsqueryyesstringComma-separated FC host-group identifiers.
modequerynostringRequested operating or access mode; accepted values depend on the endpoint.
usernamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/users/groups?groups=<groups>&username=api-user'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/users/internal

create the internal cluster communication user if needed.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/users/internal'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/users/lock

Post /api/v1/users/lock.

Parameters

ParameterLocationRequiredTypeDescription
lockedqueryyesstringRequest parameter.
usernamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/users/lock?locked=<locked>&username=api-user'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/users/oem-password

set the OEM/admin password through the CLI.

Parameters

ParameterLocationRequiredTypeDescription
confirmationqueryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
current_passwordJSON bodyyesstringRequest parameter.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"current_password":"<current_password>","password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/users/oem-password?confirmation=<confirmation>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/users/password

Post /api/v1/users/password.

Parameters

ParameterLocationRequiredTypeDescription
usernamequeryyesstringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
passwordJSON bodyyesstringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"password":"REPLACE_WITH_PASSWORD"}' \
  'https://<server>:18443/api/v1/users/password?username=api-user'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

iSCSI

GET /api/v1/iscsi/targets

list configured iSCSI targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/iscsi/targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/iscsi/targets

create a new iSCSI target.

Parameters

ParameterLocationRequiredTypeDescription
sizequeryyesstringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
volume_groupqueryyesstringBacking ZFS pool or LVM volume group.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/iscsi/targets?size=<size>&target_name=example-target&volume_group=<volume_group>'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/iscsi/targets/activate

activate an existing iSCSI target.

Parameters

ParameterLocationRequiredTypeDescription
disk_numberquerynostringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
target_typequerynostringRequest parameter.
volume_namequerynostringRequest parameter.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/iscsi/targets/activate?target_name=example-target'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/iscsi/targets/deactivate

deactivate an existing iSCSI target.

Parameters

ParameterLocationRequiredTypeDescription
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/iscsi/targets/deactivate?target_name=example-target'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/iscsi/targets/reset-portals

reset allowed portals on all iSCSI targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/iscsi/targets/reset-portals'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

iSCSI Initiator

POST /api/v1/iscsi-initiators/connect

connect the initiator to a target portal.

Parameters

ParameterLocationRequiredTypeDescription
chap_userquerynostringRequest parameter.
connect_on_all_nodesquerynostringRequest parameter.
portalqueryyesstringRequest parameter.
target_namequeryyesstringFC target or backing-volume name, as required by the operation.
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.
chap_passwordJSON bodynostringRequest parameter.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  -H 'Content-Type: application/json' \
  --data '{"chap_password":"<chap_password>"}' \
  'https://<server>:18443/api/v1/iscsi-initiators/connect?portal=<portal>&target_name=example-target'

Responses

StatusMeaning
201Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

POST /api/v1/iscsi-initiators/sync

synchronize discovered iSCSI target configuration to all cluster nodes.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.
Idempotency-Keyheadernostring; maximum length 255Prevents duplicate execution when the same mutating request is retried.

Example

curl \
  -X POST \
  -H 'X-API-Key: <API_KEY>' \
  -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \
  'https://<server>:18443/api/v1/iscsi-initiators/sync'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

GET /api/v1/iscsi-initiators/targets

Get /api/v1/iscsi-initiators/targets.

Parameters

ParameterLocationRequiredTypeDescription
X-Correlation-IDheadernostringOptional request identifier. The server generates one when omitted.

Example

curl \
  -X GET \
  -H 'X-API-Key: <API_KEY>' \
  'https://<server>:18443/api/v1/iscsi-initiators/targets'

Responses

StatusMeaning
200Successful response
400Invalid request
401Invalid or missing API key
403API role is not permitted
405Method not allowed
409Resource state conflict
422Request could not be processed
429Rate limit exceeded
500Backend operation failed

Common response behavior

Mutating operations can return HTTP 202 and a job identifier for asynchronous work. Errors are JSON objects with an error field. Common statuses are 400, 401, 403, 404, 409, 429, and 500.