Skip to content

API Reference

Table of Contents

OpenStorageAlerts

OpenStorageAlerts defines rpc's for alerts.

EnumerateWithFilters

rpc EnumerateWithFilters(SdkAlertsEnumerateWithFiltersRequest) SdkAlertsEnumerateWithFiltersResponse

Allows querying alerts.

EnumerateWithFilters allows 3 different types of queries as defined below:

  • Query that takes only resource type as input
  • Query that takes resource type and alert type as input and
  • Query that takes resource id, alert type and resource type as input.

Input

SdkAlertsEnumerateRequest takes a list of such queries and the returned output is a collective ouput from each of these queries. In that sense, the filtering of these queries has a behavior of OR operation. Each query also has a list of optional options. These options allow narrowing down the scope of alerts search. These options have a behavior of an AND operation.

Examples

To search by a resource type in a given time window would require initializing SdkAlertsResourceTypeQuery query and pass in SdkAlertsTimeSpan option into SdkAlertsQuery struct and finally packing any other such queries into SdkAlertsEnumerateRequest object. Alternatively, to search by both resource type and alert type, use SdkAlertsAlertTypeQuery as query builder. Finally to search all alerts of a given resource type and some alerts of another resource type but with specific alert type, use two queries, first initialized with SdkAlertsResourceTypeQuery and second initialized with SdkAlertsAlertTypeQuery and both eventually packed as list in SdkAlertsEnumerateRequest.

Delete

rpc Delete(SdkAlertsDeleteRequest) SdkAlertsDeleteResponse

Delete alerts

Delete

Delete allows 3 different types of queries as defined below:

  • Query that takes only resource type as input
  • Query that takes resource type and alert type as input and
  • Query that takes resource id, alert type and resource type as input.

Input

SdkAlertsDeleteRequest takes a list of such queries and all alerts that match at least one of the queries are deleted.

OpenStorageBucket

BucketService to manage the bucket driver

Create

rpc Create(BucketCreateRequest) BucketCreateResponse

Delete

rpc Delete(BucketDeleteRequest) BucketDeleteResponse

GrantAccess

rpc GrantAccess(BucketGrantAccessRequest) BucketGrantAccessResponse

RevokeAccess

rpc RevokeAccess(BucketRevokeAccessRequest) BucketRevokeAccessResponse

OpenStorageCloudBackup

OpenStorageCloudBackup service manages backing up volumes to a cloud location like Amazon, Google, or Azure.

Backup

To create a backup, you must first call the Create() call for a specified volume. To see the status of this request, use Status() which returns a map where the keys are the source volume id.

Restore

To restore, you would pass a backup_id of a successful backup. backup_id can be retreived by calling Enumerate() for a specified volume. Pass this backup_id and a new volume name to Restore() to start restoring a new volume from an existing backup. To see the status of this restore, pass volume id returned by Restore() to input to Status()

Create

rpc Create(SdkCloudBackupCreateRequest) SdkCloudBackupCreateResponse

Creates a backup request for a specified volume. Use OpenStorageCloudBackup.Status() to get the current status of the backup request.

Requires access AccessType.Read of volume

GroupCreate

rpc GroupCreate(SdkCloudBackupGroupCreateRequest) SdkCloudBackupGroupCreateResponse

Creates a group backup request for a specified group. Use OpenStorageCloudBackup.Status() to get the current status of the backup request.

This will only backup volumes which the user has read_access to.

Restore

rpc Restore(SdkCloudBackupRestoreRequest) SdkCloudBackupRestoreResponse

Restore creates a new volume from a backup id. The newly created volume has an ha_level (number of replicas) of only 1. To increase the number of replicas, use OpenStorageVolume.Set() to change the ha_level.

Delete

rpc Delete(SdkCloudBackupDeleteRequest) SdkCloudBackupDeleteResponse

Deletes a backup stored in the cloud. If the backup is an incremental backup and other backups are dependent on it, it will not be able to be deleted.

DeleteAll

rpc DeleteAll(SdkCloudBackupDeleteAllRequest) SdkCloudBackupDeleteAllResponse

DeleteAll deletes all the backups in the cloud for the specified volume.

EnumerateWithFilters

rpc EnumerateWithFilters(SdkCloudBackupEnumerateWithFiltersRequest) SdkCloudBackupEnumerateWithFiltersResponse

Return a list of backups for the specified volume

Status

rpc Status(SdkCloudBackupStatusRequest) SdkCloudBackupStatusResponse

Status returns the status of any cloud backups of a volume

Catalog

rpc Catalog(SdkCloudBackupCatalogRequest) SdkCloudBackupCatalogResponse

Catalog returns a list of the contents in the backup

History

rpc History(SdkCloudBackupHistoryRequest) SdkCloudBackupHistoryResponse

History returns a list of backups for a specified volume

StateChange

rpc StateChange(SdkCloudBackupStateChangeRequest) SdkCloudBackupStateChangeResponse

StateChange can be used to stop, pause, and restart a backup

SchedCreate

rpc SchedCreate(SdkCloudBackupSchedCreateRequest) SdkCloudBackupSchedCreateResponse

Create cloud backup schedule

SchedUpdate

rpc SchedUpdate(SdkCloudBackupSchedUpdateRequest) SdkCloudBackupSchedUpdateResponse

Update existing cloud backup schedule

SchedDelete

rpc SchedDelete(SdkCloudBackupSchedDeleteRequest) SdkCloudBackupSchedDeleteResponse

Delete cloud backup schedule

SchedEnumerate

rpc SchedEnumerate(SdkCloudBackupSchedEnumerateRequest) SdkCloudBackupSchedEnumerateResponse

Enumerate cloud backup schedules

Size

rpc Size(SdkCloudBackupSizeRequest) SdkCloudBackupSizeResponse

Size returns the size of any cloud backups of a volume

OpenStorageCluster

OpenStorageCluster service provides the methods to manage the cluster

InspectCurrent

rpc InspectCurrent(SdkClusterInspectCurrentRequest) SdkClusterInspectCurrentResponse

InspectCurrent returns information about the current cluster

OpenStorageClusterDomains

OpenStorageClusterDomains is a service used to manage cluster domains in an openstorage cluster. A single openstorage cluster can stretch across multiple cluster domains. In other words it can span across multiple Container Orchestrator clusters. Each node in the cluster is assigned a a cluster domain to start with. A cluster domain and in turn the nodes which are a part of it are assigned a status indicating whether the cluster domain is actively participating in the cluster or whether it is inactive.

Enumerate

rpc Enumerate(SdkClusterDomainsEnumerateRequest) SdkClusterDomainsEnumerateResponse

Enumerate returns names of all the cluster domains in the cluster

Inspect

rpc Inspect(SdkClusterDomainInspectRequest) SdkClusterDomainInspectResponse

Inspect returns information about a cluster domain and a status indicating whether the cluster domain is active

Activate

rpc Activate(SdkClusterDomainActivateRequest) SdkClusterDomainActivateResponse

Activates a cluster domain in the cluster. All the nodes which are part of an active cluster domain will participate in cluster quorum calculation

Deactivate

rpc Deactivate(SdkClusterDomainDeactivateRequest) SdkClusterDomainDeactivateResponse

Deactivates a cluster domain in the cluster. All the nodes which are part of a deactivated cluster domain. will not participate in cluster quorum calculation

OpenStorageClusterPair

OpenStorageClusterPair service provides the methods to manage a cluster pair

Create

rpc Create(SdkClusterPairCreateRequest) SdkClusterPairCreateResponse

Creates Pair with a remote cluster and returns details about the remote cluster

Example

{% codetabs name="Golang", type="go" -%} id, err := client.Create(context.Background(), &api.SdkClusterPairCreateRequest { Request : &api.ClusterPairCreateRequest { RemoteClusterIp: "127.0.0.1", RemoteClusterPort: 12345, RemoteClusterToken: "", SetDefault: true, } })

Inspect

rpc Inspect(SdkClusterPairInspectRequest) SdkClusterPairInspectResponse

Inspect information about a cluster pair

Enumerate

rpc Enumerate(SdkClusterPairEnumerateRequest) SdkClusterPairEnumerateResponse

Enumerate returns list of cluster pairs

GetToken

rpc GetToken(SdkClusterPairGetTokenRequest) SdkClusterPairGetTokenResponse

GetToken returns a auth token

ResetToken

rpc ResetToken(SdkClusterPairResetTokenRequest) SdkClusterPairResetTokenResponse

ResetToken returns a auth token

Delete

rpc Delete(SdkClusterPairDeleteRequest) SdkClusterPairDeleteResponse

Delete a cluster pair

OpenStorageCredentials

OpenStorageCredentials is a service used to manage the cloud credentials which can then be used by the OpenStorageCloudBackup service

Create

rpc Create(SdkCredentialCreateRequest) SdkCredentialCreateResponse

Create is used to submit cloud credentials. It will return an id of the credentials once they are verified to work.

Example

{% codetabs name="Golang", type="go" -%} id, err := client.Create(context.Background(), &api.SdkCredentialCreateRequest{ Name: "awscred", UseProxy: false, CredentialType: &api.SdkCredentialCreateRequest_AwsCredential{ AwsCredential: &api.SdkAwsCredentialRequest{ AccessKey: "dummy-access", SecretKey: "dummy-secret", Endpoint: "dummy-endpoint", Region: "dummy-region", }, }, }) {%- language name="Python", type="py" -%} en_resp = client.Create(api_pb2.SdkCredentialCreateRequest( name='awscred', aws_credential=api_pb2.SdkAwsCredentialRequest( access_key='dummy-access', secret_key='dumm-secret', endpoint='dummy-endpoint', region='dummy-region')))

Update

rpc Update(SdkCredentialUpdateRequest) SdkCredentialUpdateResponse

input is very same as credential create

Enumerate

rpc Enumerate(SdkCredentialEnumerateRequest) SdkCredentialEnumerateResponse

Enumerate returns a list of credential ids

Inspect

rpc Inspect(SdkCredentialInspectRequest) SdkCredentialInspectResponse

Inspect returns the information about a credential, but does not return the secret key.

Delete

rpc Delete(SdkCredentialDeleteRequest) SdkCredentialDeleteResponse

Delete a specified credential

Validate

rpc Validate(SdkCredentialValidateRequest) SdkCredentialValidateResponse

Validate is used to validate credentials

DeleteReferences

rpc DeleteReferences(SdkCredentialDeleteReferencesRequest) SdkCredentialDeleteReferencesResponse

DeleteReferences is used to remove references to credentials

OpenStorageDiags

OpenStorageDiags service provides methods to manage diagnostic bundles

Collect

rpc Collect(SdkDiagsCollectRequest) SdkDiagsCollectResponse

Collect starts a job to collect diagnostics from set of nodes that are selected based on the selectors provided in the SdkDiagsCollectRequest. See SdkDiagsCollectRequest for more details on how to select the nodes Returns SdkDiagsCollectResponse which has the job that is responsible for collecting the diags.

OpenStorageFilesystemCheck

Start

rpc Start(SdkFilesystemCheckStartRequest) SdkFilesystemCheckStartResponse

Start a filesystem-check background operation on a unmounted volume.

Status

rpc Status(SdkFilesystemCheckStatusRequest) SdkFilesystemCheckStatusResponse

Get Status of a filesystem-check background operation on an unmounted volume, if any

Stop

rpc Stop(SdkFilesystemCheckStopRequest) SdkFilesystemCheckStopResponse

Stop a filesystem check background operation on an unmounted volume, if any

OpenStorageFilesystemTrim

OpenStorageFilesystemTrim Service

This service provides methods to manage filesystem trim operation on a volume.

This operation runs in the background on a mounted volume. If the volumes are not mounted, these API return error.

Once the filesystem trim operation is started, the clients have to poll for the status of the background operation using the OpenStorageFilesystemTrim.Status() rpc request

A typical workflow involving filesystem trim would be as follows 1. Attach the volume OpenStorageMountAttachClient.Attach() 2. Mount the volume OpenStorageMountAttachClient.Mount() 3. Start the filesystem trim operation by issuing a grpc call to OpenStorageFilesystemTrimClient.Start() This call returns immediately with a status code indicating if the operation was successfully started or not. 4. To get the status of the Filesystem Trim operation, issue a grpc call to OpenStorageFilesystemTrimClient.Status() 5. To stop the Filesystem Trim operation, issue a grpc call to OpenStorageFilesystemTrimClient.Stop()

Start

rpc Start(SdkFilesystemTrimStartRequest) SdkFilesystemTrimStartResponse

Start a filesystem Trim background operation on a mounted volume

Status

rpc Status(SdkFilesystemTrimStatusRequest) SdkFilesystemTrimStatusResponse

Status of a filesystem Trim background operation on a mounted volume, if any

AutoFSTrimStatus

rpc AutoFSTrimStatus(SdkAutoFSTrimStatusRequest) SdkAutoFSTrimStatusResponse

AutoFSTrimUsage

rpc AutoFSTrimUsage(SdkAutoFSTrimUsageRequest) SdkAutoFSTrimUsageResponse

Usage of a filesystem Trim background operation on all locally mounted volume

Stop

rpc Stop(SdkFilesystemTrimStopRequest) SdkFilesystemTrimStopResponse

Stop a filesystem Trim background operation on a mounted volume, if any

AutoFSTrimPush

rpc AutoFSTrimPush(SdkAutoFSTrimPushRequest) SdkAutoFSTrimPushResponse

Push a auto filesystem Trim job into the queue

AutoFSTrimPop

rpc AutoFSTrimPop(SdkAutoFSTrimPopRequest) SdkAutoFSTrimPopResponse

Pop a auto filesystem Trim job from the queue

OpenStorageIdentity

OpenStorageIdentity service provides methods to obtain information about the cluster

Capabilities

rpc Capabilities(SdkIdentityCapabilitiesRequest) SdkIdentityCapabilitiesResponse

Capabilities returns the supported services by the cluster. This allows SDK implementations to advertise their supported services as the API matures. With this information, clients can determine supported services from storage clusters at different versions.

Version

rpc Version(SdkIdentityVersionRequest) SdkIdentityVersionResponse

Version returns version information about the system.

OpenStorageJob

OpenstorageJob is a service that provides a common set of APIs for services that use the asynchronous job framework

Update

rpc Update(SdkUpdateJobRequest) SdkUpdateJobResponse

Update updates an existing job's state Only acceptable state values are JobState_PAUSED - acceptable only from running state JobState_CANCELLED - acceptable only from running/pause state JobState_RUNNING - acceptable only from pause state

GetStatus

rpc GetStatus(SdkGetJobStatusRequest) SdkGetJobStatusResponse

GetStatus gets the status of a job

Enumerate

rpc Enumerate(SdkEnumerateJobsRequest) SdkEnumerateJobsResponse

Enumerate returns all the jobs currently known to the system

OpenStorageMigrate

OpenStorageMigrate is a service used to manage migration of volumes

Start

rpc Start(SdkCloudMigrateStartRequest) SdkCloudMigrateStartResponse

Start a migration operation

Cancel

rpc Cancel(SdkCloudMigrateCancelRequest) SdkCloudMigrateCancelResponse

Cancel a migration operation

Status

rpc Status(SdkCloudMigrateStatusRequest) SdkCloudMigrateStatusResponse

Status for migration operation. If status request is empty, status for all migration operation will be returned.

OpenStorageMountAttach

OpenStorageMountAttach is a service used to manage node access to a volume. Note, these APIs are here for testing or diagnostics purposes only. In normal operations, the Container Orchestration (CO) system is managing all mount and attach calls through the CSI interface. The normal usage is once volumes are created, to let the CO manage the node access functions to the volume.

Attach

rpc Attach(SdkVolumeAttachRequest) SdkVolumeAttachResponse

Attach attaches device to the host that the client is communicating with.

Requires access AccessType.Write of volume

Detach

rpc Detach(SdkVolumeDetachRequest) SdkVolumeDetachResponse

Detaches a the volume from the host

Requires access AccessType.Write of volume

Mount

rpc Mount(SdkVolumeMountRequest) SdkVolumeMountResponse

Mount mounts an attached volume in the host that the client is communicating with

Requires access AccessType.Write of volume

Unmount

rpc Unmount(SdkVolumeUnmountRequest) SdkVolumeUnmountResponse

Unmount unmounts a mounted volume in the host that the client is communicating with

Requires access AccessType.Write of volume

OpenStorageNode

OpenStorageNode is a service used to manage nodes in the cluster

Inspect

rpc Inspect(SdkNodeInspectRequest) SdkNodeInspectResponse

Inspect returns information about the specified node

InspectCurrent

rpc InspectCurrent(SdkNodeInspectCurrentRequest) SdkNodeInspectCurrentResponse

InspectCurrent returns information about the storage node where the client is currently connected to.

Enumerate

rpc Enumerate(SdkNodeEnumerateRequest) SdkNodeEnumerateResponse

Enumerate returns the ids of all the nodes in the current cluster

EnumerateWithFilters

rpc EnumerateWithFilters(SdkNodeEnumerateWithFiltersRequest) SdkNodeEnumerateWithFiltersResponse

EnumerateWithFilters returns all the nodes in the current cluster

VolumeUsageByNode

rpc VolumeUsageByNode(SdkNodeVolumeUsageByNodeRequest) SdkNodeVolumeUsageByNodeResponse

Returns capacity usage of all volumes/snaps for a give node

DrainAttachments

rpc DrainAttachments(SdkNodeDrainAttachmentsRequest) SdkJobResponse

DrainAttachments creates a task to drain volume attachments from the provided node in the cluster.

CordonAttachments

rpc CordonAttachments(SdkNodeCordonAttachmentsRequest) SdkNodeCordonAttachmentsResponse

CordonAttachments disables any new volume attachments from the provided node in the cluster. Existing volume attachments will stay on the node.

UncordonAttachments

rpc UncordonAttachments(SdkNodeUncordonAttachmentsRequest) SdkNodeUncordonAttachmentsResponse

UncordonAttachments re-enables volume attachments on the provided node in the cluster.

OpenStorageObjectstore

OpenStorageObjectstore is a service used to manage object store services on volumes

Inspect

rpc Inspect(SdkObjectstoreInspectRequest) SdkObjectstoreInspectResponse

Inspect returns information about the object store endpoint

Create

rpc Create(SdkObjectstoreCreateRequest) SdkObjectstoreCreateResponse

Creates creates an object store endpoint on specified volume

Delete

rpc Delete(SdkObjectstoreDeleteRequest) SdkObjectstoreDeleteResponse

Delete destroys the object store endpoint on the volume

Update

rpc Update(SdkObjectstoreUpdateRequest) SdkObjectstoreUpdateResponse

Updates provided objectstore status. This call can be used to stop and start the server while maintaining the same object storage id.

OpenStoragePolicy

OpenStoragePolicy service provides methods to manager storage policies.

Policies can be used to validate/ensure a set of volume configurations to be followed while creating volumes.

Create

rpc Create(SdkOpenStoragePolicyCreateRequest) SdkOpenStoragePolicyCreateResponse

Creates a storage policy

Enumerate

rpc Enumerate(SdkOpenStoragePolicyEnumerateRequest) SdkOpenStoragePolicyEnumerateResponse

Enumerate returns a list of storage policies

Inspect

rpc Inspect(SdkOpenStoragePolicyInspectRequest) SdkOpenStoragePolicyInspectResponse

Inspect returns information about a specified storage policy

Update

rpc Update(SdkOpenStoragePolicyUpdateRequest) SdkOpenStoragePolicyUpdateResponse

Updates specified storage policy

Delete

rpc Delete(SdkOpenStoragePolicyDeleteRequest) SdkOpenStoragePolicyDeleteResponse

Deletes specified storage policy

SetDefault

rpc SetDefault(SdkOpenStoragePolicySetDefaultRequest) SdkOpenStoragePolicySetDefaultResponse

Set specified storage policy as default policy

DefaultInspect

rpc DefaultInspect(SdkOpenStoragePolicyDefaultInspectRequest) SdkOpenStoragePolicyDefaultInspectResponse

DefaultInspect return default storage policy if any, otherwise empty response

Release

rpc Release(SdkOpenStoragePolicyReleaseRequest) SdkOpenStoragePolicyReleaseResponse

Release specified storage policy constraint for volume creation

OpenStoragePool

OpenStoragePool is a service used to manage storage pools in the cluster

Resize

rpc Resize(SdkStoragePoolResizeRequest) SdkStoragePoolResizeResponse

Resize expands the specified storage pool based on the request parameters

Rebalance

rpc Rebalance(SdkStorageRebalanceRequest) SdkStorageRebalanceResponse

Rebalance creates a new rebalance task

UpdateRebalanceJobState

rpc UpdateRebalanceJobState(SdkUpdateRebalanceJobRequest) SdkUpdateRebalanceJobResponse

UpdateRebalanceJobState updates existing rebalance task state. Only acceptable values are StorageRebalanceJobState_PAUSED - acceptable only from running state StorageRebalanceJobState_CANCELLED - acceptable only from running/pause state StorageRebalanceJobState_RUNNING - acceptable only from pause state

GetRebalanceJobStatus

rpc GetRebalanceJobStatus(SdkGetRebalanceJobStatusRequest) SdkGetRebalanceJobStatusResponse

GetRebalanceJobStatus returns rebalance status for specified job

EnumerateRebalanceJobs

rpc EnumerateRebalanceJobs(SdkEnumerateRebalanceJobsRequest) SdkEnumerateRebalanceJobsResponse

EnumerateRebalanceJobs returns all rebalance jobs currently known to the system

OpenStorageRole

OpenStorageRole service provides methods to manage user roles

Custom roles

The OpenStorage SDK server is equipped to handle customized authorization roles. Using this model it allows administrators to customize the permission rules of a role to be used by a user.

Creating a custom role, or an SdkRole, is done by setting up a set of allowed rules, or SdkRules, directives which are sequentially scanned until a match is found. Rules are created using the names of OpenStorage SDK services and APIs as follows:

The message SdkRules has the following properties:

  • Services: Is the gRPC service name in OpenStorage<service name> in lowercase
  • Apis: Is the API name in the service in lowercase

Please see SdkRule for more information on the format.

Create

rpc Create(SdkRoleCreateRequest) SdkRoleCreateResponse

Create a role for users in the system

Enumerate

rpc Enumerate(SdkRoleEnumerateRequest) SdkRoleEnumerateResponse

List all roles

Inspect

rpc Inspect(SdkRoleInspectRequest) SdkRoleInspectResponse

Get information about a role

Delete

rpc Delete(SdkRoleDeleteRequest) SdkRoleDeleteResponse

Delete an existing role

Update

rpc Update(SdkRoleUpdateRequest) SdkRoleUpdateResponse

Update an existing role

OpenStorageSchedulePolicy

OpenStorageSchedulePolicy service is used to manage the automated snapshots for a volume

Create

rpc Create(SdkSchedulePolicyCreateRequest) SdkSchedulePolicyCreateResponse

Create creates a new snapshot schedule. They can be setup daily, weekly, or monthly.

Update

rpc Update(SdkSchedulePolicyUpdateRequest) SdkSchedulePolicyUpdateResponse

Update a snapshot schedule

Enumerate

rpc Enumerate(SdkSchedulePolicyEnumerateRequest) SdkSchedulePolicyEnumerateResponse

Enumerate returns a list of schedules

Inspect

rpc Inspect(SdkSchedulePolicyInspectRequest) SdkSchedulePolicyInspectResponse

Inspect returns information about a specified schedule

Delete

rpc Delete(SdkSchedulePolicyDeleteRequest) SdkSchedulePolicyDeleteResponse

Delete removes a snapshot schedule

OpenStorageVolume

OpenStorageVolume is a service used to manage the volumes of a storage system

Create

rpc Create(SdkVolumeCreateRequest) SdkVolumeCreateResponse

Create creates a volume according to the specification provided

Requires access AccessType.Read when cloning from a parent volume.

Example

{% codetabs name="Golang", type="go" -%} id, err := client.Create(context.Background(), &api.SdkVolumeCreateRequest{ Name: "volume-12345-east", Spec: &api.VolumeSpec { Size: 1234567, }, }) {%- language name="Python", type="py" -%} en_resp = client.Create(api_pb2.SdkVolumeCreateRequest( name="volume-12345-east", spec=api_pb2.VolumeSpec(size=1234567)))

Clone

rpc Clone(SdkVolumeCloneRequest) SdkVolumeCloneResponse

Clone creates a new writable volume cloned from an existing volume

Requires access AccessType.Read of volume

Delete

rpc Delete(SdkVolumeDeleteRequest) SdkVolumeDeleteResponse

Delete deletes the provided volume

Requires access AccessType.Admin of volume

Inspect

rpc Inspect(SdkVolumeInspectRequest) SdkVolumeInspectResponse

Inspect returns information about a volume

Requires access AccessType.Read of volume

InspectWithFilters

rpc InspectWithFilters(SdkVolumeInspectWithFiltersRequest) SdkVolumeInspectWithFiltersResponse

Returns information for a list of volumes that match a filter. This call is a helper function like calling OpenStorageVolume.EnumerateWithFilters then having it return the contents of each of those volumes OpenStorageVolume.Inspect(). Take care in using this call when requesting large number of volumes because it will block until it has all the information requested before returning.

Update

rpc Update(SdkVolumeUpdateRequest) SdkVolumeUpdateResponse

Update provides a method for manipulating the specification and attributes of a volume. Set can be used to resize a volume, update labels, change replica count, and much more.

Requires access AccessType.Write of volume

Stats

rpc Stats(SdkVolumeStatsRequest) SdkVolumeStatsResponse

Stats returns the statistics for the requested volume

Requires access AccessType.Read of volume

CapacityUsage

rpc CapacityUsage(SdkVolumeCapacityUsageRequest) SdkVolumeCapacityUsageResponse

CapacityUsage returns volume/snapshot's capacity usage details

Requires access AccessType.Read of volume

Error codes:
  • codes.Aborted : Command was aborted and only total_bytes field is valid
  • code.Unimmplemented : Command is not suported this kernel.Only total_bytes field is valid;

Enumerate

rpc Enumerate(SdkVolumeEnumerateRequest) SdkVolumeEnumerateResponse

Enumerate returns a list of volume ids

EnumerateWithFilters

rpc EnumerateWithFilters(SdkVolumeEnumerateWithFiltersRequest) SdkVolumeEnumerateWithFiltersResponse

Enumerate returns a list of volume ids that match the labels if any are provided.

SnapshotCreate

rpc SnapshotCreate(SdkVolumeSnapshotCreateRequest) SdkVolumeSnapshotCreateResponse

SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only), point-in-time snapshot of a volume. To create a new writable volume from a snapshot, please use OpenStorageVolume.Clone().

Requires access AccessType.Read of volume

SnapshotRestore

rpc SnapshotRestore(SdkVolumeSnapshotRestoreRequest) SdkVolumeSnapshotRestoreResponse

SnapshotRestore restores a volume to a specified snapshot

Requires access AccessType.Write of volume

SnapshotEnumerate

rpc SnapshotEnumerate(SdkVolumeSnapshotEnumerateRequest) SdkVolumeSnapshotEnumerateResponse

SnapshotEnumerate returns a list of snapshots for a specific volume

SnapshotEnumerateWithFilters

rpc SnapshotEnumerateWithFilters(SdkVolumeSnapshotEnumerateWithFiltersRequest) SdkVolumeSnapshotEnumerateWithFiltersResponse

SnapshotEnumerate returns a list of snapshots. To filter all the snapshots for a specific volume which may no longer exist, specifiy a volume id. Labels can also be used to filter the snapshot list. If neither are provided all snapshots will be returned.

SnapshotScheduleUpdate

rpc SnapshotScheduleUpdate(SdkVolumeSnapshotScheduleUpdateRequest) SdkVolumeSnapshotScheduleUpdateResponse

Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule as policy=<name>,.... This function will overwrite any policy values in the volume. To delete the policies in the volume send no policies.

Requires access AccessType.Write of volume

VolumeCatalog

rpc VolumeCatalog(SdkVolumeCatalogRequest) SdkVolumeCatalogResponse

Gets the volume catalog of an attached and mounted volume. Returns the entire tree up to "n" depth (default is all of it) Takes a path that can be used as the new root for the catalog request.

Messages

ActiveRequest

Active Request

Field Type Description
ReqestKV map ActiveRequest.ReqestKVEntry none

ActiveRequest.ReqestKVEntry

Field Type Description
key int64 none
value string none

ActiveRequests

Active Requests

Field Type Description
RequestCount int64 none
ActiveRequest repeated ActiveRequest none

Alert

Alert is a structure that represents an alert object

Field Type Description
id int64 Id for Alert
severity SeverityType Severity of the Alert
alert_type int64 AlertType user defined alert type
message string Message describing the Alert
timestamp google.protobuf.Timestamp Timestamp when Alert occured
resource_id string ResourceId where Alert occured
resource ResourceType Resource where Alert occured
cleared bool Cleared Flag
ttl uint64 Time-to-live in seconds for this Alert
unique_tag string UniqueTag helps identify a unique alert for a given resouce
count int64 Count of such alerts raised so far.
first_seen google.protobuf.Timestamp Timestamp when such alert was raised the very first time.

Alerts

Alerts is an array of Alert objects

Field Type Description
alert repeated Alert none

BucketAccessCredentials

Defines the bucket access credential object

Field Type Description
access_key_id string Access key id
secret_access_key string Secret access key

BucketCreateRequest

Defines a request to create a bucket.

Field Type Description
name string Unique name of the bucket. This will be used for idempotency.
region string Region in which bucket will be created.
endpoint string Endpoint to use when creating the bucket
anonymousBucketAccessMode AnonymousBucketAccessMode Anonymous access policy for the bucket.

BucketCreateResponse

Defines a response to the creation of a bucket

Field Type Description
bucket_id string Id of new bucket

BucketDeleteRequest

Defines the request to delete a bucket

Field Type Description
bucket_id string Id of bucket to delete
region string Region in which bucket will be created.
endpoint string Endpoint to use when deleting the bucket
clear_bucket bool Flag to allow non empty bucket deletion.

BucketDeleteResponse

Empty response

BucketGrantAccessRequest

Defines a request to grant access to the bucket

Field Type Description
bucket_id string Id of the bucket
account_name string Name of the account to which access to be provided
access_policy string Access policy to be applied for the account

BucketGrantAccessResponse

Defines a response to the creation of a bucket

Field Type Description
account_id string This is the account_id that is being provided access. This will This will be required later to revoke access.
credentials BucketAccessCredentials Credentials supplied for accessing the bucket ex: aws access key id and secret, etc.

BucketRevokeAccessRequest

Defines the request to revoke access to the bucket

Field Type Description
bucket_id string Id of bucket to delete
account_id string AccountId that is having its access revoked.

BucketRevokeAccessResponse

Empty response

CapacityUsageInfo

Provides details on exclusive and shared storage used by snapshot/volume specifically for copy-on-write(COW) snapshots. Deletion of snapshots and overwirte of volume will affect the exclusive storage used by the other dependent snaps and parent volume.

Field Type Description
exclusive_bytes int64 Storage consumed exclusively by this single snapshot. Deletion of this snapshot may increase the free storage available by this amount.
shared_bytes int64 Storage consumed by this snapshot that is shared with parent and children
total_bytes int64 TotalBytes used by this volume

Catalog

Field Type Description
name string Name of the Directory/File
path string Full Path of the Directory/File
type string Type Directory or File
size uint64 File or Directory Size
LastModified google.protobuf.Timestamp Last Modified
children repeated Catalog Children

CatalogResponse

Field Type Description
root Catalog Root Catalog
report Report Report of total directories and files count

CloudDriveTransferJob

Field Type Description
source_driveset_id string SourceDrivesetID is the ID of the current driveset that needs to be transferred
destination_instance_id string DestinationInstanceID is the ID of the storageless instance that needs to take over the SourceDriveSetID
status string Status describes a helpful status of this operation

CloudMigrate

CloudMigrateCancelRequest

Request to stop a cloud migration

Field Type Description
task_id string The id of the task to cancel

CloudMigrateInfo

Field Type Description
task_id string Task id associated with this migration
cluster_id string ID of the cluster where the volume is being migrated
local_volume_id string ID of the volume on the local cluster
local_volume_name string Name of the volume on the local cluster
remote_volume_id string ID of the volume on the remote cluster
cloudbackup_id string ID of the cloudbackup used for the migration
current_stage CloudMigrate.Stage Current stage of the volume migration
status CloudMigrate.Status Status of the current stage
last_update google.protobuf.Timestamp Last time the status was updated
error_reason string Contains the reason for the migration error
start_time google.protobuf.Timestamp StartTime indicates Op's start time
completed_time google.protobuf.Timestamp CompletedTime indicates Op's completed time
bytes_total uint64 BytesTotal is the number of bytes being transferred
bytes_done uint64 BytesDone is the number of bytes already transferred
eta_seconds int64 ETASeconds the time duration in seconds for cloud migration completion

CloudMigrateInfoList

Field Type Description
list repeated CloudMigrateInfo none

CloudMigrateStartRequest

Request to start a cloud migration

Field Type Description
operation CloudMigrate.OperationType The type of operation to start
cluster_id string ID of the cluster to which volumes are to be migrated
target_id string Depending on the operation type this can be a VolumeID or VolumeGroupID
task_id string (Optional) Unique TaskId assocaiated with this migration. If not provided one will be generated and returned in the response

CloudMigrateStartResponse

Response to start a cloud migration

Field Type Description
task_id string TaskId assocaiated with the migration that was started

CloudMigrateStatusRequest

Request for cloud migration operation status

Field Type Description
task_id string Task id for which to return status
cluster_id string ID of the cluster for which to return migration statuses

CloudMigrateStatusResponse

Response with a status of the cloud migration operations

Field Type Description
info map CloudMigrateStatusResponse.InfoEntry Map of cluster id to the status of volumes being migrated

CloudMigrateStatusResponse.InfoEntry

Field Type Description
key string none
value CloudMigrateInfoList none

ClusterPairCreateRequest

Used to send a request to create a cluster pair

Field Type Description
remote_cluster_ip string IP of the remote cluster
remote_cluster_port uint32 Port for the remote cluster
remote_cluster_token string Token used to authenticate with the remote cluster
set_default bool Set the new pair as the default
mode ClusterPairMode.Mode The mode to use for the cluster pair
credential_id string Use for the cluster pairing, if given credential id will be used in ClusterPairCreate service

ClusterPairCreateResponse

Response for a pair request

Field Type Description
remote_cluster_id string ID of the remote cluster
remote_cluster_name string Name of the remote cluster

ClusterPairGetResponse

Reponse to get a cluster pair

Field Type Description
pair_info ClusterPairInfo Info about the cluster pair

ClusterPairInfo

Information about a cluster pair

Field Type Description
id string ID of the cluster
name string Name of the cluster
endpoint string The endpoint used for creating the pair
current_endpoints repeated string Current endpoints of the cluster
secure bool Flag used to determine if communication is over a secure channel
token string Token associated with cluster
options map ClusterPairInfo.OptionsEntry Key/value pair of options associated with the cluster Opaque to openstorage and interpreted by the drivers
mode ClusterPairMode.Mode Mode for the cluster pair

ClusterPairInfo.OptionsEntry

Field Type Description
key string none
value string none

ClusterPairMode

ClusterPairProcessRequest

Used to process a pair request from a remote cluster

Field Type Description
source_cluster_id string ID of the cluster requesting the pairing
remote_cluster_token string Token used to authenticate with the remote cluster
mode ClusterPairMode.Mode The mode to use for the cluster pair
credential_id string Use for the cluster pairing, if given credential id will be used in ClusterPairCreate service

ClusterPairProcessResponse

Response after a pairing has been processed

Field Type Description
remote_cluster_id string ID of the cluster which processed the pair request
remote_cluster_name string Name of the cluster which processed the pair request
remote_cluster_endpoints repeated string List of endpoints that can be used to communicate with the cluster
options map ClusterPairProcessResponse.OptionsEntry Key/value pair of options returned on successful pairing. Opaque to openstorage and interpreted by the drivers

ClusterPairProcessResponse.OptionsEntry

Field Type Description
key string none
value string none

ClusterPairTokenGetResponse

Response to get the cluster token

Field Type Description
token string Token used to authenticate clusters

ClusterPairsEnumerateResponse

Response to enumerate all the cluster pairs

Field Type Description
default_id string ID of the default cluster pair
pairs map ClusterPairsEnumerateResponse.PairsEntry Pairs Info about the cluster pairs

ClusterPairsEnumerateResponse.PairsEntry

Field Type Description
key string none
value ClusterPairInfo none

ClusterResponse

ClusterResponse specifies a response that gets returned when requesting the cluster

Field Type Description
error string Error code

in: body |

CollectDiagsJob

Field Type Description
request SdkDiagsCollectRequest Request is the user request for this diags collection job
statuses repeated DiagsCollectionStatus Statuses is a list of statuses for diags collection for each node that is part of the request

DiagsCollectionStatus

Field Type Description
node string Node is the node that's collecting the diags
state DiagsCollectionStatus.State State is the current state of diags collection on the node
message string Message is a user friendly message for current status of diags collection

DiagsNodeSelector

DiagsNodeSelector allows selecting nodes for diags collection User can select NodeLabelSelector AND/OR NodeIDs. If both are provided, the implementation will select nodes based on both labels and IDs and also handle overlaps If All is set to true, other selectors are ignored since it selects all nodes

Field Type Description
node_label_selector repeated LabelSelectorRequirement NodeLabelSelector is a label selector used to select the nodes for which diags will be collected
node_ids repeated string NodeIDs are unique IDs fo the nodes for which the diags will be collected
all bool All selects all nodes for diags collection

DiagsVolumeSelector

DiagsVolumeSelector allows selecting volumes for diags collection User can select VolumeLabelSelector AND/OR VolumeIDs. If both are provided, the implementation will select nodes based on both labels and IDs and also handle overlaps

Field Type Description
volume_label_selector repeated LabelSelectorRequirement VolumeLabelSelector selects volumes by their labels and then uses replica and attached nodes for those volumes for diags collection
volume_ids repeated string VolumeIDs selects volumes by their unique IDs and then uses replica and attached nodes for those volumes for diags collection

DrainAttachmentsSummary

DrainAttachments summary of the volumes whose attachments need to be drained from a node

Field Type Description
num_volumes_total uint64 Total number of volumes that need to be drained
num_volumes_done uint64 Number of volumes which have been drained
num_volumes_pending uint64 Number of volumes which have not been drained yet

ExportSpec

ExportSpec defines how the volume is exported..

Field Type Description
export_protocol ExportProtocol ExportProtocol defines how the volume is exported.
export_options string ExportOptions options exporting the volume.

FastpathConfig

FastpathConfig part of volume

Field Type Description
setup_on int32 fastpath setup on this node
promote bool Fastpath temporary promotion during attach
status FastpathStatus Fastpath consolidated current status across replicas
replicas repeated FastpathReplState Fastpath replica state for each replica in replica set
dirty bool Dirty flag on volume - was attached in userspace
coord_uuid string fastpath coordinator node uuid to enhance reporting
force_failover bool fastpath force failover, disable auto promote to fastpath

FastpathReplState

Field Type Description
dev_id uint64 none
node_id uint32 none
protocol FastpathProtocol none
acl bool none
exported_device string target info
block bool none
target string none
exported bool none
imported bool initiator info
devpath string none
node_uuid string node_uuid added to enhance UI reporting

FilesystemCheck

FilesystemTrim

FstrimVolumeUsageInfo

FstrimVolUsageInfo

Field Type Description
volume_name string Volume name
volume_size uint64 Volume size
du_usage uint64 Disk usage in bytes
px_usage uint64 Disk usage seen in Portworx in bytes
perform_auto_fstrim string If auto fstrim is performed to the volume, if not, why

GraphDriverChanges

GraphDriverChanges represent a list of changes between the filesystem layers specified by the ID and Parent. // Parent may be an empty string, in which case there is no parent. Where the Path is the filesystem path within the layered filesystem

Field Type Description
path string none
kind GraphDriverChangeType none

Group

Group represents VolumeGroup / namespace All volumes in the same group share this object.

Field Type Description
id string Id common identifier across volumes that have the same group.

GroupSnapCreateRequest

GroupSnapCreateRequest specifies a request to create a snapshot of given group.

Field Type Description
id string none
Labels map GroupSnapCreateRequest.LabelsEntry none
volume_ids repeated string none
delete_on_failure bool none

GroupSnapCreateRequest.LabelsEntry

Field Type Description
key string none
value string none

GroupSnapCreateResponse

GroupSnapCreateRequest specifies a response that get's returned when creating a group snapshot.

Field Type Description
snapshots map GroupSnapCreateResponse.SnapshotsEntry Created snapshots

in: body Required: true | | error | string | Error message

in: body Required: true |

GroupSnapCreateResponse.SnapshotsEntry

Field Type Description
key string none
value SnapCreateResponse none

IoStrategy

IoStrategy defines how I/O should be performed to backing storage media.

Field Type Description
async_io bool AsyncIO enables kaio.
early_ack bool EarlyAck enables acks for async I/O at the source.
direct_io bool Enable direct I/O on the backing datastore

IoThrottle

IoThrottle defines IO throttle limits for a volume read_iops : maximum read iops this volume is allowed write_iops : maximum write iops this volume is allowed read_bw_mbytes : maximum read bandwidth this volume is allowed in MegaBytes write_bw_mbytes : maximum write bandwidth this volume is allowed in MegaBytes

Field Type Description
read_iops uint32 none
write_iops uint32 none
read_bw_mbytes uint32 none
write_bw_mbytes uint32 none

Job

Job is a generic job object that can encapsulate other messages which follow the job framework of APIs

Field Type Description
id string ID of the job
state Job.State State of the current job
type Job.Type Type is the job type
oneof job.drain_attachments NodeDrainAttachmentsJob NodeDrainAttachmentsJob if selected this job desribes the task for removing volume attachments from a node
oneof job.clouddrive_transfer CloudDriveTransferJob CloudDriveTransferJob if selected describes the task to transfer a cloud driveset from one node to another
oneof job.collect_diags CollectDiagsJob CollectDiagsJob if selected describes the task to collect diagnostics for the cluster
create_time google.protobuf.Timestamp CreateTime is the time the job was created
last_update_time google.protobuf.Timestamp LastUpdateTime is the time the job was updated

JobAudit

JobAudit is an audit entry for a job describing the different operations performed as a part of the job

Field Type Description
summary repeated JobWorkSummary none

JobSummary

JobSummary provides a summary of a job

Field Type Description
id string ID of the job
total_runtime_seconds uint64 Total runtime in seconds
work_summaries repeated JobWorkSummary Summary provides more information about the on-going job

JobWorkSummary

JobWorkSummary describes an action taken while performing the hob

Field Type Description
oneof summary.drain_attachments_summary DrainAttachmentsSummary Summary summarizes drain attachment job

LabelSelectorRequirement

LabelSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.

Field Type Description
key string Key is the label key that the selector applies to.
operator LabelSelectorRequirement.Operator Operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values repeated string Values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

LocateResponse

Locate response would be used to return a set of mounts and/or Container IDs and their mount paths

Field Type Description
mounts map LocateResponse.MountsEntry Map of mounts : /var/lib/osd/
dockerids map LocateResponse.DockeridsEntry Map of docker id's and their mounts : /var/www

LocateResponse.DockeridsEntry

Field Type Description
key string none
value string none

LocateResponse.MountsEntry

Field Type Description
key string none
value string none

MountOptions

MountOptions defines the mount options with which a volume is mounted.

Field Type Description
options map MountOptions.OptionsEntry Options are opaque key value pairs that are passed as mount options when a volume is mounted. If an empty value is provided only the key will be passed as an option If both key and value are provided then 'key=value' will be passed as an option

MountOptions.OptionsEntry

Field Type Description
key string none
value string none

NFSProxySpec

NFSProxySpec is the spec for proxying an NFS share.

Field Type Description
export_path string ExportPath is the NFS export path on the NFS server
sub_path string SubPath is the sub-directory from an NFS share that should be reflected.

NodeDrainAttachmentOptions

Options for draining volume attachment from a node

NodeDrainAttachmentsJob

NodeDrainAttachmentsJob describe a job to drain volume attachments from a node

Field Type Description
node_id string NodeID of the node for which this drain job is running
Status string Status describes a helpful status of this node drain operation
issuer string Issuer is a user friendly name for the caller who is invoking the API. It can be used by caller to filter out drain requests from a particular issuer
parameters SdkNodeDrainAttachmentsRequest Parameters is the original request params for this node drain operation This node drain job is applicable to only one of these node drain operations.
create_time google.protobuf.Timestamp CreateTime is the time the job was created
last_update_time google.protobuf.Timestamp LastUpdateTime is the time the job was updated

ObjectstoreInfo

ObjectstoreInfo is a structure that has current objectstore info

Field Type Description
uuid string UUID of objectstore
volume_id string VolumeID of volume used by object store
enabled bool Enable/Disable created objectstore
status string Status of objectstore running/failed
action int64 Action being taken on this objectstore
access_key string AccessKey for login into objectstore
secret_key string SecretKey for login into objectstore
endpoints repeated string Endpoints for accessing objectstore
current_endpoint string CurrentEndpoint on which objectstore server is accessible
access_port int64 AccessPort is objectstore server port
region string Region for this objectstore

Ownership

Ownership information for resource. Administrators are users who belong to the group *, meaning, every group.

Field Type Description
owner string Username of owner.

The storage system uses the username taken from the security authorization token and is saved on this field. Only users with system administration can edit this value. | | acls | Ownership.AccessControl | Permissions to share resource which can be set by the owner.

NOTE: To create an "admin" user which has access to any resource set the group value in the token of the user to *. |

Ownership.AccessControl

Field Type Description
groups map Ownership.AccessControl.GroupsEntry Group access to resource which must match the group set in the authorization token. Can be set by the owner or the system administrator only. Possible values are: 1. no groups: Means no groups are given access. 2. ["*"]: All groups are allowed. 3. ["group1", "group2"]: Only certain groups are allowed. In this example only group1 and group2 are allowed.
collaborators map Ownership.AccessControl.CollaboratorsEntry Collaborator access to resource gives access to other user. Must be the username (unique id) set in the authorization token. The owner or the administrator can set this value. Possible values are: 1. no collaborators: Means no users are given access. 2. ["*"]: All users are allowed. 3. ["username1", "username2"]: Only certain usernames are allowed. In this example only username1 and username2 are allowed.
public Ownership.PublicAccessControl Public access to resource may be assigned for access by the public userd

Ownership.AccessControl.CollaboratorsEntry

Field Type Description
key string none
value Ownership.AccessType none

Ownership.AccessControl.GroupsEntry

Field Type Description
key string none
value Ownership.AccessType none

Ownership.PublicAccessControl

PublicAccessControl allows assigning public ownership

Field Type Description
type Ownership.AccessType AccessType declares which level of public access is allowed

PXDProxySpec

PXDProxySpec is the spec for proxying a Portworx volume

Field Type Description
id string ID of the remote portworx volume

ProxySpec

ProxySpec defines how this volume will reflect an external data source.

Field Type Description
proxy_protocol ProxyProtocol ProxyProtocol defines the protocol used for proxy.
endpoint string Endpoint is the external endpoint which can be used for accessing the external data source.
nfs_spec NFSProxySpec NFSProxySpec is the spec for proxying an NFS share
s3_spec S3ProxySpec S3ProxySpec is the spec for proxying an external object store
pxd_spec PXDProxySpec PXDProxySpec is the spec for proxying a Portworx volume
pure_block_spec PureBlockSpec PureFileSpec is the spec for proxying a volume on pure_file backends
pure_file_spec PureFileSpec PureFileSpec is the spec for proxying a volume on pure_file backends

PureBlockSpec

PureBlockSpec is the spec for proxying a volume on pure_block backends

Field Type Description
serial_num string none
full_vol_name string none

PureFileSpec

PureFileSpec is the spec for proxying a volume on pure_file backends

Field Type Description
export_rules string none
full_vol_name string none

RelaxedReclaimPurge

Purges the RelaxedReclaim queue

Field Type Description
num_purged uint64 num_purged returns number of volumes purged

ReplicaPlacementSpec

Field Type Description
weight int64 Weight defines the weight of the rule which allows to break the tie with other matching rules. A rule with higher weight wins over a rule with lower weight. (optional)
enforcement EnforcementType Enforcement specifies the rule enforcement policy. Can take values: required or preferred. (optional)
affected_replicas int32 AffectedReplicas defines the number of volume replicas affected by this rule. If not provided, rule would affect all replicas (optional)
topology_key string TopologyKey key for the matching all segments of the cluster topology with the same key e.g If the key is failure-domain.beta.kubernetes.io/zone, this should match all nodes with the same value for this key (i.e in the same zone)
match_expressions repeated LabelSelectorRequirement MatchExpressions is a list of label selector requirements. The requirements are ANDed.

ReplicaSet

ReplicaSet set of machine IDs (nodes) to which part of this volume is erasure coded - for clustered storage arrays

Field Type Description
nodes repeated string none
pool_uuids repeated string Unique IDs of the storage pools for this replica set

Report

Field Type Description
directories int64 Directory count
files int64 File count

RestoreVolSnashotSchedule

Field Type Description
schedule string none

RestoreVolStoragePolicy

Field Type Description
policy string none

RestoreVolumeSpec

RestoreSpec allows some of the restore volume properties of to be modified while restoring the cloud baackup. All pointer fields with nil value will inherit corresponding field value from backup's spec.

Field Type Description
ha_level int64 HaLevel specifies the number of copies of data.
cos CosType Cos specifies the relative class of service.
io_profile IoProfile IoProfile provides a hint about application using this volume. This field is ignored if IoProfileBkupSrc is set true
snapshot_interval uint32 SnapshotInterval in minutes, set to 0 to disable snapshots
shared RestoreParamBoolType Shared is true if this volume can be concurrently accessed by multiple users.
replica_set ReplicaSet ReplicaSet is the desired set of nodes for the volume data.
aggregation_level uint32 Aggregation level Specifies the number of parts the volume can be aggregated from.
snapshot_schedule RestoreVolSnashotSchedule SnapshotSchedule a well known string that specifies when snapshots should be taken.
sticky RestoreParamBoolType Sticky volumes cannot be deleted until the flag is removed.
group Group Group identifies a consistency group
group_enforced bool GroupEnforced is true if consistency group creation is enforced.
journal RestoreParamBoolType Journal is true if data for the volume goes into the journal.
sharedv4 RestoreParamBoolType Sharedv4 is true if this volume can be accessed via sharedv4.
queue_depth uint32 QueueDepth defines the desired block device queue depth
nodiscard RestoreParamBoolType Nodiscard specifies if the volume will be mounted with discard support disabled. i.e. FS will not release allocated blocks back to the backing storage pool.
io_strategy IoStrategy IoStrategy preferred strategy for I/O.
placement_strategy VolumePlacementStrategy PlacementStrategy specifies a spec to indicate where to place the volume.
storage_policy RestoreVolStoragePolicy StoragePolicy if applied/specified while creating volume
ownership Ownership Ownership
export_spec ExportSpec ExportSpec defines how the volume should be exported.
fp_preference RestoreParamBoolType fastpath extensions
mount_options MountOptions MountOptions defines the options that should be used while mounting this volume
sharedv4_mount_options MountOptions Sharedv4MountOptions defines the options that will be used while mounting a sharedv4 volume from a node where the volume replica does not exist
proxy_write RestoreParamBoolType Proxy_write is true if proxy write replication is enabled for the volume
io_profile_bkup_src bool IoProfileBkupSrc indicates to inherit IoProfile from cloudbackup
proxy_spec ProxySpec ProxySpec indicates that this volume is used for proxying an external data source
sharedv4_service_spec Sharedv4ServiceSpec Sharedv4ServiceSpec specifies a spec for configuring a service for a sharedv4 volume
sharedv4_spec Sharedv4Spec Sharedv4Spec specifies common properties of sharedv4 and sharedv4 service volumes
auto_fstrim RestoreParamBoolType Autofstrim is true if automatic fstrim is enabled for the volume
io_throttle IoThrottle IoThrottle specifies maximum io(iops/bandwidth) this volume is restricted to

RuntimeStateMap

RuntimeStateMap is a list of name value mapping of driver specific runtime information.

Field Type Description
runtime_state map RuntimeStateMap.RuntimeStateEntry none

RuntimeStateMap.RuntimeStateEntry

Field Type Description
key string none
value string none

S3ProxySpec

S3ProxySpec is the spec for proxying an external object store.

Field Type Description
bucket_name string BucketName is the name of the bucket from the object store

ScanPolicy

ScanPolicy defines when a filesystem check is triggered and what action to take User can specify one of the following valid policies 1. trigger=SCAN_TRIGGER_ON_MOUNT, action=SCAN_ACTION_SCAN_ONLY 2. trigger=SCAN_TRIGGER_ON_MOUNT, action=SCAN_ACTION_SCAN_REPAIR 3. trigger=SCAN_TRIGGER_ON_NEXT_MOUNT, action=SCAN_ACTION_SCAN_ONLY 4. trigger=SCAN_TRIGGER_ON_NEXT_MOUNT, action=SCAN_ACTION_SCAN_REPAIR 5. trigger=SCAN_TRIGGER_NONE, action=SCAN_ACTION_NONE Note: When trigger == SCAN_TRIGGER_ON_NEXT_MOUNT, the associated action is performed once on the next mount and the scanpolicy gets reset to trigger=SCAN_TRIGGER_NONE, action=SCAN_ACTION_NONE, irrespective of the output of the action.

Field Type Description
trigger ScanPolicy.ScanTrigger none
action ScanPolicy.ScanAction none

SchedulerTopology

SchedulerTopology defines the topology information of the storage node in scheduler context

Field Type Description
labels map SchedulerTopology.LabelsEntry Key-value pairs defining the topology of the node

SchedulerTopology.LabelsEntry

Field Type Description
key string none
value string none

SdkAlertsAlertTypeQuery

SdkAlertsAlertTypeQuery queries for alerts using alert type and it requires that resource type be provided as well.

Field Type Description
resource_type ResourceType Resource type used to build query.
alert_type int64 Alert type used to build query.

SdkAlertsCountSpan

SdkAlertsCountSpan to store count range information.

Field Type Description
min_count int64 Min count of such alerts raised so far.
max_count int64 Max count of such alerts raised so far.

SdkAlertsDeleteRequest

SdkAlertsDeleteRequest is a request message to delete alerts.

Field Type Description
queries repeated SdkAlertsQuery It takes a list of queries to find matching alerts. Matching alerts are deleted.

SdkAlertsDeleteResponse

SdkAlertsDeleteResponse is empty.

SdkAlertsEnumerateWithFiltersRequest

SdkAlertsEnumerateRequest is a request message to enumerate alerts.

Field Type Description
queries repeated SdkAlertsQuery It is a list of queries to find matching alerts. Output of each of these queries is added to a global pool and returned as output of an RPC call. In that sense alerts are fetched if they match any of the queries.

SdkAlertsEnumerateWithFiltersResponse

SdkAlertsEnumerateResponse is a list of alerts.

Field Type Description
alerts repeated Alert Response contains a list of alerts.

SdkAlertsOption

SdkAlertsOption contains options for filtering alerts.

Field Type Description
oneof opt.min_severity_type SeverityType Query using minimum severity type.
oneof opt.is_cleared bool Query using cleared flag.
oneof opt.time_span SdkAlertsTimeSpan Query using a time span during which alert was last seen.
oneof opt.count_span SdkAlertsCountSpan Query using a count span in which alert count exists.

SdkAlertsQuery

SdkAlertsQuery is one of the query types and a list of options. Each query object is one of the three query types and a list of options.

Field Type Description
oneof query.resource_type_query SdkAlertsResourceTypeQuery Query only using resource type.
oneof query.alert_type_query SdkAlertsAlertTypeQuery Query using alert type and resource type.
oneof query.resource_id_query SdkAlertsResourceIdQuery Query using resource id, alert type and resource type.
opts repeated SdkAlertsOption Opts is a list of options associated with one of the queries.

SdkAlertsResourceIdQuery

SdkAlertsResourceIdQuery queries for alerts using resource id and it requires that both alert type and resource type be provided as well.

Field Type Description
resource_type ResourceType Resource type used to build query.
alert_type int64 Alert type used to build query.
resource_id string Resource ID used to build query.

SdkAlertsResourceTypeQuery

SdkAlertsResourceTypeQuery queries for alerts using only resource id.

Field Type Description
resource_type ResourceType Resource type used to build query.

SdkAlertsTimeSpan

SdkAlertsTimeSpan to store time window information.

Field Type Description
start_time google.protobuf.Timestamp Start timestamp when Alert occured
end_time google.protobuf.Timestamp End timestamp when Alert occured

SdkAutoFSTrimPopRequest

SdkAutoFSTrimPopRequest defines the request to pop a volume to autofstrim queue

Field Type Description
volume_id string Id of the volume

SdkAutoFSTrimPopResponse

SdkAutoFSTrimPopResponse defines the response to pop a volume to autofstrim queue

Field Type Description
message string Text blob containing ASCII text providing details of the operation

SdkAutoFSTrimPushRequest

SdkAutoFSTrimPushRequest defines the request to push a volume to autofstrim queue

Field Type Description
volume_id string Id of the volume

SdkAutoFSTrimPushResponse

SdkAutoFSTrimPushResponse defines the response to push a volume to autofstrim queue

Field Type Description
message string Text blob containing ASCII text providing details of the operation

SdkAutoFSTrimStatusRequest

SdkAutoFSTrimStatusRequest defines a request to get status of autofs trim operation

SdkAutoFSTrimStatusResponse

SdkAutoFSTrimStatusResponse defines the response for a SdkAutoFSTrimStatusRequest.

Field Type Description
trim_status map SdkAutoFSTrimStatusResponse.TrimStatusEntry map of volume id and the state of the filesystem trim operation
message string Text blob containing ASCII text providing details of the operation

SdkAutoFSTrimStatusResponse.TrimStatusEntry

Field Type Description
key string none
value FilesystemTrim.FilesystemTrimStatus none

SdkAutoFSTrimUsageRequest

SdkAutoFSTrimUsageRequest defines a request to get status of autofs trim operation

SdkAutoFSTrimUsageResponse

SdkAutoFSTrimUsageResponse defines the response for a SdkAutoFSTrimUsageRequest.

Field Type Description
usage map SdkAutoFSTrimUsageResponse.UsageEntry map of fstrim disk usage and volume name
message string Text blob containing ASCII text providing details of the operation

SdkAutoFSTrimUsageResponse.UsageEntry

Field Type Description
key string none
value FstrimVolumeUsageInfo none

SdkAwsCredentialRequest

Defines credentials for Aws/S3 endpoints

Field Type Description
access_key string Access key
secret_key string Secret key
endpoint string Endpoint
region string Region
disable_ssl bool (optional) Disable SSL connection
disable_path_style bool (optional) Disable path-style access
server_side_encryption string (optional) server side encryption

SdkAwsCredentialResponse

Defines the response for AWS/S3 credentials

Field Type Description
access_key string Access key
endpoint string Endpoint
region string Region
disable_ssl bool (optional) Disable SSL connection
disable_path_style bool (optional) Disable path-style access
s3_storage_class string (optional) Storage class for s3 puts
server_side_encryption string (optional) server side encryption

SdkAzureCredentialRequest

Defines credentials for Azure

Field Type Description
account_name string Account name
account_key string Account key

SdkAzureCredentialResponse

Defines the response for Azure credentials

Field Type Description
account_name string Account name

SdkCloudBackupCatalogRequest

Defines a request to get catalog of a backup stored by a cloud provider

Field Type Description
backup_id string Id of the backup
credential_id string Credential id describe the credentials for the cloud

SdkCloudBackupCatalogResponse

Defines a response containing the contents of a backup stored by a cloud provider

Field Type Description
contents repeated string Contents is listing of backup contents

SdkCloudBackupClusterType

CloudBackup owner cluster

SdkCloudBackupCreateRequest

Defines a request to create a backup of a volume to the cloud

Field Type Description
volume_id string VolumeID of the volume for which cloudbackup is requested
credential_id string Credential id refers to the cloud credentials needed to backup
full bool Full indicates if full backup is desired even though incremental is possible
task_id string TaskId of the task performing this backup. This value can be used for idempotency.
labels map SdkCloudBackupCreateRequest.LabelsEntry Labels are list of key value pairs to tag the cloud backup. These labels are stored in the metadata associated with the backup.
full_backup_frequency uint32 FullBackupFrequency indicates number of incremental backup after whcih a fullbackup must be created. This is to override the default value for manual/user triggerred backups and not applicable for scheduled backups Value of 0 retains the default behavior.
delete_local bool DeleteLocal indicates if local snap created for backup must be deleted after the backup is complete
near_sync_migrate bool Indicates if this is a near sync migrate

SdkCloudBackupCreateRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkCloudBackupCreateResponse

Empty response

Field Type Description
task_id string TaskId of the task performing the backup

SdkCloudBackupDeleteAllRequest

Defines a request to delete all the backups stored by a cloud provider for a specified volume

Field Type Description
src_volume_id string id of the volume for the request
credential_id string Credential id is the credential for cloud to be used for the request

SdkCloudBackupDeleteAllResponse

Empty response

SdkCloudBackupDeleteRequest

Defines a request to delete a single backup stored by a cloud provider

Field Type Description
backup_id string ID is the ID of the cloud backup
credential_id string Credential id is the credential for cloud to be used for the request
force bool Force Delete cloudbackup even if there are dependencies. This may be needed if the backup is an incremental backup and subsequent backups depend on this backup specified by backup_id.
bucket string Bucket name to which cloud backup belongs to

SdkCloudBackupDeleteResponse

Empty response

SdkCloudBackupEnumerateWithFiltersRequest

Defines a request to list the backups stored by a cloud provider. The following combinations can be used to get cloud backup information:

  • For a specific volume in current cluster: Set src_volume_id to your desired volume id and do not provide cluster_id and all.
  • For a specific volume in a specific cluster: Set src_volume_id to your desired volume id and specify cluster_id.
  • For a specific volume in all clusters: Set src_volume_id to your desired volume id and set all to true, do not provide cluster_id.
  • For all volumes in current cluster: do not provide cluster_id, volume_id and all.
  • For all volumes in a specific cluster: Set cluster_id to your desired cluster id and do not provide volume_id and all.
  • For all volumes in all clusters: Set all to true do not provide volume_id and cluster_id.
Field Type Description
src_volume_id string (optional) Source id of the volume for the request.
cluster_id string (optional) Cluster id specifies the cluster for the request
credential_id string Credential id is the credential for cloud to be used for the request
all bool (optional) All indicates if the request should show cloud backups for all clusters or the current cluster.
status_filter SdkCloudBackupStatusType (optional) enumerates backups that have status specified by this type
metadata_filter map SdkCloudBackupEnumerateWithFiltersRequest.MetadataFilterEntry (optional) Enumerates backups that have tags of this type
max_backups uint64 (optional) if caller wished to limit number of backups returned by enumerate
continuation_token string Returned in the enumerate response if not all of the backups could be returned in the response.
cloud_backup_id string If one wants to enumerate known backup, set this field to the backup ID naming format :clusteruuidORbicketname/srcVolId-snapId(-incr)
missing_src_volumes bool To enumerate cloudbackups for which source volumes do not exist in this cluster

SdkCloudBackupEnumerateWithFiltersRequest.MetadataFilterEntry

Field Type Description
key string none
value string none

SdkCloudBackupEnumerateWithFiltersResponse

Defines a response which lists all the backups stored by a cloud provider

Field Type Description
backups repeated SdkCloudBackupInfo none
continuation_token string if this is not an empty string, callers must pass this to get next list of backups

SdkCloudBackupGroupCreateRequest

Defines a request to create a group backup of a group to the cloud

Field Type Description
group_id string GroupID of the volume for which cloudbackup is requested
volume_ids repeated string VolumeIds are a list of volume IDs to use for the backup request. If multiple of GroupID, Labels or VolumeIDs are specified, volumes matching all of them are backed uup
credential_id string Credential id refers to the cloud credentials needed to backup
full bool Full indicates if full backup is desired even though incremental is possible
labels map SdkCloudBackupGroupCreateRequest.LabelsEntry Labels are list of key value pairs to tag the cloud backup. These labels are stored in the metadata associated with the backup.
delete_local bool DeleteLocal indicates if local snap created for backup must be deleted after the backup is complete

SdkCloudBackupGroupCreateRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkCloudBackupGroupCreateResponse

Empty response

Field Type Description
group_cloud_backup_id string ID for this group of backups
task_ids repeated string TaskIds of the tasks performing the group backup

SdkCloudBackupHistoryItem

SdkCloudBackupHistoryItem contains information about a backup for a specific volume

Field Type Description
src_volume_id string SrcVolumeID is volume ID which was backedup
timestamp google.protobuf.Timestamp TimeStamp is the time at which either backup completed/failed
status SdkCloudBackupStatusType Status indicates whether backup was completed/failed

SdkCloudBackupHistoryRequest

Defines a request to retreive the history of the backups for a specific volume to a cloud provider

Field Type Description
src_volume_id string This optional value defines which history of backups is being requested. If not provided, it will return the history for all volumes.

SdkCloudBackupHistoryResponse

Defines a response containing a list of history of backups to a cloud provider

Field Type Description
history_list repeated SdkCloudBackupHistoryItem HistoryList is list of past backups on this volume

SdkCloudBackupInfo

SdkCloudBackupInfo has information about a backup stored by a cloud provider

Field Type Description
id string This is the id as represented by the cloud provider
src_volume_id string Source volumeID of the backup
src_volume_name string Name of the sourceVolume of the backup
timestamp google.protobuf.Timestamp Timestamp is the timestamp at which the source volume was backed up to cloud
metadata map SdkCloudBackupInfo.MetadataEntry Metadata associated with the backup
status SdkCloudBackupStatusType Status indicates the status of the backup
cluster_type SdkCloudBackupClusterType.Value indicates if the cloudbackup belongs to current cluster, with older cluster this value may be unknown
namespace string k8s namespace to which this backup belongs to

SdkCloudBackupInfo.MetadataEntry

Field Type Description
key string none
value string none

SdkCloudBackupRestoreRequest

Defines a request to restore a volume from an existing backup stored by a cloud provider

Field Type Description
backup_id string Backup ID being restored
restore_volume_name string Optional volume Name of the new volume to be created in the cluster for restoring the cloudbackup
credential_id string The credential to be used for restore operation
node_id string Optional for provisioning restore volume (ResoreVolumeName should not be specified)
task_id string TaskId of the task performing this restore
spec RestoreVolumeSpec Modifiable Restore volume spec
locator VolumeLocator RestoreVolume locator

SdkCloudBackupRestoreResponse

Defines a response when restoring a volume from a backup stored by a cloud provider

Field Type Description
restore_volume_id string VolumeID to which the backup is being restored
task_id string TaskId of the task performing the restore

SdkCloudBackupSchedCreateRequest

Defines a request to create a schedule for volume backups to a cloud provider

Field Type Description
cloud_sched_info SdkCloudBackupScheduleInfo Cloud Backup Schedule info

SdkCloudBackupSchedCreateResponse

Defines a response containing the id of a schedule for a volume backup to a cloud provider

Field Type Description
backup_schedule_id string Id of newly created backup schedule

SdkCloudBackupSchedDeleteRequest

Defines a request to delete a backup schedule

Field Type Description
backup_schedule_id string Id of cloud backup to delete

SdkCloudBackupSchedDeleteResponse

Empty response

SdkCloudBackupSchedEnumerateRequest

Empty request

SdkCloudBackupSchedEnumerateResponse

Defines a response containing a map listing the schedules for volume backups to a cloud provider

Field Type Description
cloud_sched_list map SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry Returns list of backup schedules

SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry

Field Type Description
key string none
value SdkCloudBackupScheduleInfo none

SdkCloudBackupSchedUpdateRequest

Defines a request to update a schedule for volume backups to a cloud provider

Field Type Description
cloud_sched_info SdkCloudBackupScheduleInfo Cloud Backup Schedule info
sched_uuid string none

SdkCloudBackupSchedUpdateResponse

Empty response

SdkCloudBackupScheduleInfo

SdkCloudBackupScheduleInfo describes a schedule for volume backups to a cloud provider

Field Type Description
src_volume_id string The schedule's source volume
credential_id string The cloud credential used with this schedule
schedules repeated SdkSchedulePolicyInterval Schedules are the frequencies of the backup
max_backups uint64 MaxBackups indicates when to force full backup to cloud. If RetentionDays is not specified or is 0 (older scheme), this is also the maximum number of scheduled backups retained in the cloud. Older backups are deleted
full bool Full indicates if scheduled backups should always be full and never incremental.
retention_days uint32 Number of days that Scheduled CloudBackups will be kept after which they are deleted
group_id string GroupId indicates the group of volumes for which this schedule applies
labels map SdkCloudBackupScheduleInfo.LabelsEntry labels indicates group of volumes with similar labels for which this schedule applies

SdkCloudBackupScheduleInfo.LabelsEntry

Field Type Description
key string none
value string none

SdkCloudBackupSizeRequest

Defines a request to retrieve the size of the volume for the specificed volume

Field Type Description
backup_id string BackupId is a value which is used to get information on the size of the specified backup.
credential_id string Credential id describe the credentials for the cloud

SdkCloudBackupSizeResponse

Defines a response containing the size of the volume

Field Type Description
size uint64 Same value as total_download_bytes, will be deprecated
total_download_bytes uint64 Total download size of all the backups (full & incremental) required for a restore
compressed_object_bytes uint64 Size of the compressed individual backup in object-store or NFS
capacity_required_for_restore uint64 Used size of the volume to be restored (in bytes)

SdkCloudBackupStateChangeRequest

Defines a request to change the state of a backup or restore to or from a cloud provider

Field Type Description
task_id string Describes the backup/restore task state change is being requested
requested_state SdkCloudBackupRequestedState The desired state of the operation

SdkCloudBackupStateChangeResponse

Empty response

SdkCloudBackupStatus

SdkCloudBackupStatus defines the status of a backup stored by a cloud provider

Field Type Description
backup_id string This is the id as represented by the cloud provider
optype SdkCloudBackupOpType OpType indicates if this is a backup or restore
status SdkCloudBackupStatusType State indicates if the op is currently active/done/failed
bytes_done uint64 BytesDone indicates total Bytes uploaded/downloaded
start_time google.protobuf.Timestamp StartTime indicates Op's start time
completed_time google.protobuf.Timestamp CompletedTime indicates Op's completed time
node_id string NodeID is the ID of the node where this Op is active
src_volume_id string SourceVolumeID is the the volume that is either being backed up to cloud or target volume to which a backup is being restored
info repeated string Info currently indicates the failure cause for failed backup/restore
credential_id string CredentialId is the credential used for cloud with this backup/restore op
bytes_total uint64 BytesTotal is the total number of bytes being transferred
eta_seconds int64 ETASeconds is the number of seconds for cloud backup completion
group_id string string group_id volume's group id if this was group cloud backup

SdkCloudBackupStatusRequest

Defines a request to retreive the status of a backup or restore for a specified volume

Field Type Description
volume_id string (optional) VolumeId is a value which is used to get information on the status of a backup for the specified volume. If no volume id and task_id is provided, then status for all volumes is returned.
local bool Local indicates if only those backups/restores that are active on current node must be returned
task_id string TaskId of the backup/restore task, if this is specified, volume_id is ignored.
near_sync_migrate bool Indicates if this is for nearsync migration

SdkCloudBackupStatusResponse

Defines a response containing the status of the backups for a specified volume

Field Type Description
statuses map SdkCloudBackupStatusResponse.StatusesEntry Statuses is list of currently active/failed/done backup/restores where the key is the id of the task performing backup/restore.

SdkCloudBackupStatusResponse.StatusesEntry

Field Type Description
key string none
value SdkCloudBackupStatus none

SdkCloudMigrateCancelRequest

Defines a request to stop a cloud migration

Field Type Description
request CloudMigrateCancelRequest Request containing the task id to be cancelled

SdkCloudMigrateCancelResponse

Empty Response

SdkCloudMigrateStartRequest

Defines a migration request

Field Type Description
cluster_id string ID of the cluster to which volumes are to be migrated
task_id string Unique name assocaiated with this migration. This is a Optional field for idempotency
oneof opt.volume SdkCloudMigrateStartRequest.MigrateVolume Request to migrate a volume
oneof opt.volume_group SdkCloudMigrateStartRequest.MigrateVolumeGroup Request to migrate a volume group
oneof opt.all_volumes SdkCloudMigrateStartRequest.MigrateAllVolumes Request to migrate all volumes

SdkCloudMigrateStartRequest.MigrateAllVolumes

Defines a migration request for all volumes in a cluster

SdkCloudMigrateStartRequest.MigrateVolume

Defines a migration request for a volume

Field Type Description
volume_id string none

SdkCloudMigrateStartRequest.MigrateVolumeGroup

Defines a migration request for a volume group

Field Type Description
group_id string none

SdkCloudMigrateStartResponse

Defines a response for the migration that was started

Field Type Description
result CloudMigrateStartResponse Result assocaiated with the migration that was started

SdkCloudMigrateStatusRequest

Request for cloud migration operation status

Field Type Description
request CloudMigrateStatusRequest Request contains the task id and cluster id for which status should be returned

SdkCloudMigrateStatusResponse

Defines a response for the status request

Field Type Description
result CloudMigrateStatusResponse Status of all migration requests

SdkClusterDomainActivateRequest

Defines a request to activate a cluster domain

Field Type Description
cluster_domain_name string Name of the cluster domain to activate

SdkClusterDomainActivateResponse

Empty response

SdkClusterDomainDeactivateRequest

Defines a request to deactivate a cluster domain

Field Type Description
cluster_domain_name string Name of the cluster domain to deactivate

SdkClusterDomainDeactivateResponse

Empty response

SdkClusterDomainInspectRequest

Defines a request to inspect a cluster domain

Field Type Description
cluster_domain_name string Name of the cluster domain to inspect

SdkClusterDomainInspectResponse

Defines a response to inspecting a cluster domain

Field Type Description
cluster_domain_name string Name of the cluster domain
is_active bool IsActive indicates whether this cluster domain is active

SdkClusterDomainsEnumerateRequest

Empty request

SdkClusterDomainsEnumerateResponse

Defines a response when enumerating cluster domains

Field Type Description
cluster_domain_names repeated string List of names of all the cluster domains in a cluster

SdkClusterInspectCurrentRequest

Empty request

SdkClusterInspectCurrentResponse

Defines a response when inspecting the current cluster

Field Type Description
cluster StorageCluster Cluster information

SdkClusterPairCreateRequest

Defines a request for creating a cluster pair

Field Type Description
request ClusterPairCreateRequest none

SdkClusterPairCreateResponse

Defines a result of the cluster pair

Field Type Description
result ClusterPairCreateResponse Contains the information about cluster pair

SdkClusterPairDeleteRequest

Defines a delete request for a cluster pair

Field Type Description
cluster_id string ID of the cluster pair to be deleted

SdkClusterPairDeleteResponse

Empty response

SdkClusterPairEnumerateRequest

Empty Request

SdkClusterPairEnumerateResponse

Defines a list of cluster pair

Field Type Description
result ClusterPairsEnumerateResponse List of all the cluster pairs

SdkClusterPairGetTokenRequest

Empty request

SdkClusterPairGetTokenResponse

Defines a response for the token request

Field Type Description
result ClusterPairTokenGetResponse Contains authentication token for the cluster

SdkClusterPairInspectRequest

Defines a cluster pair inspect request

Field Type Description
id string ID of the cluster, if empty gets the default pair

SdkClusterPairInspectResponse

Defines a cluster pair inspect response

Field Type Description
result ClusterPairGetResponse Information about cluster pair

SdkClusterPairResetTokenRequest

Empty request

SdkClusterPairResetTokenResponse

Defines a response for the token request

Field Type Description
result ClusterPairTokenGetResponse Contains authentication token for the cluster

SdkCredentialCreateRequest

Defines a request to create credentials

Field Type Description
name string Name of the credential
bucket string (optional) Name of bucket
encryption_key string (optional) Key used to encrypt the data
ownership Ownership Ownership of the credential. Collaborators and groups may be added here with their appropriate ACLS.
use_proxy bool use_proxy indicates if a proxy must be used
iam_policy bool iamPolicy indicates if IAM creds must be used for access
s3_storage_class string s3StorageClass for object puts, empty indicates default STANDARD
oneof credential_type.aws_credential SdkAwsCredentialRequest Credentials for AWS/S3
oneof credential_type.azure_credential SdkAzureCredentialRequest Credentials for Azure
oneof credential_type.google_credential SdkGoogleCredentialRequest Credentials for Google
oneof credential_type.nfs_credential SdkNfsCredentialRequest Credentials for NFS

SdkCredentialCreateResponse

Defines a response from creating a credential

Field Type Description
credential_id string Id of the credentials

SdkCredentialDeleteReferencesRequest

Defines a request to remove any references to credentials

Field Type Description
credential_id string Id of the credentials

SdkCredentialDeleteReferencesResponse

Empty response

SdkCredentialDeleteRequest

Defines the request to delete credentials

Field Type Description
credential_id string Id for credentials

SdkCredentialDeleteResponse

Empty response

SdkCredentialEnumerateRequest

Empty request

SdkCredentialEnumerateResponse

Defines response for a enumeration of credentials

Field Type Description
credential_ids repeated string List of credentials

SdkCredentialInspectRequest

Defines the request to inspection for credentials

Field Type Description
credential_id string Id of the credential

SdkCredentialInspectResponse

Defines the response to an inspection of a credential. This response uses OneOf proto style. Depending on your programming language you will need to check if the value of credential_type is one of the ones below.

Field Type Description
credential_id string Credential id
name string Name of the credential
bucket string (optional) Name of bucket
ownership Ownership Ownership of the credential
use_proxy bool proxy flag for the credential
iam_policy bool iamPolicy indicates if IAM creds must be used for access
oneof credential_type.aws_credential SdkAwsCredentialResponse Aws credentials
oneof credential_type.azure_credential SdkAzureCredentialResponse Azure credentials
oneof credential_type.google_credential SdkGoogleCredentialResponse Google credentials
oneof credential_type.nfs_credential SdkNfsCredentialResponse NFS credentials

SdkCredentialUpdateRequest

Defines request for credential update

Field Type Description
credential_id string none
update_req SdkCredentialCreateRequest none

SdkCredentialUpdateResponse

Defines response for credential update

SdkCredentialValidateRequest

Defines a request to validate credentials

Field Type Description
credential_id string Id of the credentials

SdkCredentialValidateResponse

Empty response

SdkDiagsCollectRequest

SdkDiagsCollectRequest is the request object that specifies what should be part of the diags that are collected User can specify both Node and Volume or just one of them. If both are provided, the implementation will select nodes based on both and also handle overlaps

Field Type Description
node DiagsNodeSelector Node selects the node(s) for diags collection
volume DiagsVolumeSelector Volume selects the volume(s) for diags collection
profile_only bool ProfileOnly is an optional flag if true will only collect the stack and heap profile of the driver and will skip other diag components
issuer string Issuer is an optional user friendly name for the caller invoking the API
timeout_mins int64 TimeoutMins is the timeout in minutes for the job. This is an optional field and if not provided, the implementation of the SDK will use a sane default
live bool Live is an optional flag if true will collect live cores from running processes of the driver

SdkDiagsCollectResponse

SdkDiagsCollectResponse defines a response for an SDK request to collect diags

Field Type Description
job Job Job that was created for the SDK request

SdkEnumerateJobsRequest

Defines a request to list all the jobs

Field Type Description
type Job.Type Type if specified will list the jobs of the provided type

SdkEnumerateJobsResponse

Defines a response will all the known jobs

Field Type Description
jobs repeated Job Jobs is the list of jobs in the response

SdkEnumerateRebalanceJobsRequest

SdkEnumerateRebalanceJobsResponse

Field Type Description
jobs repeated StorageRebalanceJob Jobs is the list of rebalance jobs in the response

SdkFilesystemCheckStartRequest

SdkFilesystemCheckStartRequest defines a request to start a background filesystem consistency check operation

Field Type Description
volume_id string Id of the volume
mode string Mode of operation

SdkFilesystemCheckStartResponse

SdkFilesystemCheckStartResponse defines the response for a SdkFilesystemCheckStartRequest.

Field Type Description
status FilesystemCheck.FilesystemCheckStatus Status code representing the state of the filesystem check operation
message string Text blob containing ASCII text providing details of the operation

SdkFilesystemCheckStatusRequest

SdkFilesystemCheckStatusRequest defines a request to get status of a background filesystem check operation

Field Type Description
volume_id string Id of the volume

SdkFilesystemCheckStatusResponse

SdkFilesystemCheckStatusResponse defines the response for a SdkFilesystemCheckStatusRequest.

Field Type Description
status FilesystemCheck.FilesystemCheckStatus Status code representing the state of the filesystem check operation
health_status FilesystemHealthStatus Status code representing the health of the filesystem after a checkHealth operation
mode string Text string representing the mode of filesystem check operation
message string Text blob containing ASCII text providing details of the operation

SdkFilesystemCheckStopRequest

SdkFilesystemCheckStopRequest defines a request to stop a background filesystem check operation

Field Type Description
volume_id string Id of the volume

SdkFilesystemCheckStopResponse

Empty response

SdkFilesystemTrimStartRequest

SdkFilesystemTrimStartRequest defines a request to start a background filesystem trim operation

Field Type Description
volume_id string Id of the volume
mount_path string Path where the volume is mounted

SdkFilesystemTrimStartResponse

SdkFilesystemTrimStartResponse defines the response for a SdkFilesystemTrimStartRequest.

Field Type Description
status FilesystemTrim.FilesystemTrimStatus Status code representing the state of the filesystem trim operation
message string Text blob containing ASCII text providing details of the operation

SdkFilesystemTrimStatusRequest

SdkFilesystemTrimStatusRequest defines a request to get status of a background filesystem trim operation

Field Type Description
volume_id string Id of the volume
mount_path string Path where the volume is mounted

SdkFilesystemTrimStatusResponse

SdkFilesystemTrimStatusResponse defines the response for a SdkFilesystemTrimStatusRequest.

Field Type Description
status FilesystemTrim.FilesystemTrimStatus Status code representing the state of the filesystem trim operation
message string Text blob containing ASCII text providing details of the operation

SdkFilesystemTrimStopRequest

SdkFilesystemTrimStopRequest defines a request to stop a background filesystem trim operation

Field Type Description
volume_id string Id of the volume
mount_path string Path where the volume is mounted

SdkFilesystemTrimStopResponse

Empty response

SdkGetJobStatusRequest

Defines a request to get the status of an existing job

Field Type Description
id string ID of the job
type Job.Type Type of the job

SdkGetJobStatusResponse

Defines the status of an existing job

Field Type Description
job Job Job for this node drain operation.
summary JobSummary Summary of this job

SdkGetRebalanceJobStatusRequest

Field Type Description
id string ID of the rebalance job

SdkGetRebalanceJobStatusResponse

Field Type Description
job StorageRebalanceJob Job for this rebalance
summary StorageRebalanceSummary Summary summarizes the rebalance job
actions repeated StorageRebalanceAudit Actions describe all the actions taken during this rebalance

SdkGoogleCredentialRequest

Defines credentials for Google

Field Type Description
project_id string Project ID
json_key string JSON Key

SdkGoogleCredentialResponse

Defines the response for Google credentials

Field Type Description
project_id string Project ID

SdkIdentityCapabilitiesRequest

Empty request

SdkIdentityCapabilitiesResponse

Defines a response containing the capabilites of the cluster

Field Type Description
capabilities repeated SdkServiceCapability Provides all the capabilites supported by the cluster

SdkIdentityVersionRequest

Empty request

SdkIdentityVersionResponse

Defines a response containing version information

Field Type Description
sdk_version SdkVersion OpenStorage SDK version used by the server
version StorageVersion Version information about the storage system

SdkJobResponse

Defines a response for an SDK request that spins up a new job to perform the request

Field Type Description
job Job Job that was created for the SDK request

SdkNfsCredentialRequest

Defines credentials for NFS

Field Type Description
server string NFS Server address
sub_path string NFS export path
mount_opts string mount options for nfs mount
timeout_seconds uint32 timeout for nfs IO in seconds

SdkNfsCredentialResponse

Defines the response for NFS credential

Field Type Description
server string NFS Server Address
sub_path string NFS export path
mount_opts string mount options ( "," separated)
timeout_seconds uint32 timeout in seconds

SdkNodeCordonAttachmentsRequest

SdkNodeCordonAttachmentsRequest request for disabling new volume attachments from a node

Field Type Description
node_id string Node ID on which any further volume attachments will be disabled

SdkNodeCordonAttachmentsResponse

SdkNodeCordonAttachmentsRespinse response for disabling new volume attachments from a node

SdkNodeDrainAttachmentsRequest

Defines a node drain volume attachments request

Field Type Description
node_id string Id of the node to drain
selector repeated LabelSelectorRequirement Selector is used for selecting volumes whose attachment needs to be moved from this node. The selector could be a list of volume label key value pairs to select a subset of volumes.
only_sharedv4 bool Drain only sharedv4 volumes from a node By default all volumes will be drained.
issuer string Issuer is a user friendly name for the caller who is invoking the API. It can be used by caller to filter out drain requests from a particular issuer

SdkNodeEnumerateRequest

Empty request

SdkNodeEnumerateResponse

Defines a response with a list of node ids

Field Type Description
node_ids repeated string List of all the node ids in the cluster

SdkNodeEnumerateWithFiltersRequest

Defines a request to list nodes with given filter. Currently there are no filters and all the nodes will be returned.

SdkNodeEnumerateWithFiltersResponse

Defines a response with a list of nodes

Field Type Description
nodes repeated StorageNode List of all the nodes in the cluster

SdkNodeInspectCurrentRequest

Empty request

SdkNodeInspectCurrentResponse

Defines a response when inspecting a node

Field Type Description
node StorageNode Node information

SdkNodeInspectRequest

Defines a request when inspecting a node

Field Type Description
node_id string Id of node to inspect

SdkNodeInspectResponse

Defines a response when inspecting a node

Field Type Description
node StorageNode Node information

SdkNodeUncordonAttachmentsRequest

SdkNodeUncordonAttachmentsRequest request for re-enabling volume attachments for a node

Field Type Description
node_id string Node ID on which any further volume attachments will be enabled

SdkNodeUncordonAttachmentsResponse

SdkNodeUncordonAttachmentsRespinse response for enabling new volume attachments from a node

SdkNodeVolumeUsageByNodeRequest

Defines request to retrieve all volumes/snapshots capacity usage details for a given node

Field Type Description
node_id string Id of the node to get snapshot/volumes capacity usage details

SdkNodeVolumeUsageByNodeResponse

Defines response containing Node's volumes/snapshot capacity usage details

Field Type Description
volume_usage_info VolumeUsageByNode VolumeUsageByNode details

SdkObjectstoreCreateRequest

Defines a request to create an object store

Field Type Description
volume_id string Volume on which objectstore will be running

SdkObjectstoreCreateResponse

Defines a response when an object store has been created for a specified volume

Field Type Description
objectstore_status ObjectstoreInfo Created objecstore status

SdkObjectstoreDeleteRequest

Defines a request to delete an object store service from a volume

Field Type Description
objectstore_id string Id of the object store to delete

SdkObjectstoreDeleteResponse

Empty response

SdkObjectstoreInspectRequest

Defines a request to get information about an object store endpoint

Field Type Description
objectstore_id string Id of the object store

SdkObjectstoreInspectResponse

Defines a response when inspecting an object store endpoint

Field Type Description
objectstore_status ObjectstoreInfo Contains information about the object store requested

SdkObjectstoreUpdateRequest

Defines a request to update an object store

Field Type Description
objectstore_id string Objectstore Id to update
enable bool enable/disable objectstore

SdkObjectstoreUpdateResponse

Empty response

SdkOpenStoragePolicyCreateRequest

Define a request to create storage policy

Field Type Description
storage_policy SdkStoragePolicy storage policy to create

SdkOpenStoragePolicyCreateResponse

Empty response

SdkOpenStoragePolicyDefaultInspectRequest

Empty Request

SdkOpenStoragePolicyDefaultInspectResponse

Define default storage policy response

Field Type Description
storage_policy SdkStoragePolicy storage policy information which is set as default

SdkOpenStoragePolicyDeleteRequest

Define a request to delete storage policy

Field Type Description
name string name of storage policy to delete

SdkOpenStoragePolicyDeleteResponse

Empty Response

SdkOpenStoragePolicyEnumerateRequest

Empty request

SdkOpenStoragePolicyEnumerateResponse

Define a storage policy enumerate response

Field Type Description
storage_policies repeated SdkStoragePolicy List of storage policies

SdkOpenStoragePolicyInspectRequest

Define a request to inspect storage policy

Field Type Description
name string name of storage policy to retrive

SdkOpenStoragePolicyInspectResponse

Define a storage policy inspect response

Field Type Description
storage_policy SdkStoragePolicy storage policy information requested by name

SdkOpenStoragePolicyReleaseRequest

Empty Request

SdkOpenStoragePolicyReleaseResponse

Empty Response

SdkOpenStoragePolicySetDefaultRequest

Define a request to set default storage policy

Field Type Description
name string name of policy to set as default storage policy for volume creation This policy will be used to validate/update volume configuration

SdkOpenStoragePolicySetDefaultResponse

Empty Response

SdkOpenStoragePolicyUpdateRequest

Define a request to update storage policy

Field Type Description
storage_policy SdkStoragePolicy storage policy to update

SdkOpenStoragePolicyUpdateResponse

Empty Response

SdkRole

Field Type Description
name string none
rules repeated SdkRule none

SdkRoleCreateRequest

Defines a request for creating a role

Field Type Description
role SdkRole Role

SdkRoleCreateResponse

Response contains informaiton about the creation of the role

Field Type Description
role SdkRole Role created

SdkRoleDeleteRequest

Defines a request to delete a role

Field Type Description
name string none

SdkRoleDeleteResponse

Empty response

SdkRoleEnumerateRequest

Empty request

SdkRoleEnumerateResponse

Respose to enumerate all roles

Field Type Description
names repeated string List of role names

SdkRoleInspectRequest

Defines a request to inspect a role

Field Type Description
name string Name of role

SdkRoleInspectResponse

Response to inspection request

Field Type Description
role SdkRole Role requested

SdkRoleUpdateRequest

Defines a request to update an existing role

Field Type Description
role SdkRole New role update

SdkRoleUpdateResponse

Response contains information about the updated role

Field Type Description
role SdkRole Role updated

SdkRule

SdkRule is the message used to construct custom roles in the OpenStorage SDK.

Format

The following shows the supported format for SdkRule:

  • Services: Is the gRPC service name in OpenStorage<service name> in lowercase
  • Apis: Is the API name in the service in lowercase

Values can also be set to *, or start or end with * to allow multiple matches in services or apis.

Services and APIs can also be denied by prefixing the value with a !. Note that on rule conflicts, denial will always be chosen.

Examples

  • Allow any call:
SdkRule:
  - Services: ["*"]
    Apis: ["*"]
  • Allow only cluster operations:
SdkRule:
  - services: ["cluster"]
    apis: ["*"]
  • Allow inspection of any object and listings of only volumes
SdkRule:
  - Services: ["volumes"]
    Apis: ["*enumerate*"]
  - Services: ["*"]
    Apis: ["inspect*"]
  • Allow all volume call except create
SdkRule:
  - Services: ["volumes"]
    Apis: ["*", "!create"]
Field Type Description
services repeated string The gRPC service name in OpenStorage<service name> in lowercase
apis repeated string The API name in the service in lowercase

SdkSchedulePolicy

Defines a schedule policy

Field Type Description
name string Name of the schedule policy
schedules repeated SdkSchedulePolicyInterval Schedule policies

SdkSchedulePolicyCreateRequest

Define a schedule policy request

Field Type Description
schedule_policy SdkSchedulePolicy Schedule Policy

SdkSchedulePolicyCreateResponse

Empty response

SdkSchedulePolicyDeleteRequest

Define schedule policy deletion request

Field Type Description
name string Name of the schedule policy

SdkSchedulePolicyDeleteResponse

Empty response

SdkSchedulePolicyEnumerateRequest

Empty request

SdkSchedulePolicyEnumerateResponse

Defines a schedule policy enumerate response

Field Type Description
policies repeated SdkSchedulePolicy List of Schedule Policy

SdkSchedulePolicyInspectRequest

Define a schedule policy inspection request

Field Type Description
name string Name of the schedule Policy

SdkSchedulePolicyInspectResponse

Defines a schedule policy inspection response

Field Type Description
policy SdkSchedulePolicy List of Schedule Policy

SdkSchedulePolicyInterval

Defines a schedule policy interval

Field Type Description
retain int64 Number of instances to retain
oneof period_type.daily SdkSchedulePolicyIntervalDaily Daily policy
oneof period_type.weekly SdkSchedulePolicyIntervalWeekly Weekly policy
oneof period_type.monthly SdkSchedulePolicyIntervalMonthly Monthly policy
oneof period_type.periodic SdkSchedulePolicyIntervalPeriodic Periodic policy

SdkSchedulePolicyIntervalDaily

Defines a daily schedule

Field Type Description
hour int32 Range: 0-23
minute int32 Range: 0-59

SdkSchedulePolicyIntervalMonthly

Defines a monthly schedule

Field Type Description
day int32 Range: 1-28
hour int32 Range: 0-59
minute int32 Range: 0-59

SdkSchedulePolicyIntervalPeriodic

Defines a periodic schedule

Field Type Description
seconds int64 Specify the number of seconds between intervals

SdkSchedulePolicyIntervalWeekly

Defines a weekly schedule

Field Type Description
day SdkTimeWeekday none
hour int32 Range: 0-23
minute int32 Range: 0-59

SdkSchedulePolicyUpdateRequest

Define a request to update a schedule policy

Field Type Description
schedule_policy SdkSchedulePolicy Schedule Policy

SdkSchedulePolicyUpdateResponse

Empty response

SdkServiceCapability

Defines a capability of he cluster

Field Type Description
oneof type.service SdkServiceCapability.OpenStorageService service type supported by this cluster

SdkServiceCapability.OpenStorageService

Field Type Description
type SdkServiceCapability.OpenStorageService.Type Type of service supported

SdkStoragePolicy

A SdkStoragePolicy represents minimum set of volume specs to be follow while creating volumes. If storage policy is set default in OpenStoragePolicy service, VolumeSpecPolicy will be used before creating volume to validate volume specs or ensure minimum volume creation rules followed

Field Type Description
name string Name of storage policy.
policy VolumeSpecPolicy VolumeSpecs to apply while creating volume.
force bool Force if set to true volume specs will be overwritten, otherwise volume creation will fail if the volume specifications are not inline with storage policy
allow_update bool If set a volume can be updated without storage Policy restriction, otherwise volume update will be followed as per storage policy specification
ownership Ownership Owner info of storage policy

SdkStoragePool

SdkStoragePoolResizeRequest

Defines a request when inspect a storage pool

Field Type Description
uuid string UUID of the storage pool to inspect
oneof resize_factor.size uint64 Size is the new desired size of the storage pool
oneof resize_factor.percentage uint64 Size is the new desired size of the storage pool
operation_type SdkStoragePool.ResizeOperationType OperationType is the operation that's used to resize the storage pool (optional)
skip_wait_for_clean_volumes bool SkipWaitForCleanVolumes would skip the wait for all volumes on the pool to be clean before doing a resize

SdkStoragePoolResizeResponse

Defines a response when resizing a storage pool

SdkStorageRebalanceRequest

Field Type Description
trigger_thresholds repeated StorageRebalanceTriggerThreshold TriggerThresholds defines thresholds that would trigger rebalance. For example, TriggerThreshold{ThresholdTypeAbsolutePercent, MetricTypeUsedSpace, 75, 10} would trigger rebalance on pools where used space is more than 75% or less than 10%. Similarly, TriggerThreshold{ThresholdTypeDeltaMeanPercent, MetricTypeUsedSpace, 15, 25} will trigger rebalance for pools where used space is more than 15% from the mean percent for used space for the entire cluster or less than 25% from the mean percent for used space for the entire cluster.
trial_run bool TrialRun if true the job only produces steps that would be taken without making any changes
source_pool_selector repeated LabelSelectorRequirement SourcePoolSelector allows selecting pools to which trigger thresholds will apply as source
target_pool_selector repeated LabelSelectorRequirement TargetPoolSelector allows selecting pools to which trigger thresholds will apply as target
max_duration_minutes uint64 MaxDurationMinutes defines how long operation should run when started at schedule. 0 values means no limit on duration
remove_repl_1_snapshots bool RemoveRepl1Snapshots if true will instruct rebalance job to remove repl-1 snapshots

SdkStorageRebalanceResponse

SdkStorageRebalanceResponse is the response to a storage rebalance request

Field Type Description
job StorageRebalanceJob Job for this rebalance
summary StorageRebalanceSummary Summary summarizes the rebalance job
actions repeated StorageRebalanceAudit Actions describe all the actions taken during this rebalance

SdkUpdateJobRequest

Defines a request to update an existing job

Field Type Description
id string ID of the job
type Job.Type Type of the job
state Job.State State is the new task state to update the job to

SdkUpdateJobResponse

Defines the response for an update to an existing job

SdkUpdateRebalanceJobRequest

Field Type Description
id string ID of the rebalance job
state StorageRebalanceJobState State is the new task state to update the job to

SdkUpdateRebalanceJobResponse

SdkVersion

SDK version in Major.Minor.Patch format. The goal of this message is to provide clients a method to determine the SDK version run by an SDK server.

Field Type Description
major int32 SDK version major number
minor int32 SDK version minor number
patch int32 SDK version patch number
version string String representation of the SDK version. Must be in major.minor.patch format.

SdkVolumeAttachOptions

Options to attach device

Field Type Description
secret_name string Indicates the name of the secret stored in a secret store In case of Hashicorp's Vault, it will be the key from the key-value pair stored in its kv backend. In case of Kubernetes secret, it is the name of the secret object itself
secret_key string In case of Kubernetes, this will be the key stored in the Kubernetes secret
secret_context string It indicates the additional context which could be used to retrieve the secret. In case of Kubernetes, this is the namespace in which the secret is created.
fastpath string Indicates whether fastpath needs to be enabled during attach

SdkVolumeAttachRequest

Defines a request to attach a volume to the node receiving this request

Field Type Description
volume_id string Id of volume
options SdkVolumeAttachOptions Options to attach device
driver_options map SdkVolumeAttachRequest.DriverOptionsEntry The following options are private to the driver plugin running the OpenStorage SDK. Contact your driver developer for any special values that need to be provided here.

SdkVolumeAttachRequest.DriverOptionsEntry

Field Type Description
key string none
value string none

SdkVolumeAttachResponse

Defines a response from the node which received the request to attach

Field Type Description
device_path string Device path where device is exported

SdkVolumeCapacityUsageRequest

Defines request to retrieve volume/snapshot capacity usage details

Field Type Description
volume_id string Id of the snapshot/volume to get capacity usage details

SdkVolumeCapacityUsageResponse

Defines response containing volume/snapshot capacity usage details

Field Type Description
capacity_usage_info CapacityUsageInfo CapacityUsage details

SdkVolumeCatalogRequest

Request message to get the volume catalog

Field Type Description
volume_id string VolumeId of the volume that is getting it's catalog retrieved.
path string Path which will be used as root (default is the actual root)
depth string Depth of folders/files retrieved (default is all of it, 1 would only return 1 layer)

SdkVolumeCatalogResponse

Response message to get volume catalog

Field Type Description
catalog CatalogResponse Catalog

SdkVolumeCloneRequest

Defines a request to clone a volume or create a volume from a snapshot

Field Type Description
name string Unique name of the volume. This will be used for idempotency.
parent_id string Parent volume id or snapshot id will create a new volume as a clone of the parent.
additional_labels map SdkVolumeCloneRequest.AdditionalLabelsEntry Additional labels to be appended after cloning the volume. Note that clone will issue a snapshot, which copies most labels except pvc and namespace. This map allows you to pass additional labels that are not part of the parent volume.

SdkVolumeCloneRequest.AdditionalLabelsEntry

Field Type Description
key string none
value string none

SdkVolumeCloneResponse

Defines the response when creating a clone from a volume or a snapshot

Field Type Description
volume_id string Id of new volume

SdkVolumeCreateRequest

Defines a request to create a volume. Use OpenStorageVolume.Update() to update any labels on the volume.

Field Type Description
name string Unique name of the volume. This will be used for idempotency.
spec VolumeSpec Volume specification
labels map SdkVolumeCreateRequest.LabelsEntry Labels to apply to the volume

SdkVolumeCreateRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeCreateResponse

Defines a response to the creation of a volume

Field Type Description
volume_id string Id of new volume

SdkVolumeDeleteRequest

Defines the request to delete a volume

Field Type Description
volume_id string Id of volume to delete

SdkVolumeDeleteResponse

Empty response

SdkVolumeDetachOptions

Field Type Description
force bool Forcefully detach device from the kernel
unmount_before_detach bool Unmount the volume before detaching
redirect bool redirect the request to the attached node

SdkVolumeDetachRequest

Defines a request to detach a volume

Field Type Description
volume_id string Id of the volume
options SdkVolumeDetachOptions Options to detach device
driver_options map SdkVolumeDetachRequest.DriverOptionsEntry The following options are private to the driver plugin running the OpenStorage SDK. Contact your driver developer for any special values that need to be provided here.

SdkVolumeDetachRequest.DriverOptionsEntry

Field Type Description
key string none
value string none

SdkVolumeDetachResponse

Empty response

SdkVolumeEnumerateRequest

Defines a request to list volumes

SdkVolumeEnumerateResponse

Defines the response when listing volumes

Field Type Description
volume_ids repeated string List of volumes matching label

SdkVolumeEnumerateWithFiltersRequest

Defines a request to list volumes

Field Type Description
name string (optional) Name to search
labels map SdkVolumeEnumerateWithFiltersRequest.LabelsEntry (optional) Labels to search
ownership Ownership (optional) Ownership to match
group Group (optional) Group to match

SdkVolumeEnumerateWithFiltersRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeEnumerateWithFiltersResponse

Defines the response when listing volumes

Field Type Description
volume_ids repeated string List of volumes matching label

SdkVolumeInspectRequest

Defines the request to inspect a volume

Field Type Description
volume_id string Id of volume to inspect
options VolumeInspectOptions Options during inspection

SdkVolumeInspectResponse

Defines the response when inspecting a volume

Field Type Description
volume Volume Information about the volume
name string Name of volume
labels map SdkVolumeInspectResponse.LabelsEntry Volume labels

SdkVolumeInspectResponse.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeInspectWithFiltersRequest

Defines the request to inspect volumes using a filter

Field Type Description
name string (optional) Name to search
labels map SdkVolumeInspectWithFiltersRequest.LabelsEntry (optional) Labels to search
ownership Ownership (optional) Ownership to match
group Group (optional) Group to match
options VolumeInspectOptions Options during inspection

SdkVolumeInspectWithFiltersRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeInspectWithFiltersResponse

Defines the response when inspecting volumes using a filter

Field Type Description
volumes repeated SdkVolumeInspectResponse List of SdkVolumeInspectResponse objects describing the volumes

SdkVolumeMountRequest

Defines a request to mount a volume to the node receiving this request

Field Type Description
volume_id string Id of the volume
mount_path string Mount path for mounting the volume.
options SdkVolumeAttachOptions Options to attach device
driver_options map SdkVolumeMountRequest.DriverOptionsEntry The following options are private to the driver plugin running the OpenStorage SDK. Contact your driver developer for any special values that need to be provided here.

SdkVolumeMountRequest.DriverOptionsEntry

Field Type Description
key string none
value string none

SdkVolumeMountResponse

Empty response

SdkVolumeSnapshotCreateRequest

Defines the request when creating a snapshot from a volume.

Field Type Description
volume_id string Id of volume to take the snapshot from
name string Name of the snapshot.
labels map SdkVolumeSnapshotCreateRequest.LabelsEntry Labels to apply to snapshot

SdkVolumeSnapshotCreateRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeSnapshotCreateResponse

Defines a response after creating a snapshot of a volume

Field Type Description
snapshot_id string Id of immutable snapshot

SdkVolumeSnapshotEnumerateRequest

Defines a request to list the snaphots

Field Type Description
volume_id string Get the snapshots for this volume id

SdkVolumeSnapshotEnumerateResponse

Defines a response when listing snapshots

Field Type Description
volume_snapshot_ids repeated string List of immutable snapshots

SdkVolumeSnapshotEnumerateWithFiltersRequest

Defines a request to list the snaphots

Field Type Description
volume_id string (optional) Get the snapshots for this volume id
labels map SdkVolumeSnapshotEnumerateWithFiltersRequest.LabelsEntry (optional) Get snapshots that match these labels

SdkVolumeSnapshotEnumerateWithFiltersRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeSnapshotEnumerateWithFiltersResponse

Defines a response when listing snapshots

Field Type Description
volume_snapshot_ids repeated string List of immutable snapshots

SdkVolumeSnapshotRestoreRequest

Defines a request to restore a volume to a snapshot

Field Type Description
volume_id string Id of volume
snapshot_id string Snapshot id to apply to volume_id

SdkVolumeSnapshotRestoreResponse

Empty response

SdkVolumeSnapshotScheduleUpdateRequest

Defines a request to update the snapshot schedule of a volume

Field Type Description
volume_id string Id of volume
snapshot_schedule_names repeated string Names of schedule policies

SdkVolumeSnapshotScheduleUpdateResponse

Empty response

SdkVolumeStatsRequest

Defines a request to retreive volume statistics

Field Type Description
volume_id string Id of the volume to get statistics
not_cumulative bool When set to false the stats are in /proc/diskstats style stats. When set to true the stats are stats for a specific duration.

SdkVolumeStatsResponse

Defines a response containing drive statistics

Field Type Description
stats Stats Statistics for a single volume

SdkVolumeUnmountOptions

Options to unmount device

Field Type Description
delete_mount_path bool Delete the mount path on the node after unmounting
no_delay_before_deleting_mount_path bool Do not wait for a delay before deleting path. Normally a storage driver may delay before deleting the mount path, which may be necessary to reduce the risk of race conditions. This choice will remove that delay. This value is only usable when delete_mount_path is set.

SdkVolumeUnmountRequest

Defines a request to unmount a volume on the node receiving this request

Field Type Description
volume_id string Id of volume
mount_path string MountPath for device
options SdkVolumeUnmountOptions Options to unmount device
driver_options map SdkVolumeUnmountRequest.DriverOptionsEntry The following options are private to the driver plugin running the OpenStorage SDK. Contact your driver developer for any special values that need to be provided here.

SdkVolumeUnmountRequest.DriverOptionsEntry

Field Type Description
key string none
value string none

SdkVolumeUnmountResponse

Empty response

SdkVolumeUpdateRequest

This request is used to adjust or set new values in the volume

Field Type Description
volume_id string Id of the volume to update
labels map SdkVolumeUpdateRequest.LabelsEntry Change label values. Some of these values may not be able to be changed. New labels will be added to the current volume labels. To delete a label, set the value of the label to an empty string.
spec VolumeSpecUpdate VolumeSpecUpdate provides a method to request that certain values in the VolumeSpec are changed. This is necessary as a separate variable because values like int and bool in the VolumeSpec cannot be determined if they are being requested to change in gRPC proto3. Some of these values may not be able to be changed.

Here are a few examples of actions that can be accomplished using the VolumeSpec:

  • To resize the volume: Set a new value in spec.size_opt.size. * To change number of replicas: Adjust spec.ha_level_opt.ha_level. * To change the I/O Profile: Adjust spec.io_profile_opt.io_profile. |

SdkVolumeUpdateRequest.LabelsEntry

Field Type Description
key string none
value string none

SdkVolumeUpdateResponse

Empty response

Sharedv4FailoverStrategy

Sharedv4FailoverStrategy specifies how long to wait before failing over to a new server.

Sharedv4ServiceSpec

Sharedv4ServiceSpec when set, creates a service endpoint for accessing a sharedv4 volume.

Field Type Description
name string Name of the service. If not provided the name of the volume will be used for setting up a service
type Sharedv4ServiceSpec.ServiceType Indicates what kind of service would be created for this volume.

Sharedv4Spec

Sharedv4Spec specifies common properties of sharedv4 and sharedv4 service volumes

Field Type Description
failover_strategy Sharedv4FailoverStrategy.Value Indicates how aggressively to fail over to a new server.

SnapCreateRequest

SnapCreateRequest specifies a request to create a snapshot of given volume.

Field Type Description
id string volume id
locator VolumeLocator none
readonly bool none
no_retry bool NoRetry indicates not to retry snapshot creation in the background.

SnapCreateResponse

SnapCreateRequest specifies a response that get's returned when creating a snapshot.

Field Type Description
volume_create_response VolumeCreateResponse VolumeCreateResponse

in: body Required: true |

Source

Source is a structure that can be given to a volume to seed the volume with data.

Field Type Description
parent string A volume id, if specified will create a clone of the parent.
seed string Seed will seed the volume from the specified URI Any additional config for the source comes from the labels in the spec

Stats

Stats is a structure that represents last collected stats for a volume

Field Type Description
reads uint64 Reads completed successfully
read_ms uint64 Time spent in reads in ms
read_bytes uint64 Number of bytes read
writes uint64 Writes completed successfully
write_ms uint64 Time spent in writes in ms
write_bytes uint64 Number of bytes written
io_progress uint64 IOs curently in progress
io_ms uint64 Time spent doing IOs ms
bytes_used uint64 BytesUsed
interval_ms uint64 Interval in ms during which stats were collected
unique_blocks uint64 Unique Blocks

StorageCluster

StorageCluster represents the state and information about the cluster

Field Type Description
status Status Status of the cluster
id string Id of the cluster
name string Name of the cluster

StorageNode

StorageNode describes the state of the node

Field Type Description
id string Id of the node
cpu double Cpu usage of the node
mem_total uint64 Total memory of the node
mem_used uint64 Used memory of the node
mem_free uint64 Free memory of the node
avg_load int64 Average load (percentage)
status Status Node status
disks map StorageNode.DisksEntry List of disks on the node
pools repeated StoragePool List of storage pools this node supports
mgmt_ip string Management IP
data_ip string Data IP
hostname string Hostname of the node
node_labels map StorageNode.NodeLabelsEntry User defined labels for the node
scheduler_node_name string SchedulerNodeName is name of the node in scheduler context. It can be empty if unable to get the name from the scheduler.
HWType HardwareType HardwareType is the type of the hardware the node has
security_status StorageNode.SecurityStatus Determine if the node is secured
scheduler_topology SchedulerTopology Topology information of the node in scheduler context

StorageNode.DisksEntry

Field Type Description
key string none
value StorageResource none

StorageNode.NodeLabelsEntry

Field Type Description
key string none
value string none

StoragePool

StoragePool groups different storage devices based on their CosType

Field Type Description
ID int32 Deprecated! Use uuid instead. ID pool ID
Cos CosType Cos reflects the capabilities of this drive pool
Medium StorageMedium Medium underlying storage type
RaidLevel string RaidLevel storage raid level
TotalSize uint64 TotalSize of the pool
Used uint64 Used size of the pool
labels map StoragePool.LabelsEntry Labels is a list of user defined name-value pairs
uuid string UUID is the unique identifier for a storage pool
last_operation StoragePoolOperation LastOperation is the most recent operation being performed on a storage pool

StoragePool.LabelsEntry

Field Type Description
key string none
value string none

StoragePoolOperation

StoragePoolOperation defines an operation being performed on a storage pool

Field Type Description
type SdkStoragePool.OperationType Type is the type of the operation
msg string Msg is a user friendly message for the operation
params map StoragePoolOperation.ParamsEntry Params for the parameters for the operation
status SdkStoragePool.OperationStatus Status is the status of the operation

StoragePoolOperation.ParamsEntry

Field Type Description
key string none
value string none

StorageRebalanceAudit

StorageRebalanceAudit describes the action taken during rebalance

Field Type Description
volume_id string VolumeID is the id of the volume which was rebalanced
name string Name is the name of the volumes which was rebalanced
action StorageRebalanceAudit.StorageRebalanceAction Action is the action executed
node string Node on which this action happened
pool string Pool on which this action happened
start_time google.protobuf.Timestamp StartTime is the time at which action was started
end_time google.protobuf.Timestamp EndTime is time time at which action ended
work_summary repeated StorageRebalanceWorkSummary WorkSummary summarizes the work done
replication_set_id uint64 ReplicationSetId is the ID of the replication set
state StorageRebalanceJobState State is the current state of the rebalance action

StorageRebalanceJob

StorageRebalanceJob describes job input and current status

Field Type Description
id string ID of the rebalance job
status string Status describes status of pools after rebalance if rebalance did not finish successfully
state StorageRebalanceJobState State of the current job
parameters SdkStorageRebalanceRequest Parameters is the original request params for this rebalance operation
create_time google.protobuf.Timestamp CreateTime is the time the job was created
last_update_time google.protobuf.Timestamp LastUpdateTime is the time the job was updated

StorageRebalanceSummary

StorageRebalanceSummary describes summary for the job

Field Type Description
total_run_time_seconds uint64 TotalRunTimeSeconds is the total time rebalance is running
work_summary repeated StorageRebalanceWorkSummary WorkSummary summarizes the work done

StorageRebalanceTriggerThreshold

Field Type Description
type StorageRebalanceTriggerThreshold.Type Type defines type of threshold
metric StorageRebalanceTriggerThreshold.Metric Metric defines metric for which this threshold applies to.
over_load_trigger_threshold uint64 OverLoadTriggerThreshold will select entity which is over this threshold. OverLoadTriggerThreshold threshold selects pools which act as source for reduction of load defined by the metric.
under_load_trigger_threshold uint64 UnderLoadTriggerThreshold will select entity which is under this threshold. UnderLoadTriggerThreshold selects pools which act as targets for increasing load defined by metric.

StorageRebalanceWorkSummary

Field Type Description
type StorageRebalanceWorkSummary.Type Type describes the type of summary.
done uint64 Done is the amount of bytes/work done
pending uint64 Pending is the amount of bytes/work pending. Done + Pending == Total

StorageResource

StorageResource groups properties of a storage device.

Field Type Description
id string Id is the LUN identifier.
path string Path device path for this storage resource.
medium StorageMedium Storage medium.
online bool True if this device is online.
iops uint64 IOPS
seq_write double SeqWrite
seq_read double SeqRead
randRW double RandRW
size uint64 Total size in bytes.
used uint64 Physical Bytes used.
rotation_speed string True if this device is rotational.
last_scan google.protobuf.Timestamp Timestamp of last time this device was scanned.
metadata bool True if dedicated for metadata.
cache bool True if dedicated as cache
pool_metadata_dev bool True if the resource is used as thin pool metadata disk

StorageVersion

Version information about the storage system

Field Type Description
driver string OpenStorage driver name
version string Version of the server
details map StorageVersion.DetailsEntry Extra information provided by the storage system

StorageVersion.DetailsEntry

Field Type Description
key string none
value string none

TopologyRequirement

TopologyRequirement defines the topology requirement for a volume

Field Type Description
labels map TopologyRequirement.LabelsEntry Key-value pairs defining the required topology for a volume

TopologyRequirement.LabelsEntry

Field Type Description
key string none
value string none

Volume

Volume represents an abstract storage volume.

Field Type Description
id string Self referential volume ID.
source Source Source specified seed data for the volume.
group Group Group volumes in the same group have the same group id.
readonly bool Readonly is true if this volume is to be mounted with readonly access.
locator VolumeLocator User specified locator
ctime google.protobuf.Timestamp Volume creation time
spec VolumeSpec User specified VolumeSpec
usage uint64 Usage is bytes consumed by this volume.
last_scan google.protobuf.Timestamp LastScan is the time when an integrity check was run.
format FSType Format specifies the filesytem for this volume.
status VolumeStatus VolumeStatus is the availability status of this volume.
state VolumeState VolumeState is the current runtime state of this volume.
attached_on string AttachedOn is the node instance identifier for clustered systems.
attached_state AttachState AttachState shows whether the device is attached for internal or external use.
device_path string DevicePath is the device exported by block device implementations.
secure_device_path string SecureDevicePath is the device path for an encrypted volume.
attach_path repeated string AttachPath is the mounted path in the host namespace.
attach_info map Volume.AttachInfoEntry AttachInfo is a list of name value mappings that provides attach information.
replica_sets repeated ReplicaSet ReplicatSets storage for this volumefor clustered storage arrays.
runtime_state repeated RuntimeStateMap RuntimeState is a lst of name value mapping of driver specific runtime information.
error string Error is the Last recorded error.
volume_consumers repeated VolumeConsumer VolumeConsumers are entities that consume this volume
fs_resize_required bool FsResizeRequired if an FS resize is required on the volume.
attach_time google.protobuf.Timestamp AttachTime time this device was last attached externally.
detach_time google.protobuf.Timestamp DetachTime time this device was detached.
fpConfig FastpathConfig Fastpath extensions
last_scan_fix google.protobuf.Timestamp LastScanFix is the time when an integrity check fixed errors in filesystem
last_scan_status FilesystemHealthStatus LastScanStatus is the time when an integrity check fixed errors in filesystem
mount_options MountOptions MountOptions are the runtime mount options that will be used while mounting this volume
sharedv4_mount_options MountOptions Sharedv4MountOptions are the runtime mount options that will be used while mounting a sharedv4 volume from a node where the volume replica does not exist
derived_io_profile IoProfile DerivedIoProfile the IO profile determined from the pattern
in_trashcan bool InTrashcan if the volume is in trashcan

Volume.AttachInfoEntry

Field Type Description
key string none
value string none

VolumeConsumer

VolumeConsumer identifies a consumer for a Volume. An example of a VolumeConsumer would be a Pod in Kubernetes who has mounted the PersistentVolumeClaim for the Volume

Field Type Description
name string Name is the name of the volume consumer
namespace string Namespace is the namespace of the volume consumer
type string Type is the type of the consumer. E.g a Kubernetes pod
node_id string NodeID is the identifier of the node on which the consumer is running. This identifier would be from the perspective of the container runtime or orchestrator under which the volume consumer resides. For example, NodeID can be name of a minion in Kubernetes.
owner_name string OwnerName is the name of the entity who owns this volume consumer
owner_type string OwnerType is the type of the entity who owns this volume consumer. The type would be from the perspective of the container runtime or the orchestrator under which the volume consumer resides. For e.g OwnerType can be a Deployment in Kubernetes.

VolumeCreateRequest

VolumeCreateRequest is a structure that has the locator, source and spec to create a volume

Field Type Description
locator VolumeLocator User specified volume name and labels
source Source Source to create volume
spec VolumeSpec The storage spec for the volume

VolumeCreateResponse

VolumeCreateResponse

Field Type Description
id string ID of the newly created volume

in: body Required: true | | volume_response | VolumeResponse | Volume Response

in: body Required: true |

VolumeInfo

VolumeInfo

Field Type Description
volume_id string none
path string none
storage VolumeSpec none

VolumeInspectOptions

Options used for volume inspection

Field Type Description
deep bool Deep inspection is used to collect more information about the volume. Setting this value may delay the request.

VolumeLocator

VolumeLocator is a structure that is attached to a volume and is used to carry opaque metadata.

Field Type Description
name string User friendly identifier
volume_labels map VolumeLocator.VolumeLabelsEntry A set of name-value pairs that acts as search filters
ownership Ownership Filter with ownership
group Group Filter by group
volume_ids repeated string Volume Ids to match

VolumeLocator.VolumeLabelsEntry

Field Type Description
key string none
value string none

VolumePlacementSpec

Field Type Description
weight int64 Weight defines the weight of the rule which allows to break the tie with other matching rules. A rule with higher weight wins over a rule with lower weight. (optional)
enforcement EnforcementType Enforcement specifies the rule enforcement policy. Can take values: required or preferred. (optional)
topology_key string TopologyKey key for the matching all segments of the cluster topology with the same key e.g If the key is failure-domain.beta.kubernetes.io/zone, this should match all nodes with the same value for this key (i.e in the same zone)
match_expressions repeated LabelSelectorRequirement MatchExpressions is a list of label selector requirements. The requirements are ANDed.

VolumePlacementStrategy

VolumePlacementStrategy defines a strategy for placing volumes in the cluster which will be a series of rules All the rules specified will be applied for volume placement. Rules that have enforcement as "required" are strictly enforced while "preferred" are best effort. In situations, where 2 or more rules conflict, the weight of the rules will dictate which wins.

Field Type Description
replica_affinity repeated ReplicaPlacementSpec ReplicaAffinity defines affinity rules between replicas within a volume
replica_anti_affinity repeated ReplicaPlacementSpec ReplicaAntiAffinity defines anti-affinity rules between replicas within a volume
volume_affinity repeated VolumePlacementSpec VolumeAffinity defines affinity rules between volumes
volume_anti_affinity repeated VolumePlacementSpec VolumeAntiAffinity defines anti-affinity rules between volumes

VolumeResponse

VolumeResponse is a structure that wraps an error.

Field Type Description
error string Error message

in: body Required: true |

VolumeServiceInstanceResponse

Field Type Description
error string Error code
status map VolumeServiceInstanceResponse.StatusEntry Status information exposed a map

VolumeServiceInstanceResponse.StatusEntry

Field Type Description
key string none
value string none

VolumeServiceRequest

VolumeServiceRequest provides details on what volume service command to perform in background on the volume

Field Type Description
srv_cmd string User specified volume service command
srv_cmd_params map VolumeServiceRequest.SrvCmdParamsEntry User specified volume service command's params

VolumeServiceRequest.SrvCmdParamsEntry

Field Type Description
key string none
value string none

VolumeServiceResponse

VolumeServiceResponse specifies the response to a Volume Service command performed on a volumen

Field Type Description
vol_srv_rsp_obj_cnt int32 Number of VolumeServiceInstanceResponse returned as part of this response structure
vol_srv_rsp repeated VolumeServiceInstanceResponse none

VolumeSetRequest

VolumeSet specifies a request to update a volume.

Field Type Description
locator VolumeLocator User specified volume name and labels
spec VolumeSpec The storage spec for the volume
action VolumeStateAction State modification on this volume.
options map VolumeSetRequest.OptionsEntry additional options required for the Set operation.

VolumeSetRequest.OptionsEntry

Field Type Description
key string none
value string none

VolumeSetResponse

VolumeSetResponse

Field Type Description
volume Volume Volume
volume_response VolumeResponse VolumeResponse

VolumeSpec

VolumeSpec has the properties needed to create a volume.

Field Type Description
ephemeral bool Ephemeral storage
size uint64 Size specifies the thin provisioned volume size in bytes
format FSType Format specifies the filesystem for this volume.
block_size int64 BlockSize for the filesystem.
ha_level int64 HaLevel specifies the number of copies of data.
cos CosType Cos specifies the relative class of service.
io_profile IoProfile IoProfile provides a hint about application using this volume.
dedupe bool Dedupe specifies if the volume data is to be de-duplicated.
snapshot_interval uint32 SnapshotInterval in minutes, set to 0 to disable snapshots
volume_labels map VolumeSpec.VolumeLabelsEntry (deprecated, do not use) VolumeLabels configuration labels
shared bool Shared is true if this volume can be concurrently accessed by multiple users.
replica_set ReplicaSet ReplicaSet is the desired set of nodes for the volume data.
aggregation_level uint32 Aggregation level Specifies the number of parts the volume can be aggregated from.
encrypted bool Encrypted is true if this volume will be cryptographically secured.
passphrase string Passphrase for an encrypted volume
snapshot_schedule string SnapshotSchedule a well known string that specifies when snapshots should be taken.
scale uint32 Scale allows autocreation of volumes.
sticky bool Sticky volumes cannot be deleted until the flag is removed.
group Group Group identifies a consistency group
group_enforced bool GroupEnforced is true if consistency group creation is enforced.
compressed bool Compressed is true if this volume is to be compressed.
cascaded bool Cascaded is true if this volume can be populated on any node from an external source.
journal bool Journal is true if data for the volume goes into the journal.
sharedv4 bool Sharedv4 is true if this volume can be accessed via sharedv4.
queue_depth uint32 QueueDepth defines the desired block device queue depth
force_unsupported_fs_type bool Use to force a file system type which is not recommended. The driver may still refuse to use the file system type.
nodiscard bool Nodiscard specifies if the volume will be mounted with discard support disabled. i.e. FS will not release allocated blocks back to the backing storage pool.
io_strategy IoStrategy IoStrategy preferred strategy for I/O.
placement_strategy VolumePlacementStrategy PlacementStrategy specifies a spec to indicate where to place the volume.
storage_policy string StoragePolicy if applied/specified while creating volume
ownership Ownership Ownership
export_spec ExportSpec ExportSpec defines how the volume should be exported.
fp_preference bool fastpath extensions
xattr Xattr.Value Xattr specifies implementation specific volume attributes
scan_policy ScanPolicy ScanPolicy specifies the filesystem check policy
mount_options MountOptions MountOptions defines the options that will be used while mounting this volume
sharedv4_mount_options MountOptions Sharedv4MountOptions defines the options that will be used while mounting a sharedv4 volume from a node where the volume replica does not exist
proxy_write bool Proxy_write if true, per volume proxy write replication enabled
proxy_spec ProxySpec ProxySpec indicates that this volume is used for proxying an external data source
sharedv4_service_spec Sharedv4ServiceSpec Sharedv4ServiceSpec specifies a spec for configuring a service for a sharedv4 volume
sharedv4_spec Sharedv4Spec Sharedv4Spec specifies common properties of sharedv4 and sharedv4 service volumes
auto_fstrim bool Autofstrim indicates that fstrim would be run on this volume automatically, without user intervention
io_throttle IoThrottle IoThrottle specifies maximum io(iops/bandwidth) this volume is restricted to
topology_requirement TopologyRequirement TopologyRequirement topology requirement for this volume
winshare bool winshare is true if this volume can be accessed from windows pods.
fa_create_options string Filesystem create options to be honored.
near_sync bool NearSync specifies the volume has a near-sync replica
near_sync_replication_strategy NearSyncReplicationStrategy NearSyncReplicationStrategy is replication strategy for near sync volumes

VolumeSpec.VolumeLabelsEntry

Field Type Description
key string none
value string none

VolumeSpecPolicy

VolumeSpecPolicy provides a method to set volume storage policy

Field Type Description
oneof size_opt.size uint64 none
oneof ha_level_opt.ha_level int64 none
oneof cos_opt.cos CosType none
oneof io_profile_opt.io_profile IoProfile none
oneof dedupe_opt.dedupe bool none
oneof snapshot_interval_opt.snapshot_interval uint32 none
volume_labels map VolumeSpecPolicy.VolumeLabelsEntry VolumeLabels configuration labels
oneof shared_opt.shared bool none
replica_set ReplicaSet ReplicaSet is the desired set of nodes for the volume data.
oneof passphrase_opt.passphrase string none
oneof snapshot_schedule_opt.snapshot_schedule string none
oneof scale_opt.scale uint32 none
oneof sticky_opt.sticky bool none
oneof group_opt.group Group none
oneof journal_opt.journal bool none
oneof sharedv4_opt.sharedv4 bool none
oneof queue_depth_opt.queue_depth uint32 none
oneof encrypted_opt.encrypted bool none
oneof aggregation_level_opt.aggregation_level uint32 none
size_operator VolumeSpecPolicy.PolicyOp Operator to check size
ha_level_operator VolumeSpecPolicy.PolicyOp Operator to check ha_level
scale_operator VolumeSpecPolicy.PolicyOp Operator to check scale
snapshot_interval_operator VolumeSpecPolicy.PolicyOp Operator to check snapshot_interval
oneof nodiscard_opt.nodiscard bool none
io_strategy IoStrategy IoStrategy preferred strategy for I/O.
oneof export_spec_opt.export_spec ExportSpec none
oneof scan_policy_opt.scan_policy ScanPolicy none
oneof mount_opt.mount_opt_spec MountOptions none
oneof sharedv4_mount_opt.sharedv4_mount_opt_spec MountOptions none
oneof proxy_write_opt.proxy_write bool none
oneof proxy_spec_opt.proxy_spec ProxySpec none
oneof fastpath_opt.fastpath bool none
oneof sharedv4_service_spec_opt.sharedv4_service_spec Sharedv4ServiceSpec none
oneof sharedv4_spec_opt.sharedv4_spec Sharedv4Spec none
oneof auto_fstrim_opt.auto_fstrim bool none
oneof io_throttle_opt.io_throttle IoThrottle none
oneof winshare_opt.winshare bool none

VolumeSpecPolicy.VolumeLabelsEntry

Field Type Description
key string none
value string none

VolumeSpecUpdate

VolumeSpecUpdate provides a method to set any of the VolumeSpec of an existing volume

Field Type Description
oneof size_opt.size uint64 none
oneof ha_level_opt.ha_level int64 none
oneof cos_opt.cos CosType none
oneof io_profile_opt.io_profile IoProfile none
oneof dedupe_opt.dedupe bool none
oneof snapshot_interval_opt.snapshot_interval uint32 none
oneof shared_opt.shared bool none
replica_set ReplicaSet ReplicaSet is the desired set of nodes for the volume data.
oneof passphrase_opt.passphrase string none
oneof snapshot_schedule_opt.snapshot_schedule string none
oneof scale_opt.scale uint32 none
oneof sticky_opt.sticky bool none
oneof group_opt.group Group none
oneof journal_opt.journal bool none
oneof sharedv4_opt.sharedv4 bool none
oneof queue_depth_opt.queue_depth uint32 none
ownership Ownership Ownership volume information to update. If the value of owner in the ownership message is an empty string then the value of owner in the VolumeSpec.Ownership.owner will not be updated.
oneof nodiscard_opt.nodiscard bool none
io_strategy IoStrategy IoStrategy preferred strategy for I/O.
oneof export_spec_opt.export_spec ExportSpec none
oneof fastpath_opt.fastpath bool none
oneof xattr_opt.xattr Xattr.Value none
oneof scan_policy_opt.scan_policy ScanPolicy none
oneof mount_opt.mount_opt_spec MountOptions none
oneof sharedv4_mount_opt.sharedv4_mount_opt_spec MountOptions none
oneof proxy_write_opt.proxy_write bool none
oneof proxy_spec_opt.proxy_spec ProxySpec none
oneof sharedv4_service_spec_opt.sharedv4_service_spec Sharedv4ServiceSpec none
oneof sharedv4_spec_opt.sharedv4_spec Sharedv4Spec none
oneof auto_fstrim_opt.auto_fstrim bool none
oneof io_throttle_opt.io_throttle IoThrottle none
oneof near_sync_replication_strategy_opt.near_sync_replication_strategy NearSyncReplicationStrategy none
oneof winshare_opt.winshare bool none

VolumeStateAction

VolumeStateAction specifies desired actions.

Field Type Description
attach VolumeActionParam Attach or Detach volume
mount VolumeActionParam Mount or unmount volume
mount_path string MountPath Path where the device is mounted
device_path string DevicePath Path returned in attach

VolumeUsage

Provides volume's exclusive bytes and its total usage. This cannot be retrieved individually and is obtained as part node's usage for a given node.

Field Type Description
volume_id string id for the volume/snapshot
volume_name string name of the volume/snapshot
pool_uuid string uuid of the pool that this volume belongs to
exclusive_bytes uint64 size in bytes exclusively used by the volume/snapshot
total_bytes uint64 size in bytes by the volume/snapshot
local_cloud_snapshot bool set to true if this volume is snapshot created by cloudbackups

VolumeUsageByNode

Provides capacity usage of a node in terms of volumes. Returns VolumeUsage for all the volume/snapshot(s) in the node.

Field Type Description
volume_usage repeated VolumeUsage VolumeUsage returns list of VolumeUsage for given node

Xattr

Xattr defines implementation specific volume attribute

Enums

AlertActionType

Name Number Description
ALERT_ACTION_TYPE_NONE 0 none
ALERT_ACTION_TYPE_DELETE 1 none
ALERT_ACTION_TYPE_CREATE 2 none
ALERT_ACTION_TYPE_UPDATE 3 none

AnonymousBucketAccessMode

Name Number Description
UnknownBucketAccessMode 0 none
Private 1 Default, disallow uncredentialed access to the backend storage.
ReadOnly 2 Read only, uncredentialed users can call ListBucket and GetObject.
WriteOnly 3 Write only, uncredentialed users can only call PutObject.
ReadWrite 4 Read/Write, uncredentialed users can read objects as well as PutObject.

AttachState

Name Number Description
ATTACH_STATE_EXTERNAL 0 Attached and available externally
ATTACH_STATE_INTERNAL 1 Attached but only available internally
ATTACH_STATE_INTERNAL_SWITCH 2 Switching from External to Internal

CloudMigrate.OperationType

Name Number Description
InvalidType 0 none
MigrateCluster 1 Migrate all volumes in the cluster
MigrateVolume 2 Migrate a single volume
MigrateVolumeGroup 3 Migrate a group of volumes

CloudMigrate.Stage

Name Number Description
InvalidStage 0 none
Backup 1 none
Restore 2 none
VolumeUpdate 3 none
Done 4 none

CloudMigrate.Status

Name Number Description
InvalidStatus 0 none
Queued 1 none
Initialized 2 none
InProgress 3 none
Failed 4 none
Complete 5 none
Canceled 6 none

ClusterPairMode.Mode

Name Number Description
Default 0 Default pairing mode
DisasterRecovery 1 Paired for DisasterRecovery
OneTimeMigration 2 Paired for one-time migration

CosType

Name Number Description
NONE 0 none
LOW 1 none
MEDIUM 2 none
HIGH 3 none

DiagsCollectionStatus.State

State is an enum for state of diags collection on a given node

Name Number Description
UNSPECIFIED 0 Unspecified means uninitialized or unknown state
PENDING 1 Pending indicates the diags collection is pending and hasn't started
RUNNING 2 Running indicates diags collection is actively running
DONE 3 Done indicates diags collection has finished
FAILED 4 Failed indicates diags collection has failed

DriverType

Name Number Description
DRIVER_TYPE_NONE 0 none
DRIVER_TYPE_FILE 1 none
DRIVER_TYPE_BLOCK 2 none
DRIVER_TYPE_OBJECT 3 none
DRIVER_TYPE_CLUSTERED 4 none
DRIVER_TYPE_GRAPH 5 none

EnforcementType

Defines the types of enforcement on the given rules

Name Number Description
required 0 This specifies that the rule is required and must be strictly enforced
preferred 1 This specifies that the rule is preferred and can be best effort

ExportProtocol

ExportProtocol defines how the device is exported..

Name Number Description
INVALID 0 Invalid uninitialized value
PXD 1 PXD the volume is exported over Portworx block interace.
ISCSI 2 ISCSI the volume is exported over ISCSI.
NFS 3 NFS the volume is exported over NFS.
CUSTOM 4 Custom the volume is exported over custom interace.

FSType

Name Number Description
FS_TYPE_NONE 0 none
FS_TYPE_BTRFS 1 none
FS_TYPE_EXT4 2 none
FS_TYPE_FUSE 3 none
FS_TYPE_NFS 4 none
FS_TYPE_VFS 5 none
FS_TYPE_XFS 6 none
FS_TYPE_ZFS 7 none
FS_TYPE_XFSv2 8 none

FastpathProtocol

Name Number Description
FASTPATH_PROTO_UNKNOWN 0 none
FASTPATH_PROTO_NVMEOF_TCP 1 none
FASTPATH_PROTO_ISCSI 2 none
FASTPATH_PROTO_LOCAL 3 none

FastpathStatus

fastpath extensions

Name Number Description
FASTPATH_UNKNOWN 0 backward compatible state
FASTPATH_ACTIVE 1 fastpath activated and enabled
FASTPATH_INACTIVE 2 fastpath inactive
FASTPATH_UNSUPPORTED 3 fastpath unsupported, disabled
FASTPATH_PENDING 4 fastpath operation setup in progress
FASTPATH_ERRORED 5 fastpath error'd, possible stuck failure

FilesystemCheck.FilesystemCheckStatus

FilesystemChecktatus represents the status codes returned from OpenStorageFilesystemCheck service APIs()

Name Number Description
FS_CHECK_UNKNOWN 0 Filesystem Check operation is an unknown state
FS_CHECK_NOT_RUNNING 1 FilesystemCheck operation not running for the specified volume
FS_CHECK_STARTED 2 FilesystemCheck operation started for the specified volume
FS_CHECK_INPROGRESS 3 FilesystemCheck operation is in progress
FS_CHECK_STOPPED 4 FilesystemCheck operation was stopped by the user
FS_CHECK_COMPLETED 5 FilesystemCheck operation completed successfully
FS_CHECK_FAILED 6 FilesystemCheck operation failed due to internal error

FilesystemHealthStatus

Name Number Description
FS_HEALTH_STATUS_UNKNOWN 0 filesystem health status is unknown
FS_HEALTH_STATUS_HEALTHY 1 filesystem is a healthy
FS_HEALTH_STATUS_SAFE_TO_FIX 2 filesystem has errors, but can be fixed safely
FS_HEALTH_STATUS_NEEDS_INSPECTION 3 filesystem has errors, these cannot be fixed automatically, user needs to review the reported errors and take appropriate action

FilesystemTrim.FilesystemTrimStatus

FilesystemTrimStatus represents the status codes returned from OpenStorageFilesystemTrim service APIs()

Name Number Description
FS_TRIM_UNKNOWN 0 Filesystem Trim operation is an unknown state
FS_TRIM_NOT_RUNNING 1 Filesystem Trim operation is not running for the specified volume
FS_TRIM_STARTED 2 Filesystem Trim operation started for the specified volume
FS_TRIM_INPROGRESS 3 Filesystem Trim operation is in progress for the specified volume
FS_TRIM_STOPPED 4 Filesystem Trim operation was stopped by the user for the specified volume
FS_TRIM_COMPLETED 5 Filesystem Trim operation completed successfully for the specified volume
FS_TRIM_FAILED 6 Filesystem Trim operation failed due to internal error for the specified volume

GraphDriverChangeType

Name Number Description
GRAPH_DRIVER_CHANGE_TYPE_NONE 0 none
GRAPH_DRIVER_CHANGE_TYPE_MODIFIED 1 none
GRAPH_DRIVER_CHANGE_TYPE_ADDED 2 none
GRAPH_DRIVER_CHANGE_TYPE_DELETED 3 none

HardwareType

Name Number Description
UnknownMachine 0 When we do not know the machine type alsp the default
VirtualMachine 1 when we are running on virtual machine
BareMetalMachine 2 when we are running on physical hardware

IoProfile

Name Number Description
IO_PROFILE_SEQUENTIAL 0 none
IO_PROFILE_RANDOM 1 none
IO_PROFILE_DB 2 none
IO_PROFILE_DB_REMOTE 3 none
IO_PROFILE_CMS 4 none
IO_PROFILE_SYNC_SHARED 5 none
IO_PROFILE_AUTO 6 none
IO_PROFILE_NONE 7 none
IO_PROFILE_JOURNAL 8 none
IO_PROFILE_AUTO_JOURNAL 9 none

Job.State

State is an enum for state of a node drain operation

Name Number Description
UNSPECIFIED_STATE 0 Unspecified
PENDING 1 Pending indicates job is still pending and has not started work
RUNNING 2 Running indicates job is actively running
DONE 3 Done indicates job has finished processing
PAUSED 4 Paused indicates job is paused
CANCELLED 5 Cancelled indicates job is cancelled
FAILED 6 Failed indicates job has failed

Job.Type

Type are the supported job types

Name Number Description
UNSPECIFIED_TYPE 0 Unspecified
NONE 1 None
DRAIN_ATTACHMENTS 2 Job for draining volume attachments
CLOUD_DRIVE_TRANSFER 3 Job for transferring cloud drives between nodes
COLLECT_DIAGS 4 Job for collecting diags from the cluster nodes

LabelSelectorRequirement.Operator

This defines operator types used in a label matching rule

Name Number Description
In 0 In means the value for 'key' should be in one of the given value(s)
NotIn 1 NotIn means the value for 'key' should NOT be in one of the given value(s)
Exists 2 Exists means the 'key' should just exist regardless of the value
DoesNotExist 3 DoesNotExist means the 'key' should NOT exist
Gt 4 Gt means the 'key' should be greater than the value(s)
Lt 5 Lt means the 'key' should be less than the value(s)

NearSyncReplicationStrategy

Name Number Description
NEAR_SYNC_STRATEGY_NONE 0 none
NEAR_SYNC_STRATEGY_AGGRESSIVE 1 none
NEAR_SYNC_STRATEGY_OPTIMIZED 2 none

OperationFlags

Name Number Description
OP_FLAGS_UNKNOWN 0 none
OP_FLAGS_NONE 1 none
OP_FLAGS_DETACH_FORCE 2 Perform a force_detach during detach operation

Ownership.AccessType

Access types can be set by owner to have different levels of access to a resource.

It is up to the resource to interpret what the types mean and are used for.

Name Number Description
Read 0 Read access only and cannot affect the resource.
Write 1 Write access and can affect the resource. This type automatically provides Read access also.
Admin 2 Administrator access. This type automatically provides Read and Write access also.

ProxyProtocol

ProxyProtocol defines the protocol used for proxy.

Name Number Description
PROXY_PROTOCOL_INVALID 0 Invalid uninitialized value
PROXY_PROTOCOL_NFS 1 NFS indicates that the external data source is NFS and the volume will be reflected over NFS protocol
PROXY_PROTOCOL_S3 2 S3 indicates that the external data source is an object store.
PROXY_PROTOCOL_PXD 3 PXD indicates that the external data source is a Portworx block volume.
PROXY_PROTOCOL_PURE_BLOCK 4 PURE_BLOCK indicates that the external data source is a pure_block volume.
PROXY_PROTOCOL_PURE_FILE 5 PURE_FILE indicates that the external data source is a pure_file volume.

ResourceType

Name Number Description
RESOURCE_TYPE_NONE 0 none
RESOURCE_TYPE_VOLUME 1 none
RESOURCE_TYPE_NODE 2 none
RESOURCE_TYPE_CLUSTER 3 none
RESOURCE_TYPE_DRIVE 4 none
RESOURCE_TYPE_POOL 5 none

RestoreParamBoolType

Name Number Description
PARAM_BKUPSRC 0 Default: whateever was cloudbakup's option for the parameter
PARAM_FALSE 1 none
PARAM_TRUE 2 none

ScanPolicy.ScanAction

Name Number Description
SCAN_ACTION_NONE 0 none
SCAN_ACTION_SCAN_ONLY 1 none
SCAN_ACTION_SCAN_REPAIR 2 none

ScanPolicy.ScanTrigger

Name Number Description
SCAN_TRIGGER_NONE 0 none
SCAN_TRIGGER_ON_MOUNT 1 none
SCAN_TRIGGER_ON_NEXT_MOUNT 2 none

SdkCloudBackupClusterType.Value

Name Number Description
UNKNOWN 0 Unknown
CURRENT_CLUSTER 1 Belongs to this cluster
OTHER_CLUSTER 2 belongs to other cluster

SdkCloudBackupOpType

CloudBackup operations types

Name Number Description
SdkCloudBackupOpTypeUnknown 0 Unknown
SdkCloudBackupOpTypeBackupOp 1 Backup
SdkCloudBackupOpTypeRestoreOp 2 Restore
SdkNearSyncOpTypeCloneOp 3 NearSync clone
SdkNearSyncOpTypeReplAddOp 4 NearSync replication add
SdkNearSyncOpTypeRestoreOp 5 NearSync restore

SdkCloudBackupRequestedState

SdkCloudBackupRequestedState defines states to set a specified backup or restore to or from a cloud provider

Name Number Description
SdkCloudBackupRequestedStateUnknown 0 Unknown state
SdkCloudBackupRequestedStatePause 1 Pause the backup or restore
SdkCloudBackupRequestedStateResume 2 Resume the backup or restore
SdkCloudBackupRequestedStateStop 3 Stop a backup or restore
SdkNearSyncRequestedStatePause 4 Pause the near sync migrate
SdkNearSyncRequestedStateResume 5 Resume the near sync migrate
SdkNearSyncRequestedStateStop 6 Stop a near sync migrate

SdkCloudBackupStatusType

CloudBackup status types

Name Number Description
SdkCloudBackupStatusTypeUnknown 0 Unkonwn
SdkCloudBackupStatusTypeNotStarted 1 Not started
SdkCloudBackupStatusTypeDone 2 Done
SdkCloudBackupStatusTypeAborted 3 Aborted
SdkCloudBackupStatusTypePaused 4 Paused
SdkCloudBackupStatusTypeStopped 5 Stopped
SdkCloudBackupStatusTypeActive 6 Active
SdkCloudBackupStatusTypeFailed 7 Failed
SdkCloudBackupStatusTypeQueued 8 Queued
SdkCloudBackupStatusTypeInvalid 9 Invalid, used by enumerate, includes failed, stopped and aborted
SdkNearSyncStatusTypeNotStarted 10 Near sync Not started
SdkNearSyncStatusTypeDone 11 Done
SdkNearSyncStatusTypePaused 12 Paused
SdkNearSyncStatusTypeStopped 13 Stopped
SdkNearSyncStatusTypeActive 14 Active
SdkNearSyncStatusTypeFailed 15 Failed
SdkNearSyncStatusTypeInvalid 16 Invalid

SdkServiceCapability.OpenStorageService.Type

Name Number Description
UNKNOWN 0 Unknown service
CLUSTER 1 Cluster management
CLOUD_BACKUP 2 Cloud backup of volumes management
CREDENTIALS 3 Credentials management
NODE 4 Node management
OBJECT_STORAGE 5 Object Storage management
SCHEDULE_POLICY 6 Schedule policy management
VOLUME 7 Volume management
ALERTS 8 Alert enumeration
MOUNT_ATTACH 9 Mount/Attach Support
ROLE 10 Role service
CLUSTER_PAIR 11 Cluster Pair service
MIGRATE 12 Migrate service
STORAGE_POLICY 13 StoragePolicy Service

SdkStoragePool.OperationStatus

OperationStatus captures the various statuses of a storage pool operation

Name Number Description
OPERATION_PENDING 0 Operation pending
OPERATION_IN_PROGRESS 1 Operation is in progress
OPERATION_SUCCESSFUL 2 Operation is successful
OPERATION_FAILED 3 Operation failed

SdkStoragePool.OperationType

OperationType defines the various operations that are performed on a storage pool

Name Number Description
OPERATION_RESIZE 0 Resize operation

SdkStoragePool.ResizeOperationType

Defines the operation types available to resize a storage pool

Name Number Description
RESIZE_TYPE_AUTO 0 Automatically pick the optimum resize operation type
RESIZE_TYPE_ADD_DISK 1 Add a new drive to resize the pool
RESIZE_TYPE_RESIZE_DISK 2 Resize existing drives to resize the pool

SdkTimeWeekday

Defines times of day

Name Number Description
SdkTimeWeekdaySunday 0 Sunday
SdkTimeWeekdayMonday 1 Monday
SdkTimeWeekdayTuesday 2 Tuesday
SdkTimeWeekdayWednesday 3 Wednesday
SdkTimeWeekdayThursday 4 Thursday
SdkTimeWeekdayFriday 5 Friday
SdkTimeWeekdaySaturday 6 Saturday

SdkVersion.Version

These values are constants that can be used by the client and server applications

Name Number Description
MUST_HAVE_ZERO_VALUE 0 Must be set in the proto file; ignore.
Major 0 SDK version major value of this specification
Minor 101 SDK version minor value of this specification
Patch 39 SDK version patch value of this specification

SeverityType

Name Number Description
SEVERITY_TYPE_NONE 0 none
SEVERITY_TYPE_ALARM 1 none
SEVERITY_TYPE_WARNING 2 none
SEVERITY_TYPE_NOTIFY 3 none

Sharedv4FailoverStrategy.Value

Name Number Description
UNSPECIFIED 0 Unspecified
AGGRESSIVE 1 Fail over to the new NFS server quickly. This is appropriate for the apps with sharedv4 service volumes. It can also be used for the apps with sharedv4 volumes when such apps are able to restart quickly.
NORMAL 2 Give the old NFS server more time to come back up before triggering the failover. This is appropriate for the apps with sharedv4 volumes (non-service).

Sharedv4ServiceSpec.ServiceType

Type of sharedv4 service. Values are governed by the different types of services supported by container orchestrators such as Kubernetes.

Name Number Description
UNSPECIFIED 0 Unspecified
NODEPORT 1 Export the sharedv4 service on each Node's IP. In this mode the sharedv4 volume can be accessed from outside the cluster using one of the node's IPs.
CLUSTERIP 2 Export the shared4 service on an internal cluster IP. In this mode the sharedv4 volume will only be accessible within the cluster via this service.
LOADBALANCER 3 Expose the sharedv4 service on cloud provider's load balancer. Applicable when running in cloud. In this mode the sharedv4 volume can be accessed from outside the cluster.
NONE 4 Do not use sharedv4 service feature. Use legacy sharedv4 volumes instead.

Status

Name Number Description
STATUS_NONE 0 none
STATUS_INIT 1 none
STATUS_OK 2 none
STATUS_OFFLINE 3 none
STATUS_ERROR 4 none
STATUS_NOT_IN_QUORUM 5 none
STATUS_DECOMMISSION 6 none
STATUS_MAINTENANCE 7 none
STATUS_STORAGE_DOWN 8 none
STATUS_STORAGE_DEGRADED 9 none
STATUS_NEEDS_REBOOT 10 none
STATUS_STORAGE_REBALANCE 11 none
STATUS_STORAGE_DRIVE_REPLACE 12 none
STATUS_NOT_IN_QUORUM_NO_STORAGE 13 none
STATUS_POOLMAINTENANCE 14 none
STATUS_MAX 15 Add statuses before MAX and update the number for MAX

StorageMedium

Name Number Description
STORAGE_MEDIUM_MAGNETIC 0 Magnetic spinning disk.
STORAGE_MEDIUM_SSD 1 SSD disk
STORAGE_MEDIUM_NVME 2 NVME disk

StorageNode.SecurityStatus

Name Number Description
UNSPECIFIED 0 Security status type is unknown
UNSECURED 1 Node is unsecure
SECURED 2 Node is secured with authentication and authorization
SECURED_ALLOW_SECURITY_REMOVAL 3 Node is secured, but in the process of removing security. This state allows other unsecured nodes to join the cluster since the cluster is in the process of removing secuirty authenticaiton and authorization.

StorageRebalanceAudit.StorageRebalanceAction

StorageRebalanceAction describes type of rebalance action

Name Number Description
ADD_REPLICA 0 Indicates new replica was added
REMOVE_REPLICA 1 Indicates existing replica was removed

StorageRebalanceJobState

StorageRebalanceJobState is an enum for state of the current rebalance operation

Name Number Description
PENDING 0 Pending indicates job is still pending and has not started work
RUNNING 1 Running indicates job is actively running
DONE 2 Done indicates job has finished processing
PAUSED 3 Paused indicates job is paused
CANCELLED 4 Cancelled indicates job is cancelled

StorageRebalanceTriggerThreshold.Metric

Metric is an enum that defines the metric to use for rebalance

Name Number Description
PROVISION_SPACE 0 ProvisionSpace indicates rebalance for provisioned space
USED_SPACE 1 UsedSpace indicates rebalance for used space

StorageRebalanceTriggerThreshold.Type

Type is an enum that defines the type fo the trigger threshold

Name Number Description
ABSOLUTE_PERCENT 0 AbsolutePercent indicates absolute percent comparison. Example, 75 % used of capacity, or 50 % provisioned of capacity.
DELTA_MEAN_PERCENT 1 DeltaMeanPercent indicates mean percent comparision threshold. Example, 10 % more than mean for cluster.

StorageRebalanceWorkSummary.Type

Type is an enum to indicate the type of work summary

Name Number Description
UnbalancedPools 0 summary for unbalanced pools
UnbalancedVolumes 1 summary for unbalanced volumes
UnbalancedProvisionedSpaceBytes 2 summary for unbalanced provisioned space
UnbalancedUsedSpaceBytes 3 summary for unbalanced used space

VolumeActionParam

Name Number Description
VOLUME_ACTION_PARAM_NONE 0 none
VOLUME_ACTION_PARAM_OFF 1 Maps to the boolean value false
VOLUME_ACTION_PARAM_ON 2 Maps to the boolean value true.

VolumeSpecPolicy.PolicyOp

This defines an operator for the policy comparisons

Name Number Description
Equal 0 Policy will make sure the value must be equal
Minimum 1 Policy will make sure the requested value must be greater than or equal
Maximum 2 Policy will make sure the requested value must be less than or equal

VolumeState

VolumeState represents the state of a volume.

Name Number Description
VOLUME_STATE_NONE 0 none
VOLUME_STATE_PENDING 1 Volume is transitioning to new state
VOLUME_STATE_AVAILABLE 2 Volume is ready to be assigned to a container
VOLUME_STATE_ATTACHED 3 Volume is attached to container
VOLUME_STATE_DETACHED 4 Volume is detached but associated with a container
VOLUME_STATE_DETATCHING 5 Volume detach is in progress
VOLUME_STATE_ERROR 6 Volume is in error state
VOLUME_STATE_DELETED 7 Volume is deleted, it will remain in this state while resources are asynchronously reclaimed
VOLUME_STATE_TRY_DETACHING 8 Volume is trying to be detached
VOLUME_STATE_RESTORE 9 Volume is undergoing restore

VolumeStatus

VolumeStatus represents a health status for a volume.

Name Number Description
VOLUME_STATUS_NONE 0 none
VOLUME_STATUS_NOT_PRESENT 1 Volume is not present
VOLUME_STATUS_UP 2 Volume is healthy
VOLUME_STATUS_DOWN 3 Volume is in fail mode
VOLUME_STATUS_DEGRADED 4 Volume is up but with degraded performance In a RAID group, this may indicate a problem with one or more drives

Xattr.Value

Name Number Description
UNSPECIFIED 0 Value is uninitialized or unknown
COW_ON_DEMAND 1 Enable on-demand copy-on-write on the volume

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type

double
double double float

float
float float float

int32
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int

int64
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long

uint32
Uses variable-length encoding. uint32 int int/long

uint64
Uses variable-length encoding. uint64 long int/long

sint32
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int

sint64
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long

fixed32
Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int

fixed64
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long

sfixed32
Always four bytes. int32 int int

sfixed64
Always eight bytes. int64 long int/long

bool
bool boolean boolean

string
A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode

bytes
May contain any arbitrary sequence of bytes. string ByteString str