List admin endpoints.

List can be filtered by port.

Auth
Query String
portinteger

port. Optionally filter by port.

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

A successful response.

objectobject
adminEndpointsarray[object]
portint64

Admin endpoint port.

ipsarray[string]
ETagstring

identifier for a specific version of a resource

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

Create admin endpoint.

Allow access to a specified port for all specified IPs.

Auth
Request Body application/json
objectobject
portint64

Admin endpoint port.

ipsarray[string]

ips Admin endpoint IP addresses.

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

A successful response.

objectobject
portint64

Admin endpoint port.

ipsarray[string]
ETagstring

identifier for a specific version of a resource

400

Port is invalid.

401

Unauthorized: authentication failed.

403

Permission denied.

409

Port already exists.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

Get admin endpoint.

Get an endpoint corresponding to a specified port.

Auth
Path Params
portinteger

port

Admin endpoint port.

GET /api/v2/adminEndpoints/{port}
Copy
Responses application/json
200

A successful response.

objectobject
portint64

Admin endpoint port.

ipsarray[string]
ETagstring

identifier for a specific version of a resource

400

Port is invalid.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Port does not have a corresponding endpoint.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

Delete admin endpoint.

Delete endpoint corresponding to a specified port.

Auth
Path Params
portinteger

port

Delete endpoint corresponding to a specified port.

DELETE /api/v2/adminEndpoints/{port}
Copy
Responses application/json
200

A successful response.

objectobject
400

Port is invalid.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Port does not have a corresponding endpoint.

409

There is a user operation in progress on the port.

412

Etag mismatch.

500

Internal Lightbits error.

503

Temporary state that does not currently allow deletion (Creating/Updating).

default

An unexpected error response.

Response
Copy

Update admin endpoint.

Update list of ips that may access the specified port.

Auth
Path Params
portinteger

port

Admin endpoint port.

Request Body application/json
objectobject
portint64

Admin endpoint port.

ipsarray[string]

ips Admin endpoint IP addresses.

PUT /api/v2/adminEndpoints/{port}
Copy
Responses application/json
200

A successful response.

objectobject
portint64

Admin endpoint port.

ipsarray[string]
ETagstring

identifier for a specific version of a resource

400

Port is invalid.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Port does not have a corresponding endpoint.

409

There is a user operation in progress on the port.

412

Etag mismatch.

500

Internal Lightbits error.

503

Temporary state; cannot be updated now (Creating/Updating).

default

An unexpected error response.

Response
Copy

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.

clustersarray[object]
idstring

The UUID of the cluster. Must be a valid UUID.

namestring

The name of the cluster.

versionstring

The minimum version of the Lightbits release on the cluster.

subsystemNqnstring

The NQN of the subsystem of the cluster.

apiEndpointsarray[string]

The list of API endpoints of the cluster.

discoveryEndpointsarray[string]

The list of discovery endpoints of the cluster.

clusterConnectionStatusobject

The connection status of the cluster.

accessConnectionStatusstring

The connection status of the cluster.

Enum: Connected,Disconnected,Unauthorized

Default: Connected

provisionedToEffectiveStorageRatiostring
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}
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

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

workflowsarray[object]
idstring

The UUID of the workflow.

createdAtdate-time

The time the workflow was created.

startedAtdate-time

The time the workflow started.

endedAtdate-time

The time the workflow completed.

typestring

The type of workflow (e.g. attach cluster).

statestring

The state of the workflow.

msgstring

A detailed message providing additional information on the workflow state. This is mainly used in case of failure.

progressobject

Progress information of the workflow.

percentint32

The percentage of the workflow that has been completed.

stagestring

The current stage of the workflow.

attachClusterRequestobject

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.

nextPageTokenstring
400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response

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}
Responses application/json
200

A successful response.

Get Workflow Responseobject

The response to get a workflow by its ID.

workflowobject

The workflow information.

idstring

The UUID of the workflow.

createdAtdate-time

The time the workflow was created.

startedAtdate-time

The time the workflow started.

endedAtdate-time

The time the workflow completed.

typestring

The type of workflow (e.g. attach cluster).

statestring

The state of the workflow.

msgstring

A detailed message providing additional information on the workflow state. This is mainly used in case of failure.

progressobject

Progress information of the workflow.

percentint32

The percentage of the workflow that has been completed.

stagestring

The current stage of the workflow.

attachClusterRequestobject

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.

400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response

Retrieve cluster information.

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

Auth
GET /api/v2/cluster
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...).

statisticsobject

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

installedPhysicalStoragestring

All installed SSDs capacities over all servers in a cluster, given in bytes.

managedPhysicalStoragestring

Sum of all managed and healthy SSDs capacities, given in bytes.

effectivePhysicalStoragestring

Effective Physical storage excluding overhead of OVP and Parity, given in bytes.

logicalStoragestring

Sum of capacities of all allocated volumes, given in bytes.

logicalUsedStoragestring

Logical storage space used by all volumes (n of LBAs x 4096), given in bytes.

physicalUsedStoragestring

Physical storage space occupied by all volumes (data only), given in bytes.

physicalUsedStorageIncludingParitystring

Physical storage space occupied by all data including Parity overhead when EC enabled (physical ndisks/(ndisks -1)), given in bytes.

freePhysicalStoragestring

Free storage before entering to read-only mode , given in bytes.

estimatedFreeLogicalStoragestring

Estimated free storage before entering to read-only mode assuming current compression ratio, given in bytes.

estimatedLogicalStoragestring

Estimate of total available logical storage based on current compression ratio (effective * compression)

compressionRationumber

compression ratio logicalUsedStorage/physicalUsedStorage

ETagstring

Identifier for a specific version of a resource.

healthobject

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

statestring

Enum: None,OK,Warning,Error

Default: None

numDegradedVolumesint64
numReadOnlyVolumesint64
numNotAvailableVolumesint64
numInactiveNodesint64
numHealthyVolumesint64
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.

lastUpgradeobject

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

Statusstring

The status of the upgrade operation

Enum: Unknown,None,UpgradeFailed,Upgrading

Default: Unknown

StartTimedate-time

The time of the upgrade task start

EndTimedate-time

The time of closing the upgrade task (completed or failed). Reset when the next upgrade starts.

TargetVersionstring

The version that should be installed by the end of the process.

ErrorMessagestring

Free formatted text, describes the error if such an error occurred.

ProgressStepint64

Current upgrade step. You can use ProgressTotal to calculate percentage as ProgressStep/ProgressTotal.

ProgressTotalint64

Total possible upgrade progress steps.

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

encryptionStatusobject

Information about the state of Cluster Level Encryption.

encryptionStatestring

Indicates the encryption state of the cluster encryption status

Enum: Disabled,Enabling,Enabled,Unknown

Default: Disabled

kekGenerationstring

The current generation of the KEK

kekUpdateDatedate-time

The date of the last KEK update

previousKekGenerationsarray[string]

The previous generations of the KEK

rotationStatestring

Indicates the rotation state of the cluster encryption encryption status

Enum: NoRotation,DistributingKEK,EncryptingDEKs,EncryptyingDEKs

Default: NoRotation

federatedAuthenticationStatusobject

Information about the state of Federated Authentication

federatedAuthenticationEnabledboolean
idpHealthInfosarray[object]
serverNamestring
idpHealthStatusstring

Enum: IdpHealthStatus_Healthy,IdpHealthStatus_UnHealthy,IdpHealthStatus_Unknown

Default: IdpHealthStatus_Healthy

timestampdate-time
healthErrorMessagestring
401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Retrieve cluster information.

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

Auth
GET /api/v2/clusterinfo
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 server.

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

A maximal number of replicas that a volume can have, given the cluster installation parameters.

ETagstring

identifier for a specific version of a resource.

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
nvmeEndpointsarray[string]

A list of TCP endpoints - : pairs that the NVMe targets listen on. Example entries:

  • 192.168.16.16:4420
  • 192.168.16.17:4420
clusterNamestring

cluster name.

lastUpgradeobject

Parameters of the last (or active) cluster upgrade process

Statusstring

The status of the upgrade operation

Enum: Unknown,None,UpgradeFailed,Upgrading

Default: Unknown

StartTimedate-time

The time of the upgrade task start

EndTimedate-time

The time of closing the upgrade task (completed or failed). Reset when the next upgrade starts.

TargetVersionstring

The version that should be installed by the end of the process.

ErrorMessagestring

Free formatted text, describes the error if such an error occurred.

ProgressStepint64

Current upgrade step. You can use ProgressTotal to calculate percentage as ProgressStep/ProgressTotal.

ProgressTotalint64

Total possible upgrade progress steps.

encryptionStatusobject

Information about the state of Cluster Level Encryption

encryptionStatestring

Indicates the encryption state of the cluster encryption status

Enum: Disabled,Enabling,Enabled,Unknown

Default: Disabled

kekGenerationstring

The current generation of the KEK

kekUpdateDatedate-time

The date of the last KEK update

previousKekGenerationsarray[string]

The previous generations of the KEK

rotationStatestring

Indicates the rotation state of the cluster encryption encryption status

Enum: NoRotation,DistributingKEK,EncryptingDEKs,EncryptyingDEKs

Default: NoRotation

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

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get all Lightbits events from cluster.

API to pull the events from the aggregated cluster event log.

Auth
Query String
projectNamestring

projectName. List only events that are associated with the specified project.

nextTokenstring

nextToken. Optional. Specifies the first event to return when using consecutive paginated requests. Use the nextToken returned in the response of the previous request as the indication for the first event the new request should fetch. The value of nextToken is an event ID.

sincestring

since. Optional. Return a list of events with a timestamp not earlier than the given timestamp. The timestamp format must be given in UTC time in ISO-8601, e.g.: 2000-01-01T12:00:00.000Z.

untilstring

until. Optional. Return a list of events with a timestamp not later than the given timestamp. The timestamp format must be given in UTC time in ISO-8601, e.g.: 2000-01-01T12:00:00.000Z.

limitstring

limit. Optional. Set a limit for the maximum number of events that can be returned in this response.

severityarray

severity. Optional. Return only events of the given severity.

componentTypestring

component type. Optional. Return only events of the given component type.

GET /api/v2/events
Responses application/json
200

A successful response.

objectobject
eventsarray[object]
IDstring
Timedate-time
Typestring

Enum: UnknownType,Cluster,Node,Volume,NVMeSSD,Server,DataIntegrity,ClusterEncryption

Default: UnknownType

Severitystring

Enum: UnkownSeverity,Info,Low,Medium,High,Critical

Default: UnkownSeverity

EventNamestring
EventCodeint64
ReportingServicestring

Enum: UnkownReportingService,CM,NM,API,UM

Default: UnkownReportingService

AssociatedEventIDstring

The event ID related to this event.

Statusstring
CauseCodeint64
Descriptionstring
ComponentVolumesInfoobject
ProjectVolumesMapobject
*object
VolumeComponentInfoListarray[object]
IDstring
Namestring
ComponentNVMeSSDInfoobject
IDstring
Namestring
ComponentNodeInfoobject
IDstring
Namestring
ComponentServerInfoobject
IDstring
Namestring
ComponentClusterInfoobject
IDstring
Namestring
ComponentDataIntegrityInfoobject
NodeUUIDstring
ServerUUIDstring
SSDsarray[string]
nextTokenstring
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Project not found.

500

Internal Lightbits error.

501

Unimplemented capability. Specify only a single parameter to filter events: componentType, ProjectName, or Severity.

default

An unexpected error response.

Response

Retrieve server logs and other information.

Retrieve all server logs. This command will trigger a dedicated Lightbits script that will package all server logs and information them into a tarball file then fetch the tarball file.

Auth
Query String
SkipStatisticsboolean

SkipStatistics. The fetch log operation will download by default all of the statistics from the relevant server By passing this parameter fetch logs will skip the statistics collection.

CaptureCpuAndTcpDumpboolean

CaptureCpuAndTcpDump. Capture CPU and tcpdump stats for five seconds to tcpdump.cap + sar.log in network/

NumOfDaysToCollectLogsinteger

NumOfDaysToCollectLogs. Number of days back to collect the logs (the default is two days).

CollectServicesLbcliEtcdboolean

CollectServicesLbcliEtcd. Collect services information - lbcli and etcd dump only (the default will also collect all relevant logs).

IntervalBetweenBEReadCyclesinteger

IntervalBetweenBEReadCycles. The interval in seconds between FE/BE statistics captures (the default is five seconds).

DontCollectlogsboolean

DontCollectlogs. Do not collect /var/log.

LogFilenamestring

LogFilename. Log filename prefix for convenience (do not use spaces).

NumOfstatisticsToCaptureinteger

NumOfstatisticsToCapture. The number of FE/BE statistics cycles to capture (the default is one).

DontCompressOutputboolean

DontCompressOutput. Do not compress the output tar file. The default is gzip, but xz can be selected with the -x flag.

IoNiceboolean

IoNice. Set the nicest IO/CPU priority on most commands via 'ionice -c 2 -n 7 nice -n 19'. Default: 'ionice -c 2 -n 7'

UseHighCompressionboolean

UseHighCompression. If compressing, use stronger xz compression instead of gzip. The file extension will be txz instead of tgz

GET /api/v2/logs
Responses application/json
200

A successful response.(streaming responses)

Stream result of google.api.HttpBodyobject
resultobject

Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page.

This message can be used both in streaming and non-streaming API methods in the request as well as the response.

It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body.

Example:

message GetResourceRequest { // A unique request id. string request_id = 1;

// The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; }

service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); }

Example with streaming methods:

service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); }

Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.

content_typestring

The HTTP Content-Type header value specifying the content type of the body.

datastring

The HTTP request/response body as raw binary.

extensionsarray[object]

Application specific response metadata. Must be set in the first response for streaming APIs.

type_urlstring

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading "." is not accepted).

In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:

  • If no scheme is provided, https is assumed.
  • An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
  • Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)

Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.

Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

valuestring

Must be a valid serialized protocol buffer of the above specified type.

errorobject
grpc_codeint32
http_codeint32
messagestring
http_statusstring
detailsarray[object]
type_urlstring

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading "." is not accepted).

In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:

  • If no scheme is provided, https is assumed.
  • An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
  • Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)

Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.

Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

valuestring

Must be a valid serialized protocol buffer of the above specified type.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get all Lightbits events from cluster.

API to pull the events from the aggregated cluster event log.

Auth
Path Params
projectNamestring

projectName

List only events that are associated with the specified project.

Query String
nextTokenstring

nextToken. Optional. Specifies the first event to return when using consecutive paginated requests. Use the nextToken returned in the response of the previous request as the indication for the first event the new request should fetch. The value of nextToken is an event ID.

sincestring

since. Optional. Return a list of events with a timestamp not earlier than the given timestamp. The timestamp format must be given in UTC time in ISO-8601, e.g.: 2000-01-01T12:00:00.000Z.

untilstring

until. Optional. Return a list of events with a timestamp not later than the given timestamp. The timestamp format must be given in UTC time in ISO-8601, e.g.: 2000-01-01T12:00:00.000Z.

limitstring

limit. Optional. Set a limit for the maximum number of events that can be returned in this response.

severityarray

severity. Optional. Return only events of the given severity.

componentTypestring

component type. Optional. Return only events of the given component type.

GET /api/v2/projects/{projectName}/events
Responses application/json
200

A successful response.

objectobject
eventsarray[object]
IDstring
Timedate-time
Typestring

Enum: UnknownType,Cluster,Node,Volume,NVMeSSD,Server,DataIntegrity,ClusterEncryption

Default: UnknownType

Severitystring

Enum: UnkownSeverity,Info,Low,Medium,High,Critical

Default: UnkownSeverity

EventNamestring
EventCodeint64
ReportingServicestring

Enum: UnkownReportingService,CM,NM,API,UM

Default: UnkownReportingService

AssociatedEventIDstring

The event ID related to this event.

Statusstring
CauseCodeint64
Descriptionstring
ComponentVolumesInfoobject
ProjectVolumesMapobject
*object
VolumeComponentInfoListarray[object]
IDstring
Namestring
ComponentNVMeSSDInfoobject
IDstring
Namestring
ComponentNodeInfoobject
IDstring
Namestring
ComponentServerInfoobject
IDstring
Namestring
ComponentClusterInfoobject
IDstring
Namestring
ComponentDataIntegrityInfoobject
NodeUUIDstring
ServerUUIDstring
SSDsarray[string]
nextTokenstring
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Project not found.

500

Internal Lightbits error.

501

Unimplemented capability. Specify only a single parameter to filter events: componentType, ProjectName, or Severity.

default

An unexpected error response.

Response

Product Version.

Get product version information.

Auth
GET /api/v2/version
Responses application/json
200

A successful response.

objectobject
apiVersionstring
default

An unexpected error response.

Response

Listing IdP configurations.

Listing IdP configurations.

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

A successful response.

objectobject
idpConfigurationsarray[object]
namestring

Unique name identifying this IdP configuration.

idpIssuerURLstring

The URL of the Identity Provider (IdP) issuer.

statestring

The current state of the IdP configuration.

Enum: Unknown,Creating,Active,Updating,Failed

Default: Unknown

typestring

Type of an IdP (Identity Provider). Currently only ADFS is supported.

Enum: unknownIdp,ADFS

Default: unknownIdp

UUIDstring

The UUID of this IdP configuration.

proxyInfoobject

Optional. Proxy server information for an IdP that is accessed via proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Create an IdP configuration.

Create a configuration for a remote Identity Provider (IdP) that could be used to authorize access to the Lightbits cluster. Currently only a single IdP configuration is supported.

Auth
Request Body application/json
objectobject
namestring

The unique name to assign to this IdP configuration.

idpIssuerURLstring

The URL of the Identity Provider (IdP) issuer.

typestring

Type of an IdP (Identity Provider). Currently only ADFS is supported.

Enum: unknownIdp,ADFS

Default: unknownIdp

proxyInfoobject

Optional. Proxy server information for an IdP that is accessed via proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

POST /api/v2/cluster/IdpConfiguration
Responses application/json
200

A successful response.

objectobject

IDPConfiguration represents the configuration for the Identity Provider (IdP) in the Lightbits cluster.

namestring

Unique name identifying this IdP configuration.

idpIssuerURLstring

The URL of the Identity Provider (IdP) issuer.

statestring

The current state of the IdP configuration.

Enum: Unknown,Creating,Active,Updating,Failed

Default: Unknown

typestring

Type of an IdP (Identity Provider). Currently only ADFS is supported.

Enum: unknownIdp,ADFS

Default: unknownIdp

UUIDstring

The UUID of this IdP configuration.

proxyInfoobject

Optional. Proxy server information for an IdP that is accessed via proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Update an IdP configuration.

Update an IdP configuration.

Auth
Request Body application/json
objectobject
namestring

Specify name of the IdP configuration to update.

idpIssuerURLstring

The URL of the Identity Provider (IdP) issuer.

typestring

The type of an IdP (Identity Provider). Currently only ADFS is supported.

Enum: unknownIdp,ADFS

Default: unknownIdp

proxyInfoobject

Proxy server information for an IdP that is accessed via proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

PUT /api/v2/cluster/IdpConfiguration
Responses application/json
200

A successful response.

objectobject

IDPConfiguration represents the configuration for the Identity Provider (IdP) in the Lightbits cluster.

namestring

Unique name identifying this IdP configuration.

idpIssuerURLstring

The URL of the Identity Provider (IdP) issuer.

statestring

The current state of the IdP configuration.

Enum: Unknown,Creating,Active,Updating,Failed

Default: Unknown

typestring

Type of an IdP (Identity Provider). Currently only ADFS is supported.

Enum: unknownIdp,ADFS

Default: unknownIdp

UUIDstring

The UUID of this IdP configuration.

proxyInfoobject

Optional. Proxy server information for an IdP that is accessed via proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

IdP configuration with the specified name was not found.

default

An unexpected error response.

Response

Get an IdP configuration.

Get an IdP configuration.

Auth
Path Params
namestring

name

The name of the IdP configuration to get.

GET /api/v2/cluster/IdpConfiguration/{name}
Responses application/json
200

A successful response.

objectobject

IDPConfiguration represents the configuration for the Identity Provider (IdP) in the Lightbits cluster.

namestring

Unique name identifying this IdP configuration.

idpIssuerURLstring

The URL of the Identity Provider (IdP) issuer.

statestring

The current state of the IdP configuration.

Enum: Unknown,Creating,Active,Updating,Failed

Default: Unknown

typestring

Type of an IdP (Identity Provider). Currently only ADFS is supported.

Enum: unknownIdp,ADFS

Default: unknownIdp

UUIDstring

The UUID of this IdP configuration.

proxyInfoobject

Optional. Proxy server information for an IdP that is accessed via proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

IdP configuration with the specified name was not found.

default

An unexpected error response.

Response

Delete an IdP configuration.

Delete an IdP configuration.

Auth
Path Params
namestring

name

The name of the IdP configuration to delete.

DELETE /api/v2/cluster/IdpConfiguration/{name}
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

IdP configuration with the specified name was not found.

default

An unexpected error response.

Response

List all authorization map entries.

List all map entries between a clientID/claim/group and an access right (scope and role).

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

A successful response.

objectobject
authMapEntriesarray[object]
UUIDstring
namestring

Name of specific authorization mapping entry.

identifierstring

Identifier to map application or clientID/claim/group to Lightbits scope/role. This should either have the clientID of the relevant application (app mode), or an identifier of a specific claim/group extracted from the field specified by claimName (user or converge modes).

scopestring

Represents the scope assigned to this client/claim/group in the Lightbits cluster.

rolestring

Represents the role assigned to this client/claim/group in the Lightbits cluster.

idpConfigurationNamestring

IdP configuration that is associated with this authorization map entry.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Create an authorization map entry.

Create an authorization map entry that maps a clientID/claim/group to an access right (scope and role).

Auth
Request Body application/json
objectobject
namestring

Name of a specific authorization mapping entry.

identifierstring

Identifier to map application or clientID/claim/group to Lightbits scope/role. This should either have the clientID of the relevant application (app mode) or an identifier of a specific claim/group extracted from the field specified by claimName (user or converge modes).

scopestring

Represents the scope assigned to this client/claim/group in the Lightbits cluster.

rolestring

Represents the role assigned to this client/claim/group in the Lightbits cluster.

idpConfigurationNamestring

Idp configuration that is associated with this authorization map entry.

POST /api/v2/cluster/authMaps
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring

Name of specific authorization mapping entry.

identifierstring

Identifier to map application or clientID/claim/group to Lightbits scope/role. This should either have the clientID of the relevant application (app mode), or an identifier of a specific claim/group extracted from the field specified by claimName (user or converge modes).

scopestring

Represents the scope assigned to this client/claim/group in the Lightbits cluster.

rolestring

Represents the role assigned to this client/claim/group in the Lightbits cluster.

idpConfigurationNamestring

IdP configuration that is associated with this authorization map entry.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Get an authorization map entry.

Get an authorization map entry that maps a clientID/claim/group to an access right (scope and role).

Auth
Path Params
namestring

name

Name of a specific authorization mapping entry.

GET /api/v2/cluster/authMaps/{name}
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring

Name of specific authorization mapping entry.

identifierstring

Identifier to map application or clientID/claim/group to Lightbits scope/role. This should either have the clientID of the relevant application (app mode), or an identifier of a specific claim/group extracted from the field specified by claimName (user or converge modes).

scopestring

Represents the scope assigned to this client/claim/group in the Lightbits cluster.

rolestring

Represents the role assigned to this client/claim/group in the Lightbits cluster.

idpConfigurationNamestring

IdP configuration that is associated with this authorization map entry.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Auth map entry not found.

default

An unexpected error response.

Response

Delete an authorization map entry.

Delete an authorization map entry that maps a clientID/claim/group to an access right (scope and role).

Auth
Path Params
namestring

name

Name of a specific authorization mapping entry.

DELETE /api/v2/cluster/authMaps/{name}
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Auth map entry not found.

default

An unexpected error response.

Response

update an authorization map entry.

Update an authorization map entry that maps a clientID/claim/group to an access right (scope and role).

Auth
Path Params
namestring

name

Name of a specific authorization mapping entry.

Request Body application/json
objectobject
namestring

Name of a specific authorization mapping entry.

scopestring

The scope assigned to this client/claim/group in the Lightbits cluster.

rolestring

The role assigned to this client/claim/group in the Lightbits cluster.

identifierstring

Identifier to map application or claim/group to a Lightbits scope/role. This should either have the clientID of the relevant application (app mode) or an identifier of a specific claim/group extracted from the field specified by claimName (user or converge modes).

idpConfigurationNamestring

IdP configuration that is associated with this authorization map entry.

PUT /api/v2/cluster/authMaps/{name}
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring

Name of specific authorization mapping entry.

identifierstring

Identifier to map application or clientID/claim/group to Lightbits scope/role. This should either have the clientID of the relevant application (app mode), or an identifier of a specific claim/group extracted from the field specified by claimName (user or converge modes).

scopestring

Represents the scope assigned to this client/claim/group in the Lightbits cluster.

rolestring

Represents the role assigned to this client/claim/group in the Lightbits cluster.

idpConfigurationNamestring

IdP configuration that is associated with this authorization map entry.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Auth map entry not found.

default

An unexpected error response.

Response

Disable Federated Authentication.

Disable Federated Authentication.

Auth
Request Body application/json
objectobject
POST /api/v2/cluster/federatedAuthentication/disable
Responses application/json
200

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Enable Federated Authentication.

Enable Federated Authentication.

Auth
Request Body application/json
objectobject
POST /api/v2/cluster/federatedAuthentication/enable
Responses application/json
200

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Listing idp-client-configurations.

Listing idp-client-configurations.

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

A successful response.

objectobject
idpClientConfigurationsarray[object]
UUIDstring

The UUID of the idp-client-config entry.

namestring

A unique name of the idp-client-conf.

clientIdstring

A unique client ID identifier registered in the IdP to identify a specific application (or a client) that wants to access resources from a Lightbits cluster. When using converge authorization mode, this field must be configured to: NOT_APPLICABLE.

idpConfigurationNamestring

A reference to the IdP configuration that will use this client configuration.

claimNamestring

When working in user authorization/converge mode, the claim name specifies the name of the field in JWT claim from which to extract the identifier value from. Note that this field is only required when authzMode is user or converge.

authzModestring

The authorization mode will determine what information from access JWT will be mapped to a matching scope/role in the Lightbits cluster. The authorization mode can be one of the following: user, app, converge.

Enum: UnknownAuthzMode,App,User,Converge

Default: UnknownAuthzMode

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Create an idp-client-configuration.

Create an idp-client-configuration.

Auth
Request Body application/json
objectobject
namestring

A unique name of the idp-client-conf.

clientIdstring

A unique client ID identifier registered in the IdP to identify a specific application (or a client) that wants to access resources from a Lightbits cluster. When using converge authorization mode, this field must be configured to: NOT_APPLICABLE.

idpConfigurationNamestring

A reference to the IdP configuration that will use this client configuration.

claimNamestring

When working in user authorization/converge mode, the claim name specifies the name of the field in the JWT claim from which to extract the identifier value from. Note that this field is only required when authzMode is user or converge.

authzModestring

The authorization mode will determine what information from access JWT will be mapped to a matching scope/role in the Lightbits cluster. The authorization mode can be one of the following: user, app, converge.

Enum: UnknownAuthzMode,App,User,Converge

Default: UnknownAuthzMode

POST /api/v2/cluster/idpClientConfs
Responses application/json
200

A successful response.

objectobject

idp-client-configuration represents a configuration of a client-specific IdP entry in the Lightbits cluster. The Lightbits cluster supports IdP client configurations with three types of authorization modes: App, User, and Converge. App authorization mode should be used when Lightbits should map a specific client to a scope and role. User authorization mode should be used when Lightbits should map according to both the client ID and a specific claim in the JWT. Converge mode is used when Lightbits should map only according to the claim in the JWT. In this mode the client ID is ignored. Only a single such entry can be created for each IdP configuration. Lightbits API service will first attempt to check for a dedicated IdP client configuration using this client ID, falling back to to an optional converge entry only if no direct client specific entry is found.

UUIDstring

The UUID of the idp-client-config entry.

namestring

A unique name of the idp-client-conf.

clientIdstring

A unique client ID identifier registered in the IdP to identify a specific application (or a client) that wants to access resources from a Lightbits cluster. When using converge authorization mode, this field must be configured to: NOT_APPLICABLE.

idpConfigurationNamestring

A reference to the IdP configuration that will use this client configuration.

claimNamestring

When working in user authorization/converge mode, the claim name specifies the name of the field in JWT claim from which to extract the identifier value from. Note that this field is only required when authzMode is user or converge.

authzModestring

The authorization mode will determine what information from access JWT will be mapped to a matching scope/role in the Lightbits cluster. The authorization mode can be one of the following: user, app, converge.

Enum: UnknownAuthzMode,App,User,Converge

Default: UnknownAuthzMode

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Get an idp-client-configuration.

Get an idp-client-configuration.

Auth
Path Params
namestring

name

The name of the idp-client-conf to get.

GET /api/v2/cluster/idpClientConfs/{name}
Responses application/json
200

A successful response.

objectobject

idp-client-configuration represents a configuration of a client-specific IdP entry in the Lightbits cluster. The Lightbits cluster supports IdP client configurations with three types of authorization modes: App, User, and Converge. App authorization mode should be used when Lightbits should map a specific client to a scope and role. User authorization mode should be used when Lightbits should map according to both the client ID and a specific claim in the JWT. Converge mode is used when Lightbits should map only according to the claim in the JWT. In this mode the client ID is ignored. Only a single such entry can be created for each IdP configuration. Lightbits API service will first attempt to check for a dedicated IdP client configuration using this client ID, falling back to to an optional converge entry only if no direct client specific entry is found.

UUIDstring

The UUID of the idp-client-config entry.

namestring

A unique name of the idp-client-conf.

clientIdstring

A unique client ID identifier registered in the IdP to identify a specific application (or a client) that wants to access resources from a Lightbits cluster. When using converge authorization mode, this field must be configured to: NOT_APPLICABLE.

idpConfigurationNamestring

A reference to the IdP configuration that will use this client configuration.

claimNamestring

When working in user authorization/converge mode, the claim name specifies the name of the field in JWT claim from which to extract the identifier value from. Note that this field is only required when authzMode is user or converge.

authzModestring

The authorization mode will determine what information from access JWT will be mapped to a matching scope/role in the Lightbits cluster. The authorization mode can be one of the following: user, app, converge.

Enum: UnknownAuthzMode,App,User,Converge

Default: UnknownAuthzMode

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

idp-client-configuration with the specified name was not found.

default

An unexpected error response.

Response

Delete an idp-client-configuration.

Delete an idp-client-configuration.

Auth
Path Params
namestring

name

The name of the idp-client-conf to delete.

DELETE /api/v2/cluster/idpClientConfs/{name}
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

idp-client-configuration with the specified name was not found.

default

An unexpected error response.

Response

Update an idp-client-configuration.

Update an idp-client-configuration.

Auth
Path Params
namestring

name

The name of the idp-client-conf to update.

Request Body application/json
objectobject
namestring

The name of the idp-client-conf to update.

claimNamestring

When working in user authorization/converge mode, the claim name specifies the name of the field in the JWT claim from which to extract the identifier value from. Note that this field is only required when authzMode is user or converge.

PUT /api/v2/cluster/idpClientConfs/{name}
Responses application/json
200

A successful response.

objectobject

idp-client-configuration represents a configuration of a client-specific IdP entry in the Lightbits cluster. The Lightbits cluster supports IdP client configurations with three types of authorization modes: App, User, and Converge. App authorization mode should be used when Lightbits should map a specific client to a scope and role. User authorization mode should be used when Lightbits should map according to both the client ID and a specific claim in the JWT. Converge mode is used when Lightbits should map only according to the claim in the JWT. In this mode the client ID is ignored. Only a single such entry can be created for each IdP configuration. Lightbits API service will first attempt to check for a dedicated IdP client configuration using this client ID, falling back to to an optional converge entry only if no direct client specific entry is found.

UUIDstring

The UUID of the idp-client-config entry.

namestring

A unique name of the idp-client-conf.

clientIdstring

A unique client ID identifier registered in the IdP to identify a specific application (or a client) that wants to access resources from a Lightbits cluster. When using converge authorization mode, this field must be configured to: NOT_APPLICABLE.

idpConfigurationNamestring

A reference to the IdP configuration that will use this client configuration.

claimNamestring

When working in user authorization/converge mode, the claim name specifies the name of the field in JWT claim from which to extract the identifier value from. Note that this field is only required when authzMode is user or converge.

authzModestring

The authorization mode will determine what information from access JWT will be mapped to a matching scope/role in the Lightbits cluster. The authorization mode can be one of the following: user, app, converge.

Enum: UnknownAuthzMode,App,User,Converge

Default: UnknownAuthzMode

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

idp-client-configuration with the specified name was not found.

default

An unexpected error response.

Response

Rotate the cluster root encryption key (Mock).

Rotate the Cluster Level Encryption Key (KEK). After the rotation, all of the DEKs will be encrypted with the new KEK and the new KEK will be stored securely in the cluster.

Auth
POST /api/v2/cluster/clusterRootKey/rotate
Responses application/json
200

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

404

Rotation is already in progress.

409

Last rotation occurred less than the defined interval period between rotations

412

Precondition failed.

500

System internal error.

501

Unimplemented capability.

default

An unexpected error response.

Response

Get cluster root encryption key.

Securely export the Cluster-Level Encryption Key (KEK). As a security measure, the exported key in the response will be encrypted.

Auth
Query String
encryptingKeyGenerationstring

encryptingKeyGeneration. The generation of the encryption key. if not specified, the latest key will be exported.

userPublicKeystring

userPublicKey. Public key to use in order to encrypt the exported KEK.

GET /api/v2/cluster/clusterRootkey
Responses application/json
200

A successful response.

objectobject
keyobject

The object that includes each exported key and its generation.

encryptedKeystring

Cluster Encryption key encrypted with the given public key.

encryptingKeyGenerationstring

The Generation of the exported key.

401

Unauthorized: authentication failed.

501

Unimplemented capability.

default

An unexpected error response.

Response

Enable Cluster level encryption.

Enables cluster-level encryption. Once enabled, each volume will be encrypted with a Data Encryption Key (DEK), which is in turn encrypted by a Key Encryption Key (KEK). In the body, users can select the KeyStore type: tpm or file. Note: cluster encryption cannot be disabled once enabled.

Auth
Request Body application/json
objectobject
keyStorestring

Optional. Where to store the Encryption KEK on file or in tpm.

Enum: file,tpm

Default: file

POST /api/v2/cluster/encryption/enable
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

409

Encryption is already enabled or enabling.

412

Precondition failed.

500

System internal error.

501

Unimplemented capability.

default

An unexpected error response.

Response

Disable In-Band cluster authentication (Beta).

Disables NVMe-oF In Band Authentication. Hosts can connect to a Lightbits cluster without establishing trust (the default Lightbits cluster configuration). In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Request Body application/json
objectobject
subsystemNqnNamestring

Name of the subsystem NQN to disable In-Band Authentication for. If not specified, the cluster level will be assumed. Currently only supported for the default subsystem: DefaultSubSystem.

POST /api/v2/cluster/inBandAuth/disable
Responses application/json
200

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Enable In-Band cluster authentication (Beta).

Enables NVMe-oF In-Band Authentication. This allows a Lightbits cluster to selectively restrict the set of NVMe hosts (clients) that are allowed to connect to the NVMe target (Lightbits cluster), and also (optionally), restrict the set NVMe targets that a given NVMe host will trust and connect to. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Request Body application/json
objectobject
subsystemNqnNamestring

Name of the subsystem NQN to enable In-Band Authentication for. If not specified, the cluster level will be assumed. Currently only supported for the default subsystem: DefaultSubSystem.

POST /api/v2/cluster/inBandAuth/enable
Responses application/json
200

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response

Return a list of trusted hosts configurations.

Return a list of trusted hosts configurations. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Query String
projectNamestring

projectName. Optional. When specified returns only trusted hosts that belong to the specified project.

offsetUUIDstring

offsetUUID. Optional. When specified returns a list that starts a trusted host with a UUID equal to offsetUUID. Not currently supported.

limitstring

limit. Optional. Limits the number of trusted hosts in the response. Not currently supported.

GET /api/v2/hosts
Responses application/json
200

A successful response.

objectobject
hostsarray[object]

List of trusted hosts.

namestring

Unique name identifying the trusted host.

projectNamestring

Project this host belongs to.

UUIDstring

Unique identifier of the trusted host (internally generated by the Lightbits cluster).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

nextOffsetstring

If the response contains more hosts than the limit, the nextOffset will be returned. Currently this is not supported.

400

Invalid arguments.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Failed to find host name/project.

default

An unexpected error response.

Response

Get secrets of a host.

Get a trusted host secrets required for authentication and connection. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

projectName

Project name of the trusted host to get secrets for.

namestring

name

Name of the trusted host to get secrets for.

GET /api/v2/projects/{projectName}/trustedHostSecrets/{name}
Responses application/json
200

A successful response.

objectobject
hostobject

Configuration of info for the trusted host.

namestring

Unique name identifying the trusted host.

projectNamestring

Project this host belongs to.

UUIDstring

Unique identifier of the trusted host (internally generated by the Lightbits cluster).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

hostSecretstring

A host secret to allow a trusted connection from a host to the NVMe target (Lightbits cluster).

targetSecretstring

A target secret to allow a trusted connection from a NVMe target (Lightbits cluster) to a host.

400

Invalid arguments.

401

Unauthorized: authentication failed.

404

Failed to find host name/project.

default

An unexpected error response.

Response

Set the secrets for a host.

Set hosts secrets for a trusted host to allow trusted connectivity between a Lightbits cluster and hosts, as part of In-Band Authentication support. Specifying a host secret is mandatory for trusted connect of this host to the Lightbits cluster, Specifying a target secret - either explicitly or by using auto-gen mode - is optional, allowing only a trusted Lightbits cluster to connect to the host, If no target secret is specified, the target secret type will be set to disable. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

projectName

Project name of the trusted host to set secrets for.

namestring

name

Name of the trusted host to set secrets for.

Request Body application/json
objectobject
namestring

Name of the trusted host to set secrets for.

projectNamestring

Project name of the trusted host to set secrets for.

hostSecretstring

A trusted host secret to allow trusted connection from a host to the NVMe target (Lightbits cluster).

targetSecretstring

A target secret to allow a trusted connection from an NVMe target (Lightbits cluster) to a host.

targetSecretTypestring

Type of target secret to set Disabled (default)/ Enabled/ AutoGenSecret.

Enum: Disabled,Enabled,AutoGenSecret

Default: Disabled

PUT /api/v2/projects/{projectName}/trustedHostSecrets/{name}
Responses application/json
200

A successful response.

objectobject
400

Invalid arguments.

401

Unauthorized: authentication failed.

404

Failed to find host name/project.

default

An unexpected error response.

Response

Return a list of trusted hosts configurations.

Return a list of trusted hosts configurations. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

projectName

Optional. When specified returns only trusted hosts that belong to the specified project.

Query String
offsetUUIDstring

offsetUUID. Optional. When specified returns a list that starts a trusted host with a UUID equal to offsetUUID. Not currently supported.

limitstring

limit. Optional. Limits the number of trusted hosts in the response. Not currently supported.

GET /api/v2/projects/{projectName}/trustedHosts
Responses application/json
200

A successful response.

objectobject
hostsarray[object]

List of trusted hosts.

namestring

Unique name identifying the trusted host.

projectNamestring

Project this host belongs to.

UUIDstring

Unique identifier of the trusted host (internally generated by the Lightbits cluster).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

nextOffsetstring

If the response contains more hosts than the limit, the nextOffset will be returned. Currently this is not supported.

400

Invalid arguments.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Failed to find host name/project.

default

An unexpected error response.

Response

Create a trusted host resource.

Create a trusted host resource with configuration parameters needed for authentication and NVMe connectivity. When In-Band Authentication is enabled, only trusted hosts can connect to a Lightbits cluster. For each trusted host, an associated Lightbits resource must be created using this command. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

projectName

Project this trusted host belongs to.

Request Body application/json
objectobject
namestring

Unique name identifying the trusted host to create.

projectNamestring

Project this trusted host belongs to.

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

POST /api/v2/projects/{projectName}/trustedHosts
Responses application/json
200

A successful response.

objectobject
namestring

Unique name identifying the trusted host.

projectNamestring

Project this host belongs to.

UUIDstring

Unique identifier of the trusted host (internally generated by the Lightbits cluster).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

400

Invalid arguments.

401

Unauthorized: authentication failed.

403

Permission denied.

409

Host with the provided host name and project name already exists.

default

An unexpected error response.

Response

Get a host.

Get a trusted host configuration. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

Project this trusted host belongs to (required to identify resource to get).

namestring

name

Name of the trusted host to get (required to identify resource to get).

GET /api/v2/projects/{projectName}/trustedHosts/{name}
Responses application/json
200

A successful response.

objectobject
namestring

Unique name identifying the trusted host.

projectNamestring

Project this host belongs to.

UUIDstring

Unique identifier of the trusted host (internally generated by the Lightbits cluster).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

400

Invalid arguments.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Failed to find host name/project.

default

An unexpected error response.

Response

Delete a trusted host.

Delete a trusted host configuration. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

projectName

Project this trusted host belongs to (required to identify resource to delete).

namestring

name

Name of the trusted host to delete (required to identify resource to delete).

DELETE /api/v2/projects/{projectName}/trustedHosts/{name}
Responses application/json
200

A successful response.

objectobject
400

Invalid arguments.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Failed to find host name/project .

default

An unexpected error response.

Response

Update a host.

Update a trusted host configuration, optionally modifying labels. In-Band Authentication functionality and its APIs are under development, available for evaluation purposes only. They should not be used in production clusters.

Auth
Path Params
projectNamestring

projectName

Project this trusted host belongs to (required to identify resource to update).

namestring

name

Name of the trusted host to update (required to identify resource to update).

Request Body application/json
objectobject
namestring

Name of the trusted host to update (required to identify resource to update).

projectNamestring

Project this trusted host belongs to (required to identify resource to update).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host to update. Currently update of hostNqn is not supported.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default

PUT /api/v2/projects/{projectName}/trustedHosts/{name}
Responses application/json
200

A successful response.

objectobject
namestring

Unique name identifying the trusted host.

projectNamestring

Project this host belongs to.

UUIDstring

Unique identifier of the trusted host (internally generated by the Lightbits cluster).

hostNqnstring

Host NQN (NVMe Qualified Name) of the trusted host.

labelsarray[object]

Optional. Labels to associate with the trusted host.

keystring
valuestring
authRequiredstring

Optional. authRequired is set by default.

400

Invalid arguments.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Failed to find host name/project.

default

An unexpected error response.

Response

Upgrade cluster.

Upgrades servers in the cluster one by one. Only servers that do not cause loss of service are upgraded. The progress and status of the upgrade operation can be monitored by be polling the server object.

Auth
Request Body application/json
objectobject
InstallPkgUristring

URI of Lightbits package to install.

UUIDsarray[string]

Optional. Servers with given UUIDs are upgraded. If not given, all servers in the cluster are upgraded according to an upgradability (loss of service) check.

ProxyInfoobject

Optional. Proxy server information for upgrade behind proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

POST /api/v2/cluster/upgrade
Responses application/json
200

A successful response.

objectobject
400

Invalid UUID or URI.

401

Unauthorized: authentication failed.

403

Permission denied.

404

One of the provided UUIDs is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Upgrade server.

Upgrades server given by UUID with a package pointed by URI. Since upgrading a server is a long operation, the status of the upgrade shall be fetched from server object

Auth
Path Params
UUIDstring

UUID

The server's UUID for the upgrade server request.

Request Body application/json
objectobject
UUIDstring

The server's UUID for the upgrade server request.

InstallPkgUristring

URI of Lightbits package to install.

ForceUpgradeboolean

Optional. When true, bypasses the upgradability (loss of service) check.

ProxyInfoobject

Optional. Proxy server information for upgrade behind proxy.

URLstring

URL of the proxy server. Pattern: "http://:".

Usernamestring

Username for the proxy server.

Passwordstring

Password for the proxy server.

POST /api/v2/servers/{UUID}/upgrade
Responses application/json
200

A successful response.

objectobject
400

Invalid UUID or URI.

401

Unauthorized: authentication failed.

403

Permission denied.

404

UUID not found

409

There is a user operation in progress on the server.

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List all cluster configuration parameters values.

List all cluster configuration parameters values.

Auth
GET /api/v2/clusterConfig
Responses application/json
200

A successful response.

objectobject
valuesarray[object]
namestring

Specify the name of the parameter to update: ClusterName [name]/ ClockDriftIntervalForRaisingEvent [time]/ DeviceHealthIntervalForRaisingEvent [time]/ DurationToTurnIntoPermanentFailure [time]/ VolumeDeletionFromNodeDelay [time]/ DefaultQoSName [string]/ AllowedNumRevives [int] DisableVolumeStatisticsExport [bool]/ EnableTrim [bool]/ EvictionNoProgressTimeout [time]/ RevivesWindowDuration [time].

valuestring

The value of the cluster config parameter, where the specific units are specific to the specified parameter.

400

Invalid argument.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Update Cluster Config value.

Update Cluster Config value.

Auth
Path Params
configParam.namestring

ClusterConfigParam name

Specify the name of the parameter to update: ClusterName [name]/ ClockDriftIntervalForRaisingEvent [time]/ DeviceHealthIntervalForRaisingEvent [time]/ DurationToTurnIntoPermanentFailure [time]/ VolumeDeletionFromNodeDelay [time]/ DefaultQoSName [string]/ AllowedNumRevives [int] DisableVolumeStatisticsExport [bool]/ EnableTrim [bool]/ EvictionNoProgressTimeout [time]/ RevivesWindowDuration [time].

Request Body application/json
objectobject
configParamobject

Cluster config parameter name and value to update.

namestring

Specify the name of the parameter to update: ClusterName [name]/ ClockDriftIntervalForRaisingEvent [time]/ DeviceHealthIntervalForRaisingEvent [time]/ DurationToTurnIntoPermanentFailure [time]/ VolumeDeletionFromNodeDelay [time]/ DefaultQoSName [string]/ AllowedNumRevives [int] DisableVolumeStatisticsExport [bool]/ EnableTrim [bool]/ EvictionNoProgressTimeout [time]/ RevivesWindowDuration [time].

valuestring

The value of the cluster config parameter, where the specific units are specific to the specified parameter.

PUT /api/v2/clusterConfig/{configParam.name}
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

404

Cluster configuration parameter was not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get a specific cluster configuration parameter's value.

Get a specific cluster configuration parameter's value.

Auth
Path Params
namestring

name

specify name of parameter to get: ClusterName/ ClockDriftIntervalForRaisingEvent/ DeviceHealthIntervalForRaisingEvent/ DurationToTurnIntoPermanentFailure/ VolumeDeletionFromNodeDelay/ DefaultQoSName/ AllowedNumRevives/ DisableVolumeStatisticsExport EnableTrim/ EvictionNoProgressTimeout/ RevivesWindowDuration

GET /api/v2/clusterConfig/{name}
Responses application/json
200

A successful response.

objectobject
namestring

Specify the name of the parameter to update: ClusterName [name]/ ClockDriftIntervalForRaisingEvent [time]/ DeviceHealthIntervalForRaisingEvent [time]/ DurationToTurnIntoPermanentFailure [time]/ VolumeDeletionFromNodeDelay [time]/ DefaultQoSName [string]/ AllowedNumRevives [int] DisableVolumeStatisticsExport [bool]/ EnableTrim [bool]/ EvictionNoProgressTimeout [time]/ RevivesWindowDuration [time].

valuestring

The value of the cluster config parameter, where the specific units are specific to the specified parameter.

400

Invalid argument.

404

Cluster configuration parameter was not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List feature flags.

List feature flags.

Auth
GET /api/v2/featureFlags
Responses application/json
200

A successful response.

objectobject
featureFlagsobject
*object
namestring
enabledboolean
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get feature flag status.

Get feature flag status enable/disable corresponding to the given feature flag name.

Auth
Path Params
namestring

name

The name of the feature flag to get: "event-log", "evict-data", "fail-in-place", "in-band-authentication", "proactive-rebalance".

GET /api/v2/featureFlags/{name}
Responses application/json
200

A successful response.

objectobject
namestring
enabledboolean
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Disable feature flag.

Disable feature flag status corresponding to the given feature flag name.

Auth
Path Params
namestring

name

The name of the feature flag to disable: "event-log", "evict-data", "fail-in-place", "in-band-authentication", "proactive-rebalance".

Request Body application/json
objectobject
namestring

The name of the feature flag to disable: "event-log", "evict-data", "fail-in-place", "in-band-authentication", "proactive-rebalance".

POST /api/v2/featureFlags/{name}/disable
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

501

Unimplemented capability.

default

An unexpected error response.

Response

Enable feature flag.

Enable feature flag status corresponding to the given feature flag name.

Auth
Path Params
namestring

name

The name of the feature flag to enable: "event-log", "evict-data", "fail-in-place", "in-band-authentication", "proactive-rebalance".

Request Body application/json
objectobject
namestring

The name of the feature flag to enable: "event-log", "evict-data", "fail-in-place", "in-band-authentication", "proactive-rebalance".

POST /api/v2/featureFlags/{name}/enable
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get a list of connected hosts.

List all hosts connected to a cluster, or only connected hosts associated with a volume.

Auth
Query String
hostNQNstring

hostNQN. Not supported (hostNQN filtering parameter is ignored and all connected hosts will be returned).

volumeUUIDstring

hostNQN. Optionally filter hosts associated with a specific volume (the default operation will return all hosts connected to the cluster).

GET /api/v2/connectedHosts
Responses application/json
200

A successful response.

objectobject
connectedHostsarray[object]
hostNQNstring

Host's NVMe qualified name (NQN).

iPAddressstring

Host's IP addresses.

hostnamestring

Host's name.

volumeUUIDsarray[string]

list of volumes to which this host connects to.

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

Get connected host information.

Get connected host information given by hostNQN.

Auth
Path Params
hostNQNstring

hostNQN

Host NQN to get.

GET /api/v2/connectedHosts/{hostNQN}
Responses application/json
200

A successful response.

objectobject
hostNQNstring

Host's NVMe qualified name (NQN).

iPAddressstring

Host's IP addresses.

hostnamestring

Host's name.

volumeUUIDsarray[string]

list of volumes to which this host connects to.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Provided host NQN is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get list of nodes.

List Nodes. An option to filter is done by the following parameters: 1. Name - e.g., api/v2/nodes?Name= 2. UUID - e.g., api/v2/nodes?UUID= 3. FailureDomain - e.g., api/v2/nodes?FailureDomain=

Auth
Query String
namestring

Name. Filter nodes by node name (either no filter, or only name, UUID, or failureDomain should be specified).

UUIDstring

Name. Filter nodes by node name (either no filter, or only name, UUID, or failureDomain should be specified).

failureDomainstring

failureDomain. Filter nodes by a failure domain associated with nodes (either no filter, or only name, UUID, or failureDomain should be specified).

GET /api/v2/nodes
Responses application/json
200

A successful response.

objectobject
nodesarray[object]
namestring
UUIDstring
statestring

Reserved value. Default should return an error, rather than a true state that is incorrect.

  • Active: 1

Node is completed join cluster flow.

  • Activating: 2

Node is is the process of coming up (starting required services) and joining cluster.

  • Inactive: 3

Node is is Inactive (this includes internal states Removing and failed).

  • Unattached: 4

Node is not attached to cluster (none of the cluster pgs contain this pg).

  • Attaching: 6

Attaching a node to the cluster ongoing (replacing old node in pgs with this node).

  • Detaching: 7

Detaching a node from the cluster ongoing (replacing this node in pgs with this a new node).

Enum: Unknown,Active,Activating,Inactive,Unattached,Attaching,Detaching

Default: Unknown

statusstring

Machine-readable internal state of the node we want to report to the cluster.

  • ConnectivityOK: reported during NodeStateEnum==Adding
  • IssuedDeletePeer: reported during NodeStateEnum==Removing

Enum: NoStatus,ConnectivityOK,ConnectivityProblem,IssuedDeletePeer

Default: NoStatus

nvmeEndpointstring
failureDomainsarray[string]
failureInfostring
hostnamestring
inLocalRebuildboolean
localRebuildProgressint64
numManagedDevicesint32
maxNvmeDevicesint64
ecboolean
statisticsobject
managedPhysicalStoragestring

Sum of all managed and healthy SSDs capacities, given in bytes.

effectivePhysicalStoragestring

Effective Physical storage excluding overhead of OVP and Parity, given in bytes.

logicalStoragestring

Sum of capacities of all allocated volumes, given in bytes.

logicalUsedStoragestring

Logical storage space used by all volumes (n of LBAs x 4096), given in bytes.

physicalUsedStoragestring

Physical storage space occupied by all volumes (data only), given in bytes.

physicalUsedStorageIncludingParitystring

Physical storage space occupied by all data including Parity overhead when EC enabled (physical ndisks/(ndisks -1)), given in bytes.

freePhysicalStoragestring

Free storage before entering to read-only mode, given in bytes.

estimatedFreeLogicalStoragestring

Estimated free storage before entering to read-only mode assuming current compression ratio, given in bytes.

estimatedLogicalStoragestring

Estimate of total available logical storage based on current compression ratio (effective * compression).

compressionRationumber

compression ratio logicalUsedStorage/physicalUsedStorage.

UnrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

RecoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

GarbageCollectorDataIntegrityErrorsstring

Number of data integrity errors that were detected by the GC.

metadataUtilizationnumber

Metadata RAM utilization, shown as: used/available

serverUUIDstring
ETagstring

identifier for a specific version of a resource

readOnlyboolean
powerupProgressint64
permanentFailureboolean
journalDeviceNotFoundstring
journalNvmeDeviceobject
deviceSerialstring

The serial number of the NVMe device.

journalRaidDeviceobject
deviceUUIDstring

The UUID of the RAID device.

memberDeviceSerialsarray[string]

Serial numbers of the devices participating in the RAID array.

400

Invalid argument, or several mutually exclusive arguments are provided.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Replace Node.

The request is identified by the UUID of the replaced node (referred to as SrcNodeUUID). The required parameters in the body are:

  1. TargetNodeUUID - the UUID of the target node that replaces the src Node. The command will succeed only if srcNode is Inactive, and targetNode is Unattached. Users should disable the server of the srcNode (that will make the node Inactive), and assure that targetNode is Unattached (possibly as a new node without assigned PGs or by replacing its PG to another node).

Auth
Path Params
SrcNodeUUIDstring

SrcNodeUUID

The source node's UUID for the replace node request.

Request Body application/json
objectobject
SrcNodeUUIDstring

The source node's UUID for the replace node request.

TargetNodeUUIDstring

The target node's UUID for the replace node request.

ReplaceWhileActiveboolean

Optional. When true, the replace node operation will be performed while the server is active. Default is False.

POST /api/v2/nodes/{SrcNodeUUID}/replace
Responses application/json
200

A successful response.

objectobject
400

Invalid argument provided. Source and target nodes are not in the correct states.

401

Unauthorized: authentication failed.

403

Permission denied.

404

One of the provided UUIDs is not found.

409

There is a user operation in progress on one of the nodes.

412

Etag mismatch.

429

Too many commands in progress.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get node information.

Get node information identified by the UUID of the node.

Auth
Path Params
UUIDstring

UUID

ID of node to get.

GET /api/v2/nodes/{UUID}
Responses application/json
200

A successful response.

objectobject
namestring
UUIDstring
statestring

Reserved value. Default should return an error, rather than a true state that is incorrect.

  • Active: 1

Node is completed join cluster flow.

  • Activating: 2

Node is is the process of coming up (starting required services) and joining cluster.

  • Inactive: 3

Node is is Inactive (this includes internal states Removing and failed).

  • Unattached: 4

Node is not attached to cluster (none of the cluster pgs contain this pg).

  • Attaching: 6

Attaching a node to the cluster ongoing (replacing old node in pgs with this node).

  • Detaching: 7

Detaching a node from the cluster ongoing (replacing this node in pgs with this a new node).

Enum: Unknown,Active,Activating,Inactive,Unattached,Attaching,Detaching

Default: Unknown

statusstring

Machine-readable internal state of the node we want to report to the cluster.

  • ConnectivityOK: reported during NodeStateEnum==Adding
  • IssuedDeletePeer: reported during NodeStateEnum==Removing

Enum: NoStatus,ConnectivityOK,ConnectivityProblem,IssuedDeletePeer

Default: NoStatus

nvmeEndpointstring
failureDomainsarray[string]
failureInfostring
hostnamestring
inLocalRebuildboolean
localRebuildProgressint64
numManagedDevicesint32
maxNvmeDevicesint64
ecboolean
statisticsobject
managedPhysicalStoragestring

Sum of all managed and healthy SSDs capacities, given in bytes.

effectivePhysicalStoragestring

Effective Physical storage excluding overhead of OVP and Parity, given in bytes.

logicalStoragestring

Sum of capacities of all allocated volumes, given in bytes.

logicalUsedStoragestring

Logical storage space used by all volumes (n of LBAs x 4096), given in bytes.

physicalUsedStoragestring

Physical storage space occupied by all volumes (data only), given in bytes.

physicalUsedStorageIncludingParitystring

Physical storage space occupied by all data including Parity overhead when EC enabled (physical ndisks/(ndisks -1)), given in bytes.

freePhysicalStoragestring

Free storage before entering to read-only mode, given in bytes.

estimatedFreeLogicalStoragestring

Estimated free storage before entering to read-only mode assuming current compression ratio, given in bytes.

estimatedLogicalStoragestring

Estimate of total available logical storage based on current compression ratio (effective * compression).

compressionRationumber

compression ratio logicalUsedStorage/physicalUsedStorage.

UnrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

RecoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

GarbageCollectorDataIntegrityErrorsstring

Number of data integrity errors that were detected by the GC.

metadataUtilizationnumber

Metadata RAM utilization, shown as: used/available

serverUUIDstring
ETagstring

identifier for a specific version of a resource

readOnlyboolean
powerupProgressint64
permanentFailureboolean
journalDeviceNotFoundstring
journalNvmeDeviceobject
deviceSerialstring

The serial number of the NVMe device.

journalRaidDeviceobject
deviceUUIDstring

The UUID of the RAID device.

memberDeviceSerialsarray[string]

Serial numbers of the devices participating in the RAID array.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Node UUID is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Restart a running node instance

This operation restarts the node instance for a specific node by restarting only its own services. This includes duroslight and the gftl backend instances (unless --consider-backend=false is specified). This is useful for dual-node servers where you want to restart a single node instance without affecting the other node. This operation will be blocked if it could cause data unavailability. Use --force to override this check. Please note that this is a potentially disruptive operation that should be used with care. Only system administrators can execute this command. Note that node maintenance operations (stop/start/restart) are a tech preview, for evaluative purposes only. They should not be used in production clusters.

Auth
Path Params
nodeUUIDstring

nodeUUID

The UUID of the node to restart.

Request Body application/json
objectobject
nodeUUIDstring

The UUID of the node to restart.

considerBackendboolean

Whether to include the backend (gftl) when restarting the node. When true, both duroslight and gftl backend will be restarted. When false (default), only duroslight and control plane components will be restarted. Default: false

forceboolean

When set to true, bypasses the safety check that prevents restarting a node if it would cause volumes to become unavailable or read-only. WARNING: Using force=true may cause temporary data unavailability. Default: false

POST /api/v2/nodes/{nodeUUID}/restart
Responses application/json
200

A successful response.

objectobject
default

An unexpected error response.

Response

Start a stopped node instance

This operation starts a specific node instance. Starting all of the node's Lightbits services, including duroslight and the backend instance. This is useful for dual-node servers where you want to start a single node instance without affecting the other node. Only system administrators can execute this command. Note that node maintenance operations (stop/start/restart) are a tech preview, for evaluative purposes only. They should not be used in production clusters.

Auth
Path Params
nodeUUIDstring

nodeUUID

The UUID of the node to start.

Request Body application/json
objectobject
nodeUUIDstring

The UUID of the node to start.

POST /api/v2/nodes/{nodeUUID}/start
Responses application/json
200

A successful response.

objectobject
default

An unexpected error response.

Response

Stop a running node instance

This operation stops a specific node instance. Stopping all of the node's Lightbits services, including duroslight and the backend instance. This is useful for dual-node servers where you want to stop a single node instance without affecting the other node. This operation is blocked if it could cause data unavailability. Use --force to override this check. Please note that this is a potentially disruptive operation that should be used with care. Only system administrators can execute this command. Note that node maintenance operations (stop/start/restart) are a tech preview, for evaluative purposes only. They should not be used in production clusters.

Auth
Path Params
nodeUUIDstring

nodeUUID

The UUID of the node to stop.

Request Body application/json
objectobject
nodeUUIDstring

The UUID of the node to stop.

forceboolean

When set to true, bypasses the safety check that prevents stopping a node if it would cause volumes to become unavailable or read-only. WARNING: Using force=true may cause data unavailability. Default: false

POST /api/v2/nodes/{nodeUUID}/stop
Responses application/json
200

A successful response.

objectobject
default

An unexpected error response.

Response

Retrieve a list of NVMe devices, with optional filtering selections.

A request to list NVMe devices is exposed via this API. The list of NVMe devices can be filtered by the following parameters: 1. ServerUUID - e.g., api/v2/nvmeDevices?ServerUUID= 2. NodeUUID - e.g., api/v2/nvmeDevices?NodeUUID=.

Auth
Query String
nodeUUIDstring

nodeUUID. Optionally, list all NVMe devices managed by a specified node.

serverUUIDstring

serverUUID. Optionally, list all NVMe devices attached to a specified server.

deviceUsagesarray

deviceUsage. Optionally, filter NVMe devices by their usage

Enum: Unknown,Data,Journal,OS,UnManaged

GET /api/v2/nvmeDevices
Responses application/json
200

A successful response.

objectobject
NvmeDevicesarray[object]
sizestring

Total capacity of the device in bytes.

numaNodeIDstring

The NUMA node ID this device is associated with.

modelstring

Model string of the device, if exists.

serialstring

Serial of the block device, if exists.

serverUUIDstring

The UUID of the server to which the block device is installed.

statestring

Describes the state of the device. Unmanaged device state will be None.

Enum: None,Healthy,Adding,Rebuilding,Failed

Default: None

failureTimedate-time

Relevant only for NVMe devices with deviceUsage set to Data. Timestamp that will be updated in case the device has failed.

rebuildCompletionTimedate-time

Relevant only for NVMe devices with deviceUsage set to Data. Timestamp that will be updated once GFTL has completed to rebuild all the data that the device had, and we are safe for second failure.

namestring

Device name or address.

nodeUUIDstring

The UUID of the node that manages the device. Empty string if the device is not managed.

ETagstring

identifier for a specific version of a resource.

statisticsobject

Relevant only for NVMe devices with deviceUsage set to Data. Various nvme-device related statistics.

UnrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

RecoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

deviceUsagestring

Specifies the assignment of the NVMe device for example data, journal, etc..

Enum: Unknown,Data,Journal,OS,UnManaged

Default: Unknown

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Add NVMe device to a node.

Add NVMe device identified by its serial number to a node identified by its UUID. If the NVMe device is already used by another node, or cannot be attached to the node, the command fails.

Auth
Request Body application/json
objectobject
serialNumberstring

NVMe device serial number.

nodeUUIDstring

UUID of node to add the NVMe device to.

POST /api/v2/nvmeDevices
Responses application/json
200

A successful response.

objectobject
400

Empty serial or empty node UUID is provided, the device is already attached to another node, the number of node's managed devices reached the maximum, the node is not listed as the server's node for the server that device belongs to, or the node is not active.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Serial or node UUID not found.

409

There is a user operation in progress on the device

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Retrieve a specific NVMe device with a filtering option.

Request NVMe device information according to it's serial number. Example usage: api/v2/nvmeDevices/15eb21c0-35ae-478d-b.

Auth
Path Params
Serialstring

Serial

Serial number of the NVMe device to get.

GET /api/v2/nvmeDevices/{Serial}
Responses application/json
200

A successful response.

objectobject
sizestring

Total capacity of the device in bytes.

numaNodeIDstring

The NUMA node ID this device is associated with.

modelstring

Model string of the device, if exists.

serialstring

Serial of the block device, if exists.

serverUUIDstring

The UUID of the server to which the block device is installed.

statestring

Describes the state of the device. Unmanaged device state will be None.

Enum: None,Healthy,Adding,Rebuilding,Failed

Default: None

failureTimedate-time

Relevant only for NVMe devices with deviceUsage set to Data. Timestamp that will be updated in case the device has failed.

rebuildCompletionTimedate-time

Relevant only for NVMe devices with deviceUsage set to Data. Timestamp that will be updated once GFTL has completed to rebuild all the data that the device had, and we are safe for second failure.

namestring

Device name or address.

nodeUUIDstring

The UUID of the node that manages the device. Empty string if the device is not managed.

ETagstring

identifier for a specific version of a resource.

statisticsobject

Relevant only for NVMe devices with deviceUsage set to Data. Various nvme-device related statistics.

UnrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

RecoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

deviceUsagestring

Specifies the assignment of the NVMe device for example data, journal, etc..

Enum: Unknown,Data,Journal,OS,UnManaged

Default: Unknown

401

Unauthorized: authentication failed.

403

Permission denied.

404

Serial is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Update NVMe device on a node.

Update NVMe device defined by serial number on a server defined by server UUID.

Auth
Path Params
serialNumberstring

serialNumber

NVMe device serial number.

Request Body application/json
objectobject
serverUUIDstring

Server UUID of the NVMe device to update.

serialNumberstring

NVMe device serial number.

ledPatternstring

NVMe device LED pattern. specify either "locate", "rebuild" or "locate-off"

POST /api/v2/nvmeDevices/{serialNumber}
Responses application/json
200

A successful response.

objectobject
400

Empty serial or empty server UUID is provided, the device is already attached to another node, the number of node's managed devices reached the maximum, node is not listed as server's node for the server that the device belongs to, or node is not active.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Serial or server UUID not found.

409

There is a user operation in progress on the device.

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List policies.

A request to list policies. The result can be filtered by either name or UUID.

Auth
Query String
UUIDstring

UUID. Optionally filter specific policy by UUID.

namestring

name. Optionally filter specific policy by name.

projectNamestring

projectName. Optionally filter policies by project name.

GET /api/v2/policies
Responses application/json
200

A successful response.

objectobject
policiesarray[object]
UUIDstring
namestring
descriptionstring
statestring

Enum: Unknown,Creating,Active,Updating,Deprecated,Failed

Default: Unknown

QoSRateLimitPolicyobject
projectsNamesScopearray[string]

Lists the projects that have access to this policy (relevant if policyVisibility=Scoped)

policyVisibilitystring

Policy Visibility, specifics who has access to this policy

Enum: Unavailable,Scoped,Global

Default: Unavailable

limitIOPSobject

A limit of 0 means no rate limit. Bandwidth limit is in units of MB/s.

writeIOPSLimitint64

Volume write bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

readIOPSLimitint64

Volume read bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

limitBwobject
writeBWLimitint64

Volume write bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

readBWLimitint64

Volume read bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

limitIOPSPerGBobject
writeIOPSPerGBLimitint64

Volume write bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

readIOPSPerGBLimitint64

Volume read bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

400

Invalid argument.

404

Returned when the policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Create a policy.

A policy is a set of user-defined rules that should be applied to one or more objects in the system.

Auth
Request Body application/json
objectobject
namestring

Policy name

descriptionstring

Policy description, up to 256B in length

qoSRateLimitPolicyobject
projectsNamesScopearray[string]

Lists the projects that have access to this policy (relevant if policyVisibility=Scoped)

policyVisibilitystring

Policy Visibility, specifics who has access to this policy

Enum: Unavailable,Scoped,Global

Default: Unavailable

limitIOPSobject

A limit of 0 means no rate limit. Bandwidth limit is in units of MB/s.

writeIOPSLimitint64

Volume write bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

readIOPSLimitint64

Volume read bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

limitBwobject
writeBWLimitint64

Volume write bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

readBWLimitint64

Volume read bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

limitIOPSPerGBobject
writeIOPSPerGBLimitint64

Volume write bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

readIOPSPerGBLimitint64

Volume read bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

POST /api/v2/policies
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
descriptionstring
statestring

Enum: Unknown,Creating,Active,Updating,Deprecated,Failed

Default: Unknown

QoSRateLimitPolicyobject
projectsNamesScopearray[string]

Lists the projects that have access to this policy (relevant if policyVisibility=Scoped)

policyVisibilitystring

Policy Visibility, specifics who has access to this policy

Enum: Unavailable,Scoped,Global

Default: Unavailable

limitIOPSobject

A limit of 0 means no rate limit. Bandwidth limit is in units of MB/s.

writeIOPSLimitint64

Volume write bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

readIOPSLimitint64

Volume read bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

limitBwobject
writeBWLimitint64

Volume write bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

readBWLimitint64

Volume read bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

limitIOPSPerGBobject
writeIOPSPerGBLimitint64

Volume write bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

readIOPSPerGBLimitint64

Volume read bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

400

Provided invalid argument with one of the following reasons: mandatory argument is missing, invalid argument is provided name contains illegal characters.

404

One of the given projects was not found.

409

Policy with the provided name already exists.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get policy.

A request to get policy by either name or UUID.

Auth
Path Params
UUIDstring

UUID

UUID of the policy to get (specify either UUID or name)

Query String
namestring

name. name of the policy to get (specify either UUID or name)

projectNamestring

projectName. The name of the project this policy belongs to

GET /api/v2/policies/{UUID}
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
descriptionstring
statestring

Enum: Unknown,Creating,Active,Updating,Deprecated,Failed

Default: Unknown

QoSRateLimitPolicyobject
projectsNamesScopearray[string]

Lists the projects that have access to this policy (relevant if policyVisibility=Scoped)

policyVisibilitystring

Policy Visibility, specifics who has access to this policy

Enum: Unavailable,Scoped,Global

Default: Unavailable

limitIOPSobject

A limit of 0 means no rate limit. Bandwidth limit is in units of MB/s.

writeIOPSLimitint64

Volume write bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

readIOPSLimitint64

Volume read bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

limitBwobject
writeBWLimitint64

Volume write bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

readBWLimitint64

Volume read bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

limitIOPSPerGBobject
writeIOPSPerGBLimitint64

Volume write bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

readIOPSPerGBLimitint64

Volume read bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

400

Invalid argument.

404

Returned when the policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Delete policy.

Delete policy information by provided policy UUID.

Auth
Path Params
UUIDstring

UUID

UUID of the policy to delete (specify either UUID or name).

Query String
namestring

name. name of the policy to delete (specify either UUID or name).

DELETE /api/v2/policies/{UUID}
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

404

The given policy to delete was not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Update a policy.

Updates user pre-defined policy by overriding the existing properties with the given arguments.

Auth
Path Params
UUIDstring

UUID

The UUID of the policy request to update. If both name and UUID are provided, the name is ignored.

Request Body application/json
objectobject
UUIDstring

The UUID of the policy request to update. If both name and UUID are provided, the name is ignored.

namestring

The name of the policy request to update. If both name and UUID are provided, the name is ignored.

descriptionstring

A short (up to 256B) description for this resource.

qoSRateLimitPolicyobject
projectsNamesScopearray[string]

Lists the projects that have access to this policy (relevant if policyVisibility=Scoped)

policyVisibilitystring

Policy Visibility, specifics who has access to this policy

Enum: Unavailable,Scoped,Global

Default: Unavailable

limitIOPSobject

A limit of 0 means no rate limit. Bandwidth limit is in units of MB/s.

writeIOPSLimitint64

Volume write bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

readIOPSLimitint64

Volume read bandwidth limits, specified in units of IOPs. The granularity increases by 256 IOPs each time. 0 means unlimited.

limitBwobject
writeBWLimitint64

Volume write bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

readBWLimitint64

Volume read bandwidth limits, specified in units of MB/s. The granularity must be in full MB/s. 0 means unlimited.

limitIOPSPerGBobject
writeIOPSPerGBLimitint64

Volume write bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

readIOPSPerGBLimitint64

Volume read bandwidth limits, specified in units of IOPs per GB of volume size. 0 means unlimited.

PUT /api/v2/policies/{UUID}
Responses application/json
200

A successful response.

objectobject
400

Provided invalid argument(s) with one of the following reasons: mandatory argument is missing, mutually exclusive arguments were provided invalid argument is provided.

404

The given policy was not found or the request is not supported.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List resource policies.

A request to list resource policies. The result can be filtered by either name or UUID.

Auth
Path Params
projectNamestring

projectName

Optionally filter policies by project name.

Query String
UUIDstring

UUID. Optionally filter specific policy by UUID.

volumeUUIDstring

volumeUUID. Optionally filter all policies of a specific volume.

GET /api/v2/projects/{projectName}/resourcePolicies
Responses application/json
200

A successful response.

objectobject
resourcePoliciesarray[object]
UUIDstring
namestring
resourceUUIDstring
resourceNamestring
projectNamestring
schedulePolicyobject
snapshotSchedulePolicyobject
hourlyScheduleobject
startTimedate-time
hoursInCycleint64
dailyScheduleobject
startTimedate-time
daysInCycleint64
weeklyScheduleobject
daysOfWeekarray[object]
startTimedate-time
daystring

Enum: DayOfWeekUnspecified,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

Default: DayOfWeekUnspecified

retentionTimestring
descriptionstring
statestring

Enum: UnknownState,Creating,Active,Deleting,Failed

Default: UnknownState

defaultResourcePoliciesarray[object]
policyTypestring

For internal use only

  • snapshot: Snapshot

Create snapshots per volumes policy

  • qosRateLimit: QosRateLimit

Volumes QoS rate limit policy

Enum: unknown,snapshot,qosRateLimit

Default: unknown

policyUUIDstring
400

Invalid argument.

404

Returned when the resource policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Create a resource policy.

A resource policy.

Auth
Path Params
projectNamestring

projectName

The project this resource policy belongs to.

Request Body application/json
objectobject
namestring

The name of the resource policy.

resourceUUIDstring

The resource UUID. If both name and UUID are provided, the name is ignored and only the UUID is used.

resourceNamestring

The resource name. If both name and UUID are provided, the name is ignored and only the UUID is used.

projectNamestring

The project this resource policy belongs to.

schedulePolicyobject

The schedule policy for this resource policy.

snapshotSchedulePolicyobject
hourlyScheduleobject
startTimedate-time
hoursInCycleint64
dailyScheduleobject
startTimedate-time
daysInCycleint64
weeklyScheduleobject
daysOfWeekarray[object]
startTimedate-time
daystring

Enum: DayOfWeekUnspecified,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

Default: DayOfWeekUnspecified

retentionTimestring
descriptionstring

A short (up to 256B) description for this resource.

POST /api/v2/projects/{projectName}/resourcePolicies
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
resourceUUIDstring
resourceNamestring
projectNamestring
schedulePolicyobject
snapshotSchedulePolicyobject
hourlyScheduleobject
startTimedate-time
hoursInCycleint64
dailyScheduleobject
startTimedate-time
daysInCycleint64
weeklyScheduleobject
daysOfWeekarray[object]
startTimedate-time
daystring

Enum: DayOfWeekUnspecified,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

Default: DayOfWeekUnspecified

retentionTimestring
descriptionstring
statestring

Enum: UnknownState,Creating,Active,Deleting,Failed

Default: UnknownState

400

Provided invalid argument with one of the following reasons: mandatory argument is missing, name contains illegal characters.

404

Returned when the resource policy with a given resource UUID is not found.

409

Resource with the provided name already exists.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get resource policy.

Get resource policy information by provided UUID/name

Auth
Path Params
projectNamestring

projectName

The name of the project this resource policy belongs to.

UUIDstring

UUID

The UUID of the resource policy to get.

GET /api/v2/projects/{projectName}/resourcePolicies/{UUID}
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
resourceUUIDstring
resourceNamestring
projectNamestring
schedulePolicyobject
snapshotSchedulePolicyobject
hourlyScheduleobject
startTimedate-time
hoursInCycleint64
dailyScheduleobject
startTimedate-time
daysInCycleint64
weeklyScheduleobject
daysOfWeekarray[object]
startTimedate-time
daystring

Enum: DayOfWeekUnspecified,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

Default: DayOfWeekUnspecified

retentionTimestring
descriptionstring
statestring

Enum: UnknownState,Creating,Active,Deleting,Failed

Default: UnknownState

400

Invalid argument.

404

Returned when the resource policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Delete resource policy.

Delete resource policy information by provided UUID/name.

Auth
Path Params
projectNamestring

projectName

The name of the project this resource policy belongs to.

UUIDstring

UUID

The UUID of the resource policy to get.

DELETE /api/v2/projects/{projectName}/resourcePolicies/{UUID}
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

404

Returned when the resource policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Update a resource policy.

Update resource policy enable the change of the following attributes: retentionTime schedulePolicy description

Auth
Path Params
projectNamestring

projectName

The name of the project this resource policy request belongs to.

UUIDstring

UUID

The UUID of the resource policy request to update.

Request Body application/json
objectobject
UUIDstring

The UUID of the resource policy request to update.

projectNamestring

The name of the project this resource policy request belongs to.

schedulePolicyobject

The updated schedule policy.

snapshotSchedulePolicyobject
hourlyScheduleobject
startTimedate-time
hoursInCycleint64
dailyScheduleobject
startTimedate-time
daysInCycleint64
weeklyScheduleobject
daysOfWeekarray[object]
startTimedate-time
daystring

Enum: DayOfWeekUnspecified,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

Default: DayOfWeekUnspecified

retentionTimestring
descriptionstring

An updated short (up to 256B) description.

PUT /api/v2/projects/{projectName}/resourcePolicies/{UUID}
Responses application/json
200

A successful response.

objectobject
400

Provided invalid argument with one of the following reasons: mandatory argument is missing, name contains illegal characters, invalid argument value.

404

Returned when the resource policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List projects.

list all projects.

Auth
GET /api/v2/projects
Responses application/json
200

A successful response.

objectobject
projectsarray[object]
UUIDstring

Project UUID.

namestring

Project Name.

descriptionstring

Brief description of project.

defaultPoliciesarray[object]

List of default polices specified for this project.

policyTypestring

Policy Type. Available types are 'QoS' or 'Snapshot'.

Enum: unknown,snapshot,qosRateLimit

Default: unknown

policyUUIDstring

Policy UUID

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Create project.

A project has a name, a description, and a default QOS rate limit policy.

Auth
Request Body application/json
objectobject
namestring

Project Name

descriptionstring

Brief (up to 256B) description of the project.

defaultPoliciesarray[object]

List of default polices. Such as default QoS policy.

policyTypestring

Policy Type. Available types are 'QoS' or 'Snapshot'.

Enum: unknown,snapshot,qosRateLimit

Default: unknown

policyUUIDstring

Policy UUID

POST /api/v2/projects
Responses application/json
200

A successful response.

objectobject
UUIDstring

Project UUID.

namestring

Project Name.

descriptionstring

Brief description of project.

defaultPoliciesarray[object]

List of default polices specified for this project.

policyTypestring

Policy Type. Available types are 'QoS' or 'Snapshot'.

Enum: unknown,snapshot,qosRateLimit

Default: unknown

policyUUIDstring

Policy UUID

400

Provided invalid argument with one of the following reasons: mandatory argument is missing, name contains illegal characters.

401

Unauthorized: authentication failed.

403

Permission denied.

409

Resource with the provided name already exists.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get project.

Get project by name

Auth
Path Params
namestring

name

project name.

GET /api/v2/projects/{name}
Responses application/json
200

A successful response.

objectobject
UUIDstring

Project UUID.

namestring

Project Name.

descriptionstring

Brief description of project.

defaultPoliciesarray[object]

List of default polices specified for this project.

policyTypestring

Policy Type. Available types are 'QoS' or 'Snapshot'.

Enum: unknown,snapshot,qosRateLimit

Default: unknown

policyUUIDstring

Policy UUID

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Provided project name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Delete project.

Deletes project with provided name.

Auth
Path Params
namestring

name

project name

DELETE /api/v2/projects/{name}
Responses application/json
200

A successful response.

objectobject
400

Provided invalid name or the project is not allowed to be deleted.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Project with provided name is not found.

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Update Project Default Policy.

Update project's default resource policy.

Auth
Path Params
projectNamestring

projectName

The name of the project to update.

Request Body application/json
objectobject
projectNamestring

The name of the project to update.

defaultPoliciesarray[object]

The updated default policies to apply to the project.

policyTypestring

Policy Type. Available types are 'QoS' or 'Snapshot'.

Enum: unknown,snapshot,qosRateLimit

Default: unknown

policyUUIDstring

Policy UUID

PUT /api/v2/projects/{projectName}
Responses application/json
200

A successful response.

objectobject
400

Mandatory argument is missing.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List credentials.

List credentials.

Auth
Path Params
projectNamestring

projectName

Project name associated with credentials.

GET /api/v2/projects/{projectName}/credentials
Responses application/json
200

A successful response.

objectobject
credentialsarray[object]
projectNamestring
IDstring
typestring

Enum: UnknownType,RS256PubKey,TlsCertChainPem,TlsPrivKeyPem

Default: UnknownType

payloadstring
kindstring

CredsKind specifies the origin and intended usage of the credentials.

Enum: UserCreds,BeaconCreds,UnknownKind

Default: UserCreds

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Create credential.

A credential has a name and description.

Auth
Path Params
projectNamestring

projectName

Project name.

Request Body application/json
objectobject
projectNamestring

Project name.

IDstring

Credential ID.

typestring

Type of the credentials, one of: pki rsa256pubkey cert-chain.

Enum: UnknownType,RS256PubKey,TlsCertChainPem,TlsPrivKeyPem

Default: UnknownType

payloadstring

Payload of the credentials.

POST /api/v2/projects/{projectName}/credentials
Responses application/json
200

A successful response.

objectobject
projectNamestring
IDstring
typestring

Enum: UnknownType,RS256PubKey,TlsCertChainPem,TlsPrivKeyPem

Default: UnknownType

payloadstring
kindstring

CredsKind specifies the origin and intended usage of the credentials.

Enum: UserCreds,BeaconCreds,UnknownKind

Default: UserCreds

400

Provided invalid argument with one of the following reasons: 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 is invalid.

401

Unauthorized: authentication failed.

403

Permission denied.

409

Resource with the provided name already exists.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get credential.

Get credential by ID.

Auth
Path Params
projectNamestring

projectName

Project name.

IDstring

ID

Credential ID.

GET /api/v2/projects/{projectName}/credentials/{ID}
Responses application/json
200

A successful response.

objectobject
projectNamestring
IDstring
typestring

Enum: UnknownType,RS256PubKey,TlsCertChainPem,TlsPrivKeyPem

Default: UnknownType

payloadstring
kindstring

CredsKind specifies the origin and intended usage of the credentials.

Enum: UserCreds,BeaconCreds,UnknownKind

Default: UserCreds

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Provided credential ID is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Delete credential.

Deletes credential with provided ID.

Auth
Path Params
projectNamestring

projectName

Project name.

IDstring

ID

Credential ID.

DELETE /api/v2/projects/{projectName}/credentials/{ID}
Responses application/json
200

A successful response.

objectobject
400

Provided invalid name or the credential is not allowed to be deleted.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Credential with provided ID is not found.

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List all roles defined in a project.

List roles

Auth
Path Params
projectNamestring

projectName

The name of the project to list roles for.

GET /api/v2/projects/{projectName}/roles
Responses application/json
200

A successful response.

objectobject
rolesarray[object]
namestring
projectNamestring
rulesJsonstring

A JSON representation of the role 'rules' array, e.g.: [{"resources":["versions"],"actions":["get"]}]

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get role.

Get role by name.

Auth
Path Params
projectNamestring

projectName

The name of the project this role belongs to.

namestring

name

The name of the role to get.

GET /api/v2/projects/{projectName}/roles/{name}
Responses application/json
200

A successful response.

objectobject
roleobject
namestring
projectNamestring
rulesJsonstring

A JSON representation of the role 'rules' array, e.g.: [{"resources":["versions"],"actions":["get"]}]

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Provided role name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

List snapshots.

List can be filtered by UUID/Name.

Auth
Path Params
projectNamestring

projectName

The name of the project this snapshot belongs to.

Query String
UUIDstring

UUID. Optionally filter a specific snapshot by UUID.

Namestring

Name. Optionally filter a specific snapshot by name.

offsetUUIDstring

offsetUUID. Optional. When provided, returned list starts with next to offsetUUID snapshot.

limitstring

limit. Optional. Limits the number of snapshots in the response (default/max is 1000 snapshots in a response).

showAllboolean

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

GET /api/v2/projects/{projectName}/snapshots
Responses application/json
200

A successful response.

objectobject
snapshotsarray[object]
statestring

Enum: Unknown,Creating,Available,Deleting,Deleted,Failed

Default: Unknown

UUIDstring
namestring
descriptionstring
creationTimedate-time
retentionTimestring
sourceVolumeUUIDstring
sourceVolumeNamestring
replicaCountint64
nodeListarray[string]
nsidint64
aclobject
valuesarray[string]
compressionboolean
sizestring
IPAclobject
valuesarray[string]
sectorSizeint64
statisticsobject
physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the snapshot would be deleted.

physicalOwnedMemorystring

The number, in bytes, of md ranges multiplied by the size of md range.

physicalMemorystring

Memory used by this MSVV (how many chunks).

userWrittenstring

Amount, in bytes of data, requested to be written by the user.

ETagstring
projectNamestring
primaryNodeUUIDstring
labelsarray[object]

Once a snapshot is taken, the volume's labels are copied to the snapshot. Once a clone is created, if the user does not pass new labels on clone creation, the cloned volume labels are copied from the source snapshot labels.

keystring
valuestring
clusterIdstring

The ID of the cluster where the snapshot resides.

pgUUIDstring

The Protection Group this snapshot is placed in.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Create snapshot.

Create a snapshot from a volume.

Auth
Path Params
projectNamestring

projectName

The name of the project this snapshot belongs to

Request Body application/json
objectobject
namestring

The name of the snapshot

sourceVolumeUUIDstring

The UUID of the volume to create the snapshot from. You should specify either the UUID or the name. If both UUID and name are specified, the UUID takes precedence.

sourceVolumeNamestring

The name of the volume to create the snapshot from. You should specify either the UUID or the name. If both UUID and name are specified, the UUID takes precedence.

retentionTimestring

The length of time in seconds to retain this snapshot for.

descriptionstring

A short description (up to 256B) of the snapshot.

projectNamestring

The name of the project this snapshot belongs to

POST /api/v2/projects/{projectName}/snapshots
Responses application/json
200

A successful response.

objectobject
statestring

Enum: Unknown,Creating,Available,Deleting,Deleted,Failed

Default: Unknown

UUIDstring
namestring
descriptionstring
creationTimedate-time
retentionTimestring
sourceVolumeUUIDstring
sourceVolumeNamestring
replicaCountint64
nodeListarray[string]
nsidint64
aclobject
valuesarray[string]
compressionboolean
sizestring
IPAclobject
valuesarray[string]
sectorSizeint64
statisticsobject
physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the snapshot would be deleted.

physicalOwnedMemorystring

The number, in bytes, of md ranges multiplied by the size of md range.

physicalMemorystring

Memory used by this MSVV (how many chunks).

userWrittenstring

Amount, in bytes of data, requested to be written by the user.

ETagstring
projectNamestring
primaryNodeUUIDstring
labelsarray[object]

Once a snapshot is taken, the volume's labels are copied to the snapshot. Once a clone is created, if the user does not pass new labels on clone creation, the cloned volume labels are copied from the source snapshot labels.

keystring
valuestring
clusterIdstring

The ID of the cluster where the snapshot resides.

pgUUIDstring

The Protection Group this snapshot is placed in.

400

Provided invalid argument with one of the following reasons: mandatory argument is missing, name contains illegal characters.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Returned when the snapshot with the given source-volume UUID is not found.

409

Resource with the provided name already exists.

500

Internal Lightbits error.

501

Unimplemented capability (updating capacity).

default

An unexpected error response.

Response

List changed LBAs between a volume's snapshots.

List changed LBAs between a volume's snapshots (optionally list all snapshots LBAs).

Auth
Path Params
projectNamestring

projectName

Project name

snapshotUUIDstring

snapshotUUID

Target snapshot UUID for comparison (specify either snapshotUUID or snapshotName).

Query String
baseSnapshotUUIDstring

baseSnapshotUUID. Source snapshot UUID for comparison. Optional in case of full comparison (specify either baseSnapshotUUID or baseSnapshotName).

offsetLBAstring

offsetLBA. The first offset from which the comparison shall start, aligned to 64 and rounded down.

snapshotNamestring

snapshotName. Target snapshot name for comparison (specify either snapshotUUID or snapshotName).

baseSnapshotNamestring

baseSnapshotName. Source snapshot name for comparison. Optional in case of full comparison (specify either baseSnapshotUUID or baseSnapshotName).

GET /api/v2/projects/{projectName}/snapshots/diff/{snapshotUUID}
Responses application/json
200

A successful response.

objectobject
nextOffsetLBAstring

LBA Offset for next call, zero at the last call (when end of LBA range has been reached).

lbaRangesarray[object]

List of ranges of the target snapshot UUID that differs from the base snapshot UUID.

lbaStartstring
lbaEndstring
dataBitMapstring
400

Invalid arguments. Snapshot UUIDs are identical or they are no on same chain or offset-lba exceeds snapshot size.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Failed to find snapshot UUID or base snapshot UUID or project name.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Get snapshot.

Get snapshot by UUID/Name.

Auth
Path Params
projectNamestring

projectName

The name of the project this snapshot belongs to.

UUIDstring

UUID

The UUID of the snapshot to get (either UUID or Name must be specified).

Query String
Namestring

Name. The name of the snapshot to get (either UUID or Name must be specified).

GET /api/v2/projects/{projectName}/snapshots/{UUID}
Responses application/json
200

A successful response.

objectobject
statestring

Enum: Unknown,Creating,Available,Deleting,Deleted,Failed

Default: Unknown

UUIDstring
namestring
descriptionstring
creationTimedate-time
retentionTimestring
sourceVolumeUUIDstring
sourceVolumeNamestring
replicaCountint64
nodeListarray[string]
nsidint64
aclobject
valuesarray[string]
compressionboolean
sizestring
IPAclobject
valuesarray[string]
sectorSizeint64
statisticsobject
physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the snapshot would be deleted.

physicalOwnedMemorystring

The number, in bytes, of md ranges multiplied by the size of md range.

physicalMemorystring

Memory used by this MSVV (how many chunks).

userWrittenstring

Amount, in bytes of data, requested to be written by the user.

ETagstring
projectNamestring
primaryNodeUUIDstring
labelsarray[object]

Once a snapshot is taken, the volume's labels are copied to the snapshot. Once a clone is created, if the user does not pass new labels on clone creation, the cloned volume labels are copied from the source snapshot labels.

keystring
valuestring
clusterIdstring

The ID of the cluster where the snapshot resides.

pgUUIDstring

The Protection Group this snapshot is placed in.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Snapshot with UUID/Name not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Delete snapshot.

Deletes snapshot with provided UUID. Deletion of a snapshot is a long operation. The status of deletion can be queried with a GET operation on the snapshot. As long as the operation runs, the snapshot state is Deleting. When the operation has completed, GET snapshot will return a NotFound error response.

Auth
Path Params
projectNamestring

projectName

The name of the project this snapshot belongs to.

UUIDstring

UUID

The UUID of the snapshot to delete (specify either UUID or Name).

Query String
namestring

name. The name of the snapshot to delete (specify either UUID or Name).

DELETE /api/v2/projects/{projectName}/snapshots/{UUID}
Responses application/json
200

A successful response.

objectobject
400

Provided invalid UUID or a snapshot state does not allow deletion (Deleting/Failed).

404

Snapshot with provided UUID is not found.

409

There is a user operation in progress on the snapshot

412

Etag mismatch.

500

Internal Lightbits error.

503

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

default

An unexpected error response.

Response

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
Path Params
projectNamestring

projectName

Optional. Return only volumes of the given project.

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

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/projects/{projectName}/volumes
Responses application/json
200

A successful response.

objectobject
volumesarray[object]
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.

statisticsobject

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

logicalUsedStoragestring

Logical storage space used by volume, given in bytes.

physicalUsedStoragestring

Physical storage space used by volume excluding parity, given in bytes.

compressionRationumber

compression ratio userWritten/physicalCapacity.

totalCompressionRationumber

compression ratio sum(userWritten) / sum(physical capacity).

physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the volume is deleted.

physicalOwnedMemorystring
physicalMemorystring
userWrittenstring
unrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

recoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

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.

placementRestrictionsarray[object]
operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

pgUUIDstring

The Protection Group this volume is placed in.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

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
Path Params
projectNamestring

projectName

Name of the project the volume belongs to.

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

placementRestrictionsarray[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).

operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

valuestring
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/projects/{projectName}/volumes
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.

statisticsobject

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

logicalUsedStoragestring

Logical storage space used by volume, given in bytes.

physicalUsedStoragestring

Physical storage space used by volume excluding parity, given in bytes.

compressionRationumber

compression ratio userWritten/physicalCapacity.

totalCompressionRationumber

compression ratio sum(userWritten) / sum(physical capacity).

physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the volume is deleted.

physicalOwnedMemorystring
physicalMemorystring
userWrittenstring
unrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

recoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

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.

placementRestrictionsarray[object]
operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

pgUUIDstring

The Protection Group this volume is placed in.

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

Get volume information.

Get volume information by provided UUID

Auth
Path Params
projectNamestring

projectName

Name of project volume belongs to.

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.

GET /api/v2/projects/{projectName}/volumes/{UUID}
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.

statisticsobject

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

logicalUsedStoragestring

Logical storage space used by volume, given in bytes.

physicalUsedStoragestring

Physical storage space used by volume excluding parity, given in bytes.

compressionRationumber

compression ratio userWritten/physicalCapacity.

totalCompressionRationumber

compression ratio sum(userWritten) / sum(physical capacity).

physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the volume is deleted.

physicalOwnedMemorystring
physicalMemorystring
userWrittenstring
unrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

recoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

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.

placementRestrictionsarray[object]
operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

pgUUIDstring

The Protection Group this volume is placed in.

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

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
projectNamestring

projectName

The project name of the volume to delete.

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

DELETE /api/v2/projects/{projectName}/volumes/{UUID}
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

Update volume.

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

Auth
Path Params
projectNamestring

project name

Name of the project the volume belongs to.

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/projects/{projectName}/volumes/{UUID}
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

Roll back a volume to a previous snapshot.

Roll back a volume to a previous snapshot.

Auth
Path Params
projectNamestring

projectName

Project volume belongs to.

UUIDstring

UUID

Volume UUID to rollback (specify either volume UUID or volume name).

Request Body application/json
objectobject
UUIDstring

Volume UUID to rollback (specify either volume UUID or volume name).

srcSnapshotUUIDstring

Source snapshot UUID to rollback volume to (specify either snapshot UUID or volume name).

projectNamestring

Project volume belongs to.

Namestring

Volume Name (specify either volume UUID or volume name).

srcSnapshotNamestring

Source snapshot name to rollback volume to (specify either snapshot UUID or volume name).

PUT /api/v2/projects/{projectName}/volumes/{UUID}/rollback
Responses application/json
200

A successful response.

objectobject
400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Volume or snapshot UUID not found.

500

Internal Lightbits error.

503

Cannot roll volume back. Volume is deleting.

default

An unexpected error response.

Response

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
Responses application/json
200

A successful response.

objectobject
volumesarray[object]
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.

statisticsobject

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

logicalUsedStoragestring

Logical storage space used by volume, given in bytes.

physicalUsedStoragestring

Physical storage space used by volume excluding parity, given in bytes.

compressionRationumber

compression ratio userWritten/physicalCapacity.

totalCompressionRationumber

compression ratio sum(userWritten) / sum(physical capacity).

physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the volume is deleted.

physicalOwnedMemorystring
physicalMemorystring
userWrittenstring
unrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

recoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

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.

placementRestrictionsarray[object]
operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

pgUUIDstring

The Protection Group this volume is placed in.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

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

placementRestrictionsarray[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).

operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

statisticsobject

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

logicalUsedStoragestring

Logical storage space used by volume, given in bytes.

physicalUsedStoragestring

Physical storage space used by volume excluding parity, given in bytes.

compressionRationumber

compression ratio userWritten/physicalCapacity.

totalCompressionRationumber

compression ratio sum(userWritten) / sum(physical capacity).

physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the volume is deleted.

physicalOwnedMemorystring
physicalMemorystring
userWrittenstring
unrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

recoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

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.

placementRestrictionsarray[object]
operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

pgUUIDstring

The Protection Group this volume is placed in.

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

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

statisticsobject

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

logicalUsedStoragestring

Logical storage space used by volume, given in bytes.

physicalUsedStoragestring

Physical storage space used by volume excluding parity, given in bytes.

compressionRationumber

compression ratio userWritten/physicalCapacity.

totalCompressionRationumber

compression ratio sum(userWritten) / sum(physical capacity).

physicalCapacitystring

The physical capacity that exists in this volume layer.

physicalOwnedCapacitystring

The capacity that would be freed when the volume is deleted.

physicalOwnedMemorystring
physicalMemorystring
userWrittenstring
unrecoverableDataIntegrityErrorsint64

Number of data integrity errors that could not be recovered by the system.

recoverableDataIntegrityErrorsint64

Number of data integrity errors that were recovered by the system.

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.

placementRestrictionsarray[object]
operatorstring

Volume affinity operator. Specifies that placement logic will match nodes that have labels in labelValueKeyPairs list.

Enum: Unknown,In

Default: Unknown

labelValueKeyPairsarray[object]

Volume affinity KeyPairs. Key currently must be one of: fd (failure domain). Value should specify the failure domains we want to match. PrimaryFd (primary failure domain). Value should specify the primary failure domain we want to match. ClusterId (cluster ID - cluster federation only). Value should specify the cluster ID we want to match.

keystring

Enum: Unknown,FD,PrimaryFD,ClusterID

Default: Unknown

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

pgUUIDstring

The Protection Group this volume is placed in.

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

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}
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

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}
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

Retrieve servers list with optional filtering parameters.

Retrieve servers list. The results can be filtered by supplying the following filters: 1. Name - e.g., /api/v2/servers?Name= 2. UUID - e.g., /api/v2/servers?UUID=.

Auth
Query String
UUIDstring

UUID. Filter server by the server's UUID.

Namestring

Name. Filter server by the server's name.

RiskOfServiceLossstring

RiskOfServiceLoss. List only servers in a RiskOfServiceLoss state matching the specified state.

Enum: UnknownRiskOfServiceLoss,NoRiskOfServiceLoss,InRiskOfServiceLoss,SourceOfRiskOfServiceLoss

Default: UnknownRiskOfServiceLoss

GET /api/v2/servers
Responses application/json
200

A successful response.

objectobject
serversarray[object]
UUIDstring
namestring
RiskOfServiceLossStatestring

Indicates the ability to upgrade or disable a server without loss of service to cluster volumes.

Enum: UnknownRiskOfServiceLoss,NoRiskOfServiceLoss,InRiskOfServiceLoss,SourceOfRiskOfServiceLoss

Default: UnknownRiskOfServiceLoss

NodesUUIDsarray[string]
statestring

Enum: UnknownState,Creating,Enabled,Deleting,Failed,Disabled,Enabling,Disabling

Default: UnknownState

ServerEndpointsarray[string]
ETagstring

Identifier for a specific version of a resource.

LightOSVersionstring

The current Lightbits version.

UpgradeStatusstring

Deprecated: This field indicates the status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

ApiEndpointsarray[string]

The API endpoints

LastUpgradeobject

Parameters of the last (or active) server upgrade process

Statusstring

The status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

StartTimedate-time

The time of the upgrade task start.

EndTimedate-time

The time of closing the upgrade task (completed or failed).

TargetVersionstring

The version that should be installed by the end of the process.

ErrorMessagestring

Last error message. Free text formatted string describes the problem.

ProgressStepint64

Current upgrade step. You can use ProgressTotal to calculate the percentage as ProgressStep/ProgressTotal.

ProgressTotalint64

Total possible upgrade progress steps.

IsWitnessboolean
LastEvictionobject

Parameters of the last (or active) server eviction process

statusstring

The status of the eviction operation.

Enum: None,Failed,Evicting,Aborting,Completed,Aborted

Default: None

startTimedate-time

Start time of eviction operation.

endTimedate-time

Completion time of eviction operation (either a successfully completed or ended due to failure).

errorMessagestring

Error message from the last eviction operation.

progressint64

Current eviction progress given in units of percent.

healthstring

Server health: OK- server healthy, Warning high utilization or failed disk under rebuild, Error - Inactive nodes or nodes nearing/in Read-only.

Enum: None,OK,Warning,Error

Default: None

ServerPermanenetFailureTimeoutstring

Permanent failure timeout at the server level. If set, overrides the cluster configuration. Value of "0" sets it to infinite.

tpm2IsSupportedboolean

Trusted Platform Module 2.0 (TPM) support indication. Note: If information about a server's TPM2 support is unavailable, we consider it as not supported.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Create Server.

A request to create a new server. The required parameters for operation are: 1. serverEndpoints - URL list of the new server IP addresses as well as etcd ports for peer communication e.g.: http://10.0.0.1:2380.

Auth
Request Body application/json
objectobject
serverEndpointsarray[string]

Etcd member endpoint. In the current version, only a single point is allowed.

serverUUIDstring

The server's UUID for the create server request.

reuseIPboolean

Optional. When true, bypasses validation if a given endpoint is used by another server.

extendClusterboolean

Optional. When true, the cluster is extended with a new server and its resources, enabling new volumes placement on the server (the nodes of this server will come up as active). Default is False (the nodes of this server will be added to the cluster as unattached, and may be used to move over resources from an existing failed server using the replace node API command).

POST /api/v2/servers
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
RiskOfServiceLossStatestring

Indicates the ability to upgrade or disable a server without loss of service to cluster volumes.

Enum: UnknownRiskOfServiceLoss,NoRiskOfServiceLoss,InRiskOfServiceLoss,SourceOfRiskOfServiceLoss

Default: UnknownRiskOfServiceLoss

NodesUUIDsarray[string]
statestring

Enum: UnknownState,Creating,Enabled,Deleting,Failed,Disabled,Enabling,Disabling

Default: UnknownState

ServerEndpointsarray[string]
ETagstring

Identifier for a specific version of a resource.

LightOSVersionstring

The current Lightbits version.

UpgradeStatusstring

Deprecated: This field indicates the status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

ApiEndpointsarray[string]

The API endpoints

LastUpgradeobject

Parameters of the last (or active) server upgrade process

Statusstring

The status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

StartTimedate-time

The time of the upgrade task start.

EndTimedate-time

The time of closing the upgrade task (completed or failed).

TargetVersionstring

The version that should be installed by the end of the process.

ErrorMessagestring

Last error message. Free text formatted string describes the problem.

ProgressStepint64

Current upgrade step. You can use ProgressTotal to calculate the percentage as ProgressStep/ProgressTotal.

ProgressTotalint64

Total possible upgrade progress steps.

IsWitnessboolean
LastEvictionobject

Parameters of the last (or active) server eviction process

statusstring

The status of the eviction operation.

Enum: None,Failed,Evicting,Aborting,Completed,Aborted

Default: None

startTimedate-time

Start time of eviction operation.

endTimedate-time

Completion time of eviction operation (either a successfully completed or ended due to failure).

errorMessagestring

Error message from the last eviction operation.

progressint64

Current eviction progress given in units of percent.

healthstring

Server health: OK- server healthy, Warning high utilization or failed disk under rebuild, Error - Inactive nodes or nodes nearing/in Read-only.

Enum: None,OK,Warning,Error

Default: None

ServerPermanenetFailureTimeoutstring

Permanent failure timeout at the server level. If set, overrides the cluster configuration. Value of "0" sets it to infinite.

tpm2IsSupportedboolean

Trusted Platform Module 2.0 (TPM) support indication. Note: If information about a server's TPM2 support is unavailable, we consider it as not supported.

400

Multiple endpoints provided.

401

Unauthorized: authentication failed.

403

Permission denied.

409

Server with UUID or endpoint already exists (reuseIP flag was not used).

500

Internal Lightbits error.

default

An unexpected error response.

Response

Retrieve specific server information, based on UUID.

Request server information, identified by UUID.

Auth
Path Params
UUIDstring

UUID

The server's UUID for the get server request.

GET /api/v2/servers/{UUID}
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
RiskOfServiceLossStatestring

Indicates the ability to upgrade or disable a server without loss of service to cluster volumes.

Enum: UnknownRiskOfServiceLoss,NoRiskOfServiceLoss,InRiskOfServiceLoss,SourceOfRiskOfServiceLoss

Default: UnknownRiskOfServiceLoss

NodesUUIDsarray[string]
statestring

Enum: UnknownState,Creating,Enabled,Deleting,Failed,Disabled,Enabling,Disabling

Default: UnknownState

ServerEndpointsarray[string]
ETagstring

Identifier for a specific version of a resource.

LightOSVersionstring

The current Lightbits version.

UpgradeStatusstring

Deprecated: This field indicates the status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

ApiEndpointsarray[string]

The API endpoints

LastUpgradeobject

Parameters of the last (or active) server upgrade process

Statusstring

The status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

StartTimedate-time

The time of the upgrade task start.

EndTimedate-time

The time of closing the upgrade task (completed or failed).

TargetVersionstring

The version that should be installed by the end of the process.

ErrorMessagestring

Last error message. Free text formatted string describes the problem.

ProgressStepint64

Current upgrade step. You can use ProgressTotal to calculate the percentage as ProgressStep/ProgressTotal.

ProgressTotalint64

Total possible upgrade progress steps.

IsWitnessboolean
LastEvictionobject

Parameters of the last (or active) server eviction process

statusstring

The status of the eviction operation.

Enum: None,Failed,Evicting,Aborting,Completed,Aborted

Default: None

startTimedate-time

Start time of eviction operation.

endTimedate-time

Completion time of eviction operation (either a successfully completed or ended due to failure).

errorMessagestring

Error message from the last eviction operation.

progressint64

Current eviction progress given in units of percent.

healthstring

Server health: OK- server healthy, Warning high utilization or failed disk under rebuild, Error - Inactive nodes or nodes nearing/in Read-only.

Enum: None,OK,Warning,Error

Default: None

ServerPermanenetFailureTimeoutstring

Permanent failure timeout at the server level. If set, overrides the cluster configuration. Value of "0" sets it to infinite.

tpm2IsSupportedboolean

Trusted Platform Module 2.0 (TPM) support indication. Note: If information about a server's TPM2 support is unavailable, we consider it as not supported.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Server with provided UUID does not exist.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Delete Server.

A request to delete a server. This operation will delete a server (information) from the Lightbits cluster. The required parameters in the body are: 1. UUID - UUID of the server to delete.

Auth
Path Params
UUIDstring

UUID

The server's UUID for the delete server request (either server UUID or Name must be specified).

Query String
namestring

name. The server's name for the delete server request (either server UUID or Name must be specified).

forceDeleteboolean

forceDelete. Optional. Setting forceDelete will override some of the delete server pre-checks. When set to False (default), a server cannot be deleted if there are any resources attached to the server (e.g., node replace was issued, server nodes entered permanent failure states, and resources were migrated.) When set to True, the delete operation bypasses checks to verify if the server still has any resources attached to it and starts the delete operation in the background. The operation will not complete and will remain in the background until the server resources will have been detached from the server. Note that a server with volumes/snapshots/clones with a single replica cannot be deleted, even with forceDelete set to True. You must remove the 1x replica volumes/snapshots/clones before deleting the server.

DELETE /api/v2/servers/{UUID}
Responses application/json
200

A successful response.

objectobject
400

Missing or Invalid UUID is provided.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Server with UUID is not found.

409

There is a user operation in progress on the server.

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Disable server.

Server is disabled from the cluster. Server nodes become Inactive and do not participate in data protection. If the 'evict' parameter is True, all data on the server is evicted from the server before it is disabled. Once a server is disabled, it can be enabled and added back to the cluster or removed from the cluster completely.

Auth
Path Params
UUIDstring

UUID

The server's UUID for the disable server request (either server UUID or name must be specified).

Request Body application/json
objectobject
UUIDstring

The server's UUID for the disable server request (either server UUID or name must be specified).

ForceDisableboolean

When set to True, the disable operation bypasses an upgradeability (loss of service) check when disabling server. If the evict flag is also set to True, it will force eviction of all server data, even if it means losing single replica volumes because they cannot be evicted to another server. Only set both "evict" and "ForceDisable" to True if you are willing to lose your single-replica volumes.

namestring

The server's name for the disable server request (either server UUID or name must be specified).

evictDataboolean

Setting this to True will cause all server data to be evicted from the server. Setting this to 'False' will disable the server while keeping all data on the server, so it will be there when you re-enable it. eviction may fail in some cases; e.g., in case of single replica volume that can’t be transferred to another server due to network issues between the servers, the eviction is expected to fail. If you want the data eviction process, even at the risk of potentially losing some data that could not be evicted, set both evictData and ForceDisable to True.

permanentFailureTimeoutstring

Setting a value for this parameter will override the permanent failure timeout at the cluster level. This can be used when a user wants to take a server into maintenance state and avoid data migration during this time. Valid values are 1 hour or longer, "0" value should be used to specify an infinite timeout. Permanent failure timeout is a string constructed by a decimal number followed by the units: ns, us, ms, s, m, h. For example: 7200s, 120m, 2h This value will be override once the server is re-enabled. Default value: null

POST /api/v2/servers/{UUID}/disable
Responses application/json
200

A successful response.

objectobject
400

Bad request: Missing/Invalid UUID is provided or disable server can lead to risk of service loss state.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Server with UUID is not found.

409

There is a user operation in progress on the server.

500

Internal Lightbits error.

default

An unexpected error response.

Response

Enable Server.

Enable a disabled server. Enabling a server causes the server nodes to synchronize with their peers and rebuild the replicas they hold.

Auth
Path Params
UUIDstring

UUID

The server's UUID for the enable server request (either server UUID or name must be specified).

Request Body application/json
objectobject
UUIDstring

The server's UUID for the enable server request (either server UUID or name must be specified).

namestring

The server's name for the enable server request (either server UUID or name must be specified).

POST /api/v2/servers/{UUID}/enable
Responses application/json
200

A successful response.

objectobject
UUIDstring
namestring
RiskOfServiceLossStatestring

Indicates the ability to upgrade or disable a server without loss of service to cluster volumes.

Enum: UnknownRiskOfServiceLoss,NoRiskOfServiceLoss,InRiskOfServiceLoss,SourceOfRiskOfServiceLoss

Default: UnknownRiskOfServiceLoss

NodesUUIDsarray[string]
statestring

Enum: UnknownState,Creating,Enabled,Deleting,Failed,Disabled,Enabling,Disabling

Default: UnknownState

ServerEndpointsarray[string]
ETagstring

Identifier for a specific version of a resource.

LightOSVersionstring

The current Lightbits version.

UpgradeStatusstring

Deprecated: This field indicates the status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

ApiEndpointsarray[string]

The API endpoints

LastUpgradeobject

Parameters of the last (or active) server upgrade process

Statusstring

The status of the upgrade operation.

Enum: Unknown,None,UpgradeFailed,Upgrading,Rebooting,Recovering

Default: Unknown

StartTimedate-time

The time of the upgrade task start.

EndTimedate-time

The time of closing the upgrade task (completed or failed).

TargetVersionstring

The version that should be installed by the end of the process.

ErrorMessagestring

Last error message. Free text formatted string describes the problem.

ProgressStepint64

Current upgrade step. You can use ProgressTotal to calculate the percentage as ProgressStep/ProgressTotal.

ProgressTotalint64

Total possible upgrade progress steps.

IsWitnessboolean
LastEvictionobject

Parameters of the last (or active) server eviction process

statusstring

The status of the eviction operation.

Enum: None,Failed,Evicting,Aborting,Completed,Aborted

Default: None

startTimedate-time

Start time of eviction operation.

endTimedate-time

Completion time of eviction operation (either a successfully completed or ended due to failure).

errorMessagestring

Error message from the last eviction operation.

progressint64

Current eviction progress given in units of percent.

healthstring

Server health: OK- server healthy, Warning high utilization or failed disk under rebuild, Error - Inactive nodes or nodes nearing/in Read-only.

Enum: None,OK,Warning,Error

Default: None

ServerPermanenetFailureTimeoutstring

Permanent failure timeout at the server level. If set, overrides the cluster configuration. Value of "0" sets it to infinite.

tpm2IsSupportedboolean

Trusted Platform Module 2.0 (TPM) support indication. Note: If information about a server's TPM2 support is unavailable, we consider it as not supported.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Server with UUID is not found.

409

There is a user operation in progress on the server.

412

Etag mismatch.

500

Internal Lightbits error.

default

An unexpected error response.

Response