apiKey api_key

Fields
KeyIn
api_keyHeader
basic BasicAuth

Get cluster-federation service credentials

Gets the cluster-federation service credentials. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
GET /api/v2/cf-service-credentials
Copy
Responses application/json
200

A successful response.

Get Service Credentials Responseobject

The response to get the service credentials for the CF service.

pubKeyIdstring

The key ID to be used while importing the public key into the Lightbits cluster.

pubKeystring

The base64-encoded public key to be imported into the Lightbits cluster.

After Base64 decoding, the contents should be saved as a file (e.g. into ) and passed as an argument to the following command to the corresponding Lightbits cluster, with and substituted as appropriate. lbcli create credential --project-name=system --id= --type=rsa256pubkey

401

Authentication required / Authentication failed

default

An unexpected error response.

Response
Copy

Login to the cluster federation.

Login to the cluster federation service. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
POST /api/v2/cflogin
Copy
Responses application/json
200

A successful response.

Login Responseobject

The response to the login to the CF service.

tokenTypestring

The type of token.

expiresInstring

The time in seconds when the token will expire.

idTokenstring

The ID of the token.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

List clusters.

List clusters attached to the cluster-federation. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
GET /api/v2/clusters
Copy
Responses application/json
200

A successful response.

List Clusters Responseobject

The response to list the Lightbits clusters connected to the CF service.

clusters8 fieldsarray[object]
401

Authentication required / Authentication failed

default

An unexpected error response.

Response
Copy

Attach a new cluster.

Attaches a new cluster to the system. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
Request Body application/json
Attach Cluster Requestobject

Request to attach a cluster to the CF service.

apiEndpointstring

Management API endpoint of the cluster to connect to. Any one of the API endpoints can be used must be of the form <host>:<port>, e.g.: 10.0.0.1:443, foo.bar.com:443.

POST /api/v2/clusters
Copy
Responses application/json
200

A successful response.

Attach Cluster Responseobject

Response to attach a Lightbits cluster to the CF service. ListWorkflows API and the returned workflow ID can be used to track the status of this operation.

workflowIdstring
400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

Detach an existing cluster.

Detaches an existing cluster from the system. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
Path Params
cidstring

UUID of the cluster to detach from the CF service (must be a valid UUID).

DELETE /api/v2/clusters/{cid}
Copy
Responses application/json
200

A successful response.

objectobject

Response to detach a Lightbits cluster from the CF service.

400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

List workflows

List the running and completed workflows. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
Query String
pageSizeinteger
nextPageTokenstring
GET /api/v2/workflows
Copy
Responses application/json
200

A successful response.

List Workflows Responseobject

The response to list the workflows. Note that the initial CF service will only return the last 100 workflows.

workflows9 fieldsarray[object]
nextPageTokenstring
400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

Get a specific workflow

Gets a specific workflow by its ID. This API is currently unavailable. It is reserved for future support of cluster federation functionality.

Auth
Path Params
workflowIdstring

Workflow ID to get

GET /api/v2/workflows/{workflowId}
Copy
Responses application/json
200

A successful response.

Get Workflow Responseobject

The response to get a workflow by its ID.

workflow9 fieldsobject

The workflow information.

400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

Cluster Operations

Retrieve cluster information.

Cluster information - e.g., cluster UUID and SubsystemNQN - is exposed via this API.

Auth
GET /api/v2/cluster
Copy
Responses application/json
200

A successful response.

objectobject
UUIDstring

UUID of cluster

subsystemNQNstring

Subsystem NQN that should be used by the hosts to connect to volumes on this cluster.

currentMaxReplicasint64

A maximal number of replicas that a new volume can have, given the current state of the nodes. This value depends on the healthiness of the nodes.

supportedMaxReplicasint64

Maximum number of replicas per volume supported by cluster.

A maximal number of replicas that a volume can have, given cluster installation parameters (Number of Servers, Failure Domains...).

statistics11 fieldsobject

Cluster statistics (storage capacity, used storage, compression ration...)

ETagstring

Identifier for a specific version of a resource.

health6 fieldsobject

Cluster health: OK- cluster healthy, Warning - Inactive node(s) and/or degraded volumes in cluster, Error - ReadOnly/Unavailable volumes in cluster.

MinVersionInClusterstring

Lowest version of Lightbits running on one of the servers in the cluster.

MinAllowedVersionstring

For Lightbits internal use.

MaxAllowedVersionstring

Lightbits version this cluster can be upgraded to.

apiEndpointsarray[string]

A list of REST/gRPC endpoints - : pairs that the API listen on. Example entries:

  • 192.168.16.16:443
  • 192.168.16.17:443
discoveryEndpointsarray[string]

A list of TCP endpoints - : pairs that the Discovery Service listen on. Example entries:

  • 192.168.16.16:8009
  • 192.168.16.17:8009
clusterNamestring

Cluster name.

lastUpgrade7 fieldsobject

Parameters of the last (or active) cluster upgrade process.

inBandAuthModestring

Defines whether In-Band Authentication is enabled for the cluster(Enabled/Disabled). When enabled, authentication is required for hosts to connect to the Lightbits cluster.

Enum: UnKnown,Enabled,Disabled

Default: UnKnown

encryptionStatus5 fieldsobject

Information about the state of Cluster Level Encryption.

federatedAuthenticationStatus2 fieldsobject

Information about the state of Federated Authentication

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

List volumes.

List can be filtered by failure domain. List can be partially returned by given offset UUID and size of the list. If offset is not provided, list is returned from the start. If offset UUID is provided, list starts from the next volume after the provided offset UUID. If limit is provided, length of the returned list is bounded by the limit. If limit is not provided, list is returned until the end. projectName is mandatory unless you are the admin. List can also be filtered by a specific source snapshot.

Auth
Query String
UUIDstring

UUID. List only volume with matching UUID.

namestring

Name. List only volumes with specified name.

failureDomainstring

failureDomain. List volumes according to failureDomains volumes replicas are placed on.

offsetUUIDstring

offsetUUID. When provided, returned list starts with next to offsetUUID volume.

limitstring

limit. Limits the number of volumes in the response (default/maximum value is 1000 volumes).

projectNamestring

projectName. Optional. Return only volumes of the given project.

snapshotUUIDstring

source snapshot UUID. Return only volumes created from this source snapshot.

showAllboolean

showAll. Optional. Show also volumes in Deleting state (the default is false).

GET /api/v2/volumes
Copy
Responses application/json
200

A successful response.

objectobject
volumes26 fieldsarray[object]
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

Create volume.

A volume has a user-defined name, capacity, and a string-based Access Control List (ACL). User can also select to enable compression and define IP-ACL (IP address-based control list).

Auth
Request Body application/json
objectobject
namestring

A volume's name is unique at the project level. Name length must be between 1 and 253 characters and can contain any of: alphanumeric characters (a-z, A-Z, 0-9) ,hyphen (-), underscore (_) and period (.).

pattern: ^[a-zA-Z0-9-_\.]{1,253}$

sizestring

Volume size.

aclobject

Access control list of strings (host NQN). Valid values: list of strings/ALLOW_ANY/ALLOW_NONE.

valuesarray[string]
compressionstring

Volume compression. Valid values: true/enable/enabled/false/disable/disabled (default value is disable compression).

replicaCountint64

The number of replicas a volume can have. Valid values are 1, 2, and 3.

IPAclobject

Access control list of IP addresses. Valid values: list of valid IP addresses/ALLOW_ANY/ALLOW_NONE (optional, default: ALLOW_ANY).

valuesarray[string]
minReplicasint64

not used.

sectorSizestring

Volume sector size. Valid values: 4K (default), 512B.

Enum: sectorSize_Default,sectorSize_512B,sectorSize_4K

Default: sectorSize_Default

projectNamestring

Name of the project the volume belongs to.

sourceSnapshotUUIDstring

Optionally specify a source snapshot to create a clone from (specify either sourceSnapshotUUID or sourceSnapshotName).

sourceSnapshotNamestring

Optionally specify a source snapshot to create a clone from (specify either sourceSnapshotUUID or sourceSnapshotName).

placementRestrictions2 fieldsarray[object]

Specify volume affinity labels for placement restrictions This may only be specified for volumes of single replication (replicaCount=1), and where Dynamic Rebalance is disabled (feature flags FailInPlace and ProactiveRebalance, lbcli get feature-flag are false).

qosPolicyUUIDstring
qosPolicyNamestring
labelsarray[object]

User-defined labels are optional for a volume. Labels are key-value pairs. A volume can have up to 16 labels. label-key and label-value length must be between 1 and 253 characters and can contain any of: alphanumeric characters (a-z, A-Z, 0-9), hyphen (-), underscore (_), and period (.). When creating a clone, if labels are passed, the clone will be created with them. Otherwise, the labels are copied from the snapshot used for the clone.

keystring
valuestring
POST /api/v2/volumes
Copy
Responses application/json
200

A successful response.

objectobject
statestring

Indicates the current state of the volume in its creation/update/delete lifetime. It will reflect the state of execution of a user invoked API (CreateVolume, UpdateVolume..) or an internal operation (Volume migration).

Enum: Unknown,Creating,Available,Deleting,Deleted,Failed,Updating,Rollback,Migrating

Default: Unknown

protectionStatestring

Indicates volume's data availability derived from the health of each of the replica's it resides on.

Enum: Unknown,FullyProtected,Degraded,ReadOnly,NotAvailable

Default: Unknown

replicaCountint64

The number of replicas a volume can have. Valid values are 1, 2, and 3.

nodeListarray[string]

List of node UUIDs this volume is placed over.

UUIDstring
nsidint64

Volume's Namespace ID

aclobject

Access control list of strings (host NQN). Valid values: list of strings/ALLOW_ANY/ALLOW_NONE

valuesarray[string]
compressionstring

valid values: true/enable/enabled or false/disable/disabled

sizestring
namestring

A volume's name is unique at the project level. Name length must be between 1 and 253 characters and can contain any of: alphanumeric characters (a-z, A-Z, 0-9) ,hyphen (-), underscore (_) and period (.).

rebuildProgressstring

Progress of the volume's replica rebuild operation in percent.

statistics11 fieldsobject

Volume statistics. Contains information about the physical used capacity, used memory, compression ratio, and more.

IPAclobject

Access control list of IP addresses. Valid values: list of valid IP addresses/ALLOW_ANY/ALLOW_NONE (optional, default: ALLOW_ANY).

valuesarray[string]
ETagstring

Identifier for a specific version of a resource.

connectedHostsarray[string]
sectorSizeint64

Volume sector size. Valid values: 4K (default), 512B.

projectNamestring

Project name.

sourceSnapshotUUIDstring

For a cloned volume, specify the source snapshot of this clone.

sourceSnapshotNamestring

For a cloned volume, specify the source snapshot of this clone.

placementRestrictions2 fieldsarray[object]
qosPolicyUUIDstring

Optional volume's QoS policy UUID (if not specified the QoS policy defined in volume's project is used).

qosPolicyNamestring

Optional volume's QoS policy name (if not specified the QoS policy defined in volume's project is used)

primaryNodeUUIDstring

UUID of the primary node data is Read/Written for this volume.

creationTimedate-time

Time of volume creation (UTC).

labelsarray[object]

Optionally add labels to a volume.

keystring
valuestring
clusterIdstring

The ID of the cluster where the volume resides.

400

An invalid argument was provided, due to one of the following reasons: a mandatory argument is missing, name contains illegal characters, size is not a positive integer, replica count is outside of a valid range, ACL or IP-ACL are invalid.

401

Unauthorized: authentication failed.

403

Permission denied.

409

A volume with the provided name already exists.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

Get volume information.

Get volume information by provided UUID

Auth
Path Params
UUIDstring

UUID

Optional. The volume's UUID. Either UUID or Name must be provided to identify the volume to get.

Query String
namestring

Name. Optional. The volume's name. Either UUID or Name must be provided to identify the volume to get.

projectNamestring

projectName. Name of project volume belongs to.

GET /api/v2/volumes/{UUID}
Copy
Responses application/json
200

A successful response.

objectobject
statestring

Indicates the current state of the volume in its creation/update/delete lifetime. It will reflect the state of execution of a user invoked API (CreateVolume, UpdateVolume..) or an internal operation (Volume migration).

Enum: Unknown,Creating,Available,Deleting,Deleted,Failed,Updating,Rollback,Migrating

Default: Unknown

protectionStatestring

Indicates volume's data availability derived from the health of each of the replica's it resides on.

Enum: Unknown,FullyProtected,Degraded,ReadOnly,NotAvailable

Default: Unknown

replicaCountint64

The number of replicas a volume can have. Valid values are 1, 2, and 3.

nodeListarray[string]

List of node UUIDs this volume is placed over.

UUIDstring
nsidint64

Volume's Namespace ID

aclobject

Access control list of strings (host NQN). Valid values: list of strings/ALLOW_ANY/ALLOW_NONE

valuesarray[string]
compressionstring

valid values: true/enable/enabled or false/disable/disabled

sizestring
namestring

A volume's name is unique at the project level. Name length must be between 1 and 253 characters and can contain any of: alphanumeric characters (a-z, A-Z, 0-9) ,hyphen (-), underscore (_) and period (.).

rebuildProgressstring

Progress of the volume's replica rebuild operation in percent.

statistics11 fieldsobject

Volume statistics. Contains information about the physical used capacity, used memory, compression ratio, and more.

IPAclobject

Access control list of IP addresses. Valid values: list of valid IP addresses/ALLOW_ANY/ALLOW_NONE (optional, default: ALLOW_ANY).

valuesarray[string]
ETagstring

Identifier for a specific version of a resource.

connectedHostsarray[string]
sectorSizeint64

Volume sector size. Valid values: 4K (default), 512B.

projectNamestring

Project name.

sourceSnapshotUUIDstring

For a cloned volume, specify the source snapshot of this clone.

sourceSnapshotNamestring

For a cloned volume, specify the source snapshot of this clone.

placementRestrictions2 fieldsarray[object]
qosPolicyUUIDstring

Optional volume's QoS policy UUID (if not specified the QoS policy defined in volume's project is used).

qosPolicyNamestring

Optional volume's QoS policy name (if not specified the QoS policy defined in volume's project is used)

primaryNodeUUIDstring

UUID of the primary node data is Read/Written for this volume.

creationTimedate-time

Time of volume creation (UTC).

labelsarray[object]

Optionally add labels to a volume.

keystring
valuestring
clusterIdstring

The ID of the cluster where the volume resides.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Provided volume UUID is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

Delete volume.

Deletes a volume according to the provided UUID or Name. Deletion of a volume is a long operation. The status of deletion can be queried by a GET operation on the volume. As long as the operation runs, the volume state is Deleting. Once the operation has completed, GET volume returns a NotFound error response.

Auth
Path Params
UUIDstring

UUID

The volume's UUID for the delete volume request (optional; either UUID or Name must be provided to identify the volume to delete).

Query String
namestring

name. The volume's name for the delete volume request (optional; either UUID or Name must be provided to identify the volume to delete).

projectNamestring

projectName. The project name of the volume to delete.

DELETE /api/v2/volumes/{UUID}
Copy
Responses application/json
200

A successful response.

objectobject
400

Provided invalid UUID, Name, or volume state does not allow deletion (Deleting/Failed).

401

Unauthorized: authentication failed.

403

Permission denied.

404

Volume with provided UUID or Name is not found.

409

There is a user operation in progress on the volume

412

Etag mismatch.

500

Internal Lightbits error.

503

Volume is in a temporary state that does not currently allow deletion (Creating/Updating).

default

An unexpected error response.

Response
Copy

Update volume.

Update volume enables the change of the following attributes: size compression ACL list IP-ACL list QoS labels.

Auth
Path Params
UUIDstring

UUID

Optional identifier of the volume to update (command must use either name or UUID fields to identify volume).

Request Body application/json
objectobject
UUIDstring

Optional identifier of the volume to update (command must use either name or UUID fields to identify volume).

aclobject

Access control list of strings (host NQN). Valid values: list of strings/ALLOW_ANY/ALLOW_NONE

valuesarray[string]
IPAclobject

Access control list of IP addresses. Valid values: list of valid IP addresses/ALLOW_ANY/ALLOW_NONE

valuesarray[string]
sizestring
compressionstring

valid values: true/enable/enabled or false/disable/disabled

projectNamestring

Name of the project the volume belongs to.

qosPolicyUUIDstring
qosPolicyNamestring
Forceboolean

To intentionally shrink volume size, provide updated volume size and set force to true.

namestring

Optional identifier of the volume to update (command must use either name or UUID fields to identify volume).

labelsarray[object]

User-defined labels are optional for a volume. Labels are key-value pairs. A volume can have up to 16 labels. label-key and label-value length must be between 1 and 253 characters and can contain any of: alphanumeric characters (a-z, A-Z, 0-9) ,hyphen (-), underscore (_) and period (.). If labels are passed during volume update, the existing volume's labels are replaced with the new ones. Otherwise, the labels are untouched.

keystring
valuestring
newNamestring

Volume new name. A volume's name is unique on the project level. Name length must be between 1 and 253 characters and can contain any of: alphanumeric characters (a-z, A-Z, 0-9) ,hyphen (-), underscore (_) and period (.).

PUT /api/v2/volumes/{UUID}
Copy
Responses application/json
200

A successful response.

objectobject
400

Invalid argument or a volume is in a state that cannot be updated (Deleting/Failed).

401

Unauthorized: authentication failed.

403

Permission denied.

404

Returned when the volume with given UUID is not found.

409

There is a user operation in progress on the volume.

412

Etag mismatch.

500

Internal Lightbits error.

501

Unimplemented capability (updating capacity).

503

Volume is in temporary state and cannot be updated now (Creating/Updating).

default

An unexpected error response.

Response
Copy