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

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

401

Authentication required / Authentication failed

default

An unexpected error response.

Response
Copy

Attach a new cluster.

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

Auth
Request Body application/json
Attach Cluster Requestobject

Request to attach a cluster to the CF service.

apiEndpointstring

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

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

A successful response.

Attach Cluster Responseobject

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

workflowIdstring
400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

Detach an existing cluster.

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

Auth
Path Params
cidstring

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

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

A successful response.

objectobject

Response to detach a Lightbits cluster from the CF service.

400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the cluster-federation service.

default

An unexpected error response.

Response
Copy

List workflows

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

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

A successful response.

List Workflows Responseobject

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

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
Copy

Get a specific workflow

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

Auth
Path Params
workflowIdstring

Workflow ID to get

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

A successful response.

Get Workflow Responseobject

The response to get a workflow by its ID.

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

Retrieve cluster information.

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

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

A successful response.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Retrieve cluster information.

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

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

A successful response.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

A successful response.

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
Copy

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

A successful response.(streaming responses)

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

A successful response.

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
Copy

Product Version.

Get product version information.

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

A successful response.

objectobject
apiVersionstring
default

An unexpected error response.

Response
Copy

Listing IdP configurations.

Listing IdP configurations.

Auth
GET /api/v2/cluster/IdpConfiguration
Copy
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
Copy

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

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

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

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

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

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

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

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

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

Disable Federated Authentication.

Disable Federated Authentication.

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

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response
Copy

Enable Federated Authentication.

Enable Federated Authentication.

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

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response
Copy

Listing idp-client-configurations.

Listing idp-client-configurations.

Auth
GET /api/v2/cluster/idpClientConfs
Copy
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
Copy

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

A successful response.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response
Copy

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

A successful response.

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
Copy

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

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

A successful response.

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
Copy

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

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

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

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

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response
Copy

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

A successful response.

objectobject
401

Unauthorized: authentication failed.

403

Permission denied.

default

An unexpected error response.

Response
Copy

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

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

targetSecretTypestring

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

Enum: Disabled,Enabled,AutoGenSecret

Default: Disabled

400

Invalid arguments.

401

Unauthorized: authentication failed.

404

Failed to find host name/project.

default

An unexpected error response.

Response
Copy

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

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

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

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

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

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

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

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

List all cluster configuration parameters values.

List all cluster configuration parameters values.

Auth
GET /api/v2/clusterConfig
Copy
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
Copy

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

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

List feature flags.

List feature flags.

Auth
GET /api/v2/featureFlags
Copy
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
Copy

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

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

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

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

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

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

A successful response.

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
Copy

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

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

A successful response.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Node UUID is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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.

GET /api/v2/nvmeDevices
Copy
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

Timestamp that will be updated in case the device has failed.

rebuildCompletionTimedate-time

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

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.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

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

Timestamp that will be updated in case the device has failed.

rebuildCompletionTimedate-time

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

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.

401

Unauthorized: authentication failed.

403

Permission denied.

404

Serial is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

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

A successful response.

400

Invalid argument.

404

Returned when the policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

A successful response.

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
Copy

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

A successful response.

400

Invalid argument.

404

Returned when the policy UUID/name is not found.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

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
PUT /api/v2/policies/{UUID}
Copy
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
Copy

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

A successful response.

400

Invalid argument.

404

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

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

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

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

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

List projects.

list all projects.

Auth
GET /api/v2/projects
Copy
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
Copy

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

Get project.

Get project by name

Auth
Path Params
namestring

name

project name.

GET /api/v2/projects/{name}
Copy
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
Copy

Delete project.

Deletes project with provided name.

Auth
Path Params
namestring

name

project name

DELETE /api/v2/projects/{name}
Copy
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
Copy

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

List credentials.

List credentials.

Auth
Path Params
projectNamestring

projectName

Project name associated with credentials.

GET /api/v2/projects/{projectName}/credentials
Copy
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
Copy

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

Get credential.

Get credential by ID.

Auth
Path Params
projectNamestring

projectName

Project name.

IDstring

ID

Credential ID.

GET /api/v2/projects/{projectName}/credentials/{ID}
Copy
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
Copy

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

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

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

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

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

A successful response.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

A successful response.

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
Copy

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

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

A successful response.

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
Copy

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

List volumes.

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

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

A successful response.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error 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
POST /api/v2/projects/{projectName}/volumes
Copy
Responses application/json
200

A successful response.

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.

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

A successful response.

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.

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

A successful response.

objectobject
400

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

401

Unauthorized: authentication failed.

403

Permission denied.

404

Volume with provided UUID or Name is not found.

409

There is a user operation in progress on the volume

412

Etag mismatch.

500

Internal Lightbits error.

503

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

default

An unexpected error response.

Response
Copy

Update volume.

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

Auth
Path Params
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
PUT /api/v2/projects/{projectName}/volumes/{UUID}
Copy
Responses application/json
200

A successful response.

objectobject
400

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

401

Unauthorized: authentication failed.

403

Permission denied.

404

Returned when the volume with given UUID is not found.

409

There is a user operation in progress on the volume.

412

Etag mismatch.

500

Internal Lightbits error.

501

Unimplemented capability (updating capacity).

503

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

default

An unexpected error response.

Response
Copy

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

List volumes.

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

Auth
Query String
UUIDstring

UUID. List only volume with matching UUID.

namestring

Name. List only volumes with specified name.

failureDomainstring

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

offsetUUIDstring

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

limitstring

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

projectNamestring

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

snapshotUUIDstring

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

showAllboolean

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

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

A successful response.

400

Invalid argument.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error 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
POST /api/v2/volumes
Copy
Responses application/json
200

A successful response.

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.

Get volume information.

Get volume information by provided UUID

Auth
Path Params
UUIDstring

UUID

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

Query String
namestring

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

projectNamestring

projectName. Name of project volume belongs to.

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

A successful response.

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.

Delete volume.

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

Auth
Path Params
UUIDstring

UUID

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

Query String
namestring

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

projectNamestring

projectName. The project name of the volume to delete.

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

A successful response.

objectobject
400

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

401

Unauthorized: authentication failed.

403

Permission denied.

404

Volume with provided UUID or Name is not found.

409

There is a user operation in progress on the volume

412

Etag mismatch.

500

Internal Lightbits error.

503

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

default

An unexpected error response.

Response
Copy

Update volume.

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

Auth
Path Params
UUIDstring

UUID

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

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

A successful response.

objectobject
400

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

401

Unauthorized: authentication failed.

403

Permission denied.

404

Returned when the volume with given UUID is not found.

409

There is a user operation in progress on the volume.

412

Etag mismatch.

500

Internal Lightbits error.

501

Unimplemented capability (updating capacity).

503

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

default

An unexpected error response.

Response
Copy

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

A successful response.

401

Unauthorized: authentication failed.

403

Permission denied.

500

Internal Lightbits error.

default

An unexpected error response.

Response
Copy

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

A successful response.

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
Copy

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

A successful response.

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
Copy

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

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
POST /api/v2/servers/{UUID}/disable
Copy
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
Copy

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

A successful response.

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
Copy