Server
dms.example.com
Server Variables

List Lightbits clusters

List the Lightbits clusters connected to the DMS service.

Auth
Headers
Authorizationstring

Bearer id-token

GET /api/v1/clusters
Copy
Responses application/json
200

A successful response.

List Clusters Responseobject

The response to list the Lightbits clusters connected to the DMS 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

dataConnectionStatusstring

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 Lightbits cluster

Attach a Lightbits cluster to the DMS service.

Attaching a Lightbits cluster is a multi-step process:

  1. Get the service credentials (GetServiceCredentials).
  2. Import the public key into the Lightbits cluster. Save the decoded DMS pubKey to a file, and upload it to the Lightbits server: echo "" | base64 -d > /tmp/pub-key.pem scp /tmp/pub-key.pem @:/tmp/ rm -rf /tmp/pub-key.pem
  3. Add the credentials to the Lightbits cluster. SSH to the Lightbits server that the credentials were uploaded to, and execute the following (requires system-admin privileges): lbcli create credential --project-name=system --type=rsa256pubkey --id= /tmp/pub-key.pem
  4. Invoke the attach cluster API (this API).

Auth
Headers
Authorizationstring

Bearer id-token

Request Body application/json
Attach Cluster Requestobject

Request to attach a cluster to the DMS 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/v1/clusters
Copy
Responses application/json
200

A successful response.

Attach Cluster Responseobject

Response to attach a Lightbits cluster to the DMS 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 DMS service.

default

An unexpected error response.

Response
Copy

Refresh Lightbits clusters information

This API will trigger a refresh of the Lightbits clusters information.

Lightbits clusters information is cached in the DMS service, and this API will trigger a refresh of the information. Changed information examples can be:

  • A server was added to the cluster
  • A server was removed from the cluster
  • etc...

Auth
Headers
Authorizationstring

Bearer id-token

POST /api/v1/clusters/refresh
Copy
Responses application/json
200

A successful response.

Refresh Clusters Responseobject

Refresh Lightbits clusters information response, return an ID of the refresh workflow.

workflowIdstring
401

Authentication required / Authentication failed

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

Detach Lightbits cluster

Detach a Lightbits cluster from the DMS service.

Auth
Headers
Authorizationstring

Bearer id-token

Path Params
cidstring

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

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

A successful response.

objectobject

Response to detach a Lightbits cluster from the DMS service.

400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

Get DMS service credentials

Get the service credentials to enable attaching a cluster. The public key returned in the response should be imported into the Lightbits cluster.

Attaching a Lightbits cluster is a multi-step process:

  1. Get the service credentials (this API).
  2. Import the public key into the Lightbits cluster. Save the decoded DMS pubKey to a file, and upload them to the Lightbits server: echo "" | base64 -d > /tmp/pub-key.pem scp /tmp/pub-key.pem @:/tmp/ rm -rf /tmp/pub-key.pem
  3. Add the credentials to the Lightbits cluster. SSH to the Lightbits server that the credentials were uploaded to, and execute the following (requires system-admin privileges): lbcli create credential --project-name=system --type=rsa256pubkey --id= /tmp/pub-key.pem
  4. Invoke the attach cluster API (AttachCluster).

Auth
Headers
Authorizationstring

Bearer id-token

GET /api/v1/service-credentials
Copy
Responses application/json
200

A successful response.

Get Service Credentials Responseobject

The response to get the service credentials for the DMS 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

Create a thick clone snapshot

Create a thick clone snapshot from a source snapshot.

Auth
Headers
Authorizationstring

Bearer id-token

Request Body application/json
objectobject

The request to create a thick clone snapshot from a source snapshot. Note: This operation is subject to rate limiting. If the maximum number of running workflows (configured via maxRunningWorkflows) is reached, the request will be rejected with a ResourceExhausted (429) error. The limit prevents API denial-of-service by throttling workflow creation when the system is at capacity.

srcobject

The source snapshot identification information for thick clone snapshot operation.

snapIdstring

The UUID of the snapshot to be cloned (must be a valid UUID).

projectNamestring

The name of the project source that the snapshot belongs to. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore, or period.

clusterIdstring

The UUID of the cluster where the source snapshot is located (must be a valid UUID).

dstobject

The destination (cloned) snapshot information for thick clone snapshot operation.

namestring

The name to assign to the destination (cloned) snapshot, must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore or period.

projectNamestring

Optional. The name of the project destination that the snapshot will reside on. Must conform to a valid Lightbits resource naming conventions up to 256 alpha numeric-characters, and must be either a letter, digit, hyphen, underscore or period. If not specified, the destination snapshot will be created in the same project as the source snapshot.

clusterIdstring

The UUID of the cluster where the destination snapshot will be created (must be a valid UUID).

sizestring

Optional. The size of the destination snapshot in bytes. If the size is not specified, the size of the source snapshot's volume will be used. If specified, the size must be equal or larger than the source snapshot's volume size.

replicaint32

Optional. The number of replicas to create for the destination snapshot. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be between 1 and 3.

descriptionstring

Optional. The description of the destination snapshot (limited to up to 256 characters).

qosPolicyNamestring

Optional. The name of an existing QoS policy to assign to the destination snapshot. The QoS policy can be used to limit write late to the destination volume.

sectorSizeint64

Optional. The sector size to create for the destination snapshot. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be either 512 or 4096.

compressionboolean

Optional. Determines whether compression is enabled for the destination snapshot. If set to true, data stored in the volume will be compressed. If not specified, compression settings will be inherited from the source snapshot.

verifyCloneboolean

Optional. If set to true, the clone operation will be verified by reading the destination volume.

POST /api/v1/snapshots/thickclone
Copy
Responses application/json
200

A successful response.

Thick Clone Snapshot Responseobject

The response to create a thick clone snapshot from a source snapshot. 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

429

Resource exhausted. The maximum number of running workflows has been reached. This limit (configurable via maxRunningWorkflows) prevents API denial-of-service. The request is throttled to avoid overwhelming the system. Please retry after some workflows complete.

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

Create a thick clone volume

Create a thick clone volume from a source snapshot.

Auth
Headers
Authorizationstring

Bearer id-token

Request Body application/json
Thick Clone Volume Requestobject

Request to create a thick clone volume from a source snapshot. Note: This operation is subject to rate limiting. If the maximum number of running workflows (configured via maxRunningWorkflows) is reached, the request will be rejected with a ResourceExhausted (429) error. The limit prevents API denial-of-service by throttling workflow creation when the system is at capacity.

srcobject

The source snapshot identification information for thick clone volume operation.

snapIdstring

The UUID of the snapshot to be cloned (must be a valid UUID).

projectNamestring

The name of the project source that the snapshot belongs to. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore, or period.

clusterIdstring

The UUID of the cluster where the source snapshot is located (must be a valid UUID).

dstobject

The destination (cloned) volume information for thick clone volume operation.

namestring

The name to assign to the destination (cloned) volume. Must conform to valid Lightbits resource naming conventions up to 256 alpha numeric characters, and must be either a letter, digit, hyphen, underscore or dot.

projectNamestring

Optional. The name of the project destination volume will reside on. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore or a period. If not specified, the destination volume will be created in the same project as the source snapshot.

clusterIdstring

The UUID of the cluster where the destination volume will be created (must be a valid UUID).

sizestring

Optional. The size of the destination volume in bytes. If the size is not specified, the size of the source snapshot's volume will be used. If specified, the size must be equal or larger than the source snapshot's volume size.

replicaint32

Optional. The number of replicas to create for the destination volume. If not specified the value will be taken from the source snapshot's volume. If specified, the value must be between 1 and 3.

qosPolicyNamestring

Optional. The name of an existing QoS policy to assign to the destination volume. The QoS policy can be used to limit write late to the destination volume.

sectorSizeint64

Optional. The sector size to create for the destination volume. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be either 512 or 4096.

compressionboolean

Optional. Determines whether compression is enabled for the destination volume. If set to true, data stored in the volume will be compressed. If not specified, compression settings will be inherited from the source snapshot.

verifyCloneboolean

Optional. If set to true, the clone operation will be verified by reading the destination volume.

POST /api/v1/volumes/thickclone
Copy
Responses application/json
200

A successful response.

Thick Clone Volume Responseobject

Response to create a thick clone volume from a source snapshot. 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

429

Resource exhausted. The maximum number of running workflows has been reached. This limit (configurable via maxRunningWorkflows) prevents API denial-of-service. The request is throttled to avoid overwhelming the system. Please retry after some workflows complete.

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

List workflows

List the running and completed workflows.

Auth
Headers
Authorizationstring

Bearer id-token

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

A successful response.

List Workflows Responseobject

The response to list the workflows. Note that the initial DMS 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 (i.e., attach cluster, thick clone volume, thick clone snapshot).

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.

thickCloneVolumeRequestobject

Request to create a thick clone volume from a source snapshot. Note: This operation is subject to rate limiting. If the maximum number of running workflows (configured via maxRunningWorkflows) is reached, the request will be rejected with a ResourceExhausted (429) error. The limit prevents API denial-of-service by throttling workflow creation when the system is at capacity.

srcobject

The source snapshot identification information for thick clone volume operation.

snapIdstring

The UUID of the snapshot to be cloned (must be a valid UUID).

projectNamestring

The name of the project source that the snapshot belongs to. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore, or period.

clusterIdstring

The UUID of the cluster where the source snapshot is located (must be a valid UUID).

dstobject

The destination (cloned) volume information for thick clone volume operation.

namestring

The name to assign to the destination (cloned) volume. Must conform to valid Lightbits resource naming conventions up to 256 alpha numeric characters, and must be either a letter, digit, hyphen, underscore or dot.

projectNamestring

Optional. The name of the project destination volume will reside on. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore or a period. If not specified, the destination volume will be created in the same project as the source snapshot.

clusterIdstring

The UUID of the cluster where the destination volume will be created (must be a valid UUID).

sizestring

Optional. The size of the destination volume in bytes. If the size is not specified, the size of the source snapshot's volume will be used. If specified, the size must be equal or larger than the source snapshot's volume size.

replicaint32

Optional. The number of replicas to create for the destination volume. If not specified the value will be taken from the source snapshot's volume. If specified, the value must be between 1 and 3.

qosPolicyNamestring

Optional. The name of an existing QoS policy to assign to the destination volume. The QoS policy can be used to limit write late to the destination volume.

sectorSizeint64

Optional. The sector size to create for the destination volume. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be either 512 or 4096.

compressionboolean

Optional. Determines whether compression is enabled for the destination volume. If set to true, data stored in the volume will be compressed. If not specified, compression settings will be inherited from the source snapshot.

verifyCloneboolean

Optional. If set to true, the clone operation will be verified by reading the destination volume.

snapshotCloneRequestobject

The request to create a thick clone snapshot from a source snapshot. Note: This operation is subject to rate limiting. If the maximum number of running workflows (configured via maxRunningWorkflows) is reached, the request will be rejected with a ResourceExhausted (429) error. The limit prevents API denial-of-service by throttling workflow creation when the system is at capacity.

srcobject

The source snapshot identification information for thick clone snapshot operation.

snapIdstring

The UUID of the snapshot to be cloned (must be a valid UUID).

projectNamestring

The name of the project source that the snapshot belongs to. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore, or period.

clusterIdstring

The UUID of the cluster where the source snapshot is located (must be a valid UUID).

dstobject

The destination (cloned) snapshot information for thick clone snapshot operation.

namestring

The name to assign to the destination (cloned) snapshot, must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore or period.

projectNamestring

Optional. The name of the project destination that the snapshot will reside on. Must conform to a valid Lightbits resource naming conventions up to 256 alpha numeric-characters, and must be either a letter, digit, hyphen, underscore or period. If not specified, the destination snapshot will be created in the same project as the source snapshot.

clusterIdstring

The UUID of the cluster where the destination snapshot will be created (must be a valid UUID).

sizestring

Optional. The size of the destination snapshot in bytes. If the size is not specified, the size of the source snapshot's volume will be used. If specified, the size must be equal or larger than the source snapshot's volume size.

replicaint32

Optional. The number of replicas to create for the destination snapshot. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be between 1 and 3.

descriptionstring

Optional. The description of the destination snapshot (limited to up to 256 characters).

qosPolicyNamestring

Optional. The name of an existing QoS policy to assign to the destination snapshot. The QoS policy can be used to limit write late to the destination volume.

sectorSizeint64

Optional. The sector size to create for the destination snapshot. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be either 512 or 4096.

compressionboolean

Optional. Determines whether compression is enabled for the destination snapshot. If set to true, data stored in the volume will be compressed. If not specified, compression settings will be inherited from the source snapshot.

verifyCloneboolean

Optional. If set to true, the clone operation will be verified by reading the destination volume.

attachClusterRequestobject

Request to attach a cluster to the DMS 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.

detailsobject
nextPageTokenstring
400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

Get a specific workflow by its ID

Get a specific workflow by its ID.

Auth
Headers
Authorizationstring

Bearer id-token

Path Params
workflowIdstring

The ID of the workflow.

GET /api/v1/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 (i.e., attach cluster, thick clone volume, thick clone snapshot).

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.

thickCloneVolumeRequestobject

Request to create a thick clone volume from a source snapshot. Note: This operation is subject to rate limiting. If the maximum number of running workflows (configured via maxRunningWorkflows) is reached, the request will be rejected with a ResourceExhausted (429) error. The limit prevents API denial-of-service by throttling workflow creation when the system is at capacity.

srcobject

The source snapshot identification information for thick clone volume operation.

snapIdstring

The UUID of the snapshot to be cloned (must be a valid UUID).

projectNamestring

The name of the project source that the snapshot belongs to. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore, or period.

clusterIdstring

The UUID of the cluster where the source snapshot is located (must be a valid UUID).

dstobject

The destination (cloned) volume information for thick clone volume operation.

namestring

The name to assign to the destination (cloned) volume. Must conform to valid Lightbits resource naming conventions up to 256 alpha numeric characters, and must be either a letter, digit, hyphen, underscore or dot.

projectNamestring

Optional. The name of the project destination volume will reside on. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore or a period. If not specified, the destination volume will be created in the same project as the source snapshot.

clusterIdstring

The UUID of the cluster where the destination volume will be created (must be a valid UUID).

sizestring

Optional. The size of the destination volume in bytes. If the size is not specified, the size of the source snapshot's volume will be used. If specified, the size must be equal or larger than the source snapshot's volume size.

replicaint32

Optional. The number of replicas to create for the destination volume. If not specified the value will be taken from the source snapshot's volume. If specified, the value must be between 1 and 3.

qosPolicyNamestring

Optional. The name of an existing QoS policy to assign to the destination volume. The QoS policy can be used to limit write late to the destination volume.

sectorSizeint64

Optional. The sector size to create for the destination volume. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be either 512 or 4096.

compressionboolean

Optional. Determines whether compression is enabled for the destination volume. If set to true, data stored in the volume will be compressed. If not specified, compression settings will be inherited from the source snapshot.

verifyCloneboolean

Optional. If set to true, the clone operation will be verified by reading the destination volume.

snapshotCloneRequestobject

The request to create a thick clone snapshot from a source snapshot. Note: This operation is subject to rate limiting. If the maximum number of running workflows (configured via maxRunningWorkflows) is reached, the request will be rejected with a ResourceExhausted (429) error. The limit prevents API denial-of-service by throttling workflow creation when the system is at capacity.

srcobject

The source snapshot identification information for thick clone snapshot operation.

snapIdstring

The UUID of the snapshot to be cloned (must be a valid UUID).

projectNamestring

The name of the project source that the snapshot belongs to. Must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore, or period.

clusterIdstring

The UUID of the cluster where the source snapshot is located (must be a valid UUID).

dstobject

The destination (cloned) snapshot information for thick clone snapshot operation.

namestring

The name to assign to the destination (cloned) snapshot, must conform to valid Lightbits resource naming conventions up to 256 alpha-numeric characters, and must be either a letter, digit, hyphen, underscore or period.

projectNamestring

Optional. The name of the project destination that the snapshot will reside on. Must conform to a valid Lightbits resource naming conventions up to 256 alpha numeric-characters, and must be either a letter, digit, hyphen, underscore or period. If not specified, the destination snapshot will be created in the same project as the source snapshot.

clusterIdstring

The UUID of the cluster where the destination snapshot will be created (must be a valid UUID).

sizestring

Optional. The size of the destination snapshot in bytes. If the size is not specified, the size of the source snapshot's volume will be used. If specified, the size must be equal or larger than the source snapshot's volume size.

replicaint32

Optional. The number of replicas to create for the destination snapshot. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be between 1 and 3.

descriptionstring

Optional. The description of the destination snapshot (limited to up to 256 characters).

qosPolicyNamestring

Optional. The name of an existing QoS policy to assign to the destination snapshot. The QoS policy can be used to limit write late to the destination volume.

sectorSizeint64

Optional. The sector size to create for the destination snapshot. If not specified, the value will be taken from the source snapshot's volume. If specified, the value must be either 512 or 4096.

compressionboolean

Optional. Determines whether compression is enabled for the destination snapshot. If set to true, data stored in the volume will be compressed. If not specified, compression settings will be inherited from the source snapshot.

verifyCloneboolean

Optional. If set to true, the clone operation will be verified by reading the destination volume.

attachClusterRequestobject

Request to attach a cluster to the DMS 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.

detailsobject
400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

Cancel a workflow by its ID

Cancel a specific workflow by its ID.

Auth
Headers
Authorizationstring

Bearer id-token

Path Params
workflowIdstring

The ID of the workflow (Optional - specify either the runID or workflowID).

Query String
runIdstring

The ID of the workflow (Optional - specify either the runID or workflowID).

POST /api/v1/workflows/{workflowId}/cancel
Copy
Responses application/json
200

A successful response.

Cancel Workflow Responseobject

Response of cancel a workflow by its ID.

400

Invalid argument.

401

Authentication required / Authentication failed

500

Internal error in the DMS service.

default

An unexpected error response.

Response
Copy

Login to the DMS service

If successful, the response will contain a token that should be used in the Authorization header for all subsequent requests.

Auth
Headers
Authorizationstring

Basic authentication header base64 encoded user:password

POST /login
Copy
Responses application/json
200

A successful response.

Login Responseobject

The response to the login to the DMS 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 DMS service.

default

An unexpected error response.

Response
Copy