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.

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

SchedDelete

rpc SchedDelete(SdkCloudBackupSchedDeleteRequest) SdkCloudBackupSchedDeleteResponse

Delete cloud backup schedule

SchedEnumerate

rpc SchedEnumerate(SdkCloudBackupSchedEnumerateRequest) SdkCloudBackupSchedEnumerateResponse

Enumerate cloud backup schedules

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

Golang
id, err := client.Create(context.Background(), &api.SdkClusterPairCreateRequest {
  Request : &api.ClusterPairCreateRequest {
                 RemoteClusterIp: "127.0.0.1",
                 RemoteClusterPort: 12345,
                 RemoteClusterToken: "<Auth-Token>",
                 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

Golang
Python
id, err := client.Create(context.Background(), &api.SdkCredentialCreateRequest{
    Name: "awscred",
    CredentialType: &api.SdkCredentialCreateRequest_AwsCredential{
      AwsCredential: &api.SdkAwsCredentialRequest{
      AccessKey: "dummy-access",
      SecretKey: "dummy-secret",
      Endpoint:  "dummy-endpoint",
      Region:    "dummy-region",
    },
  },
})
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')))

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

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.

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

Inspect the status of migration operation

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

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

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

Golang
Python
id, err := client.Create(context.Background(), &api.SdkVolumeCreateRequest{
  Name: "volume-12345-east",
  Spec: &api.VolumeSpec {
    Size: 1234567,
  },
})
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

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

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

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

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

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 |

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

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.

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

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.

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

Report

Field Type Description
directories int64 Directory count
files int64 File count

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

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

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

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

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

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.

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.

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.

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.

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

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

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

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

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.

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

SdkCredentialCreateResponse

Defines a response from creating a credential

Field Type Description
credential_id string Id of the credentials

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
oneof credential_type.aws_credential SdkAwsCredentialResponse Aws credentials
oneof credential_type.azure_credential SdkAzureCredentialResponse Azure credentials
oneof credential_type.google_credential SdkGoogleCredentialResponse Google credentials

SdkCredentialValidateRequest

Defines a request to validate credentials

Field Type Description
credential_id string Id of the credentials

SdkCredentialValidateResponse

Empty response

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

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

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.

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*"]
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

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.

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

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.

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

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

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

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

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

StoragePool.LabelsEntry

Field Type Description
key string none
value string none

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

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

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 vtheis 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 Status is the availability status of this volume.
state VolumeState State is the current runtime state of this volume.
attached_on string AttachedOn is the node instance identifier for clustered systems.
attached_state AttachState AttachedState 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.

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 |

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 Owner

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.

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.

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

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

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

CosType

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

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

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

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

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)

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.

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

SdkCloudBackupOpType

CloudBackup operations types

Name Number Description
SdkCloudBackupOpTypeUnknown 0 Unknown
SdkCloudBackupOpTypeBackupOp 1 Backup
SdkCloudBackupOpTypeRestoreOp 2 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

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

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

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 42 SDK version minor value of this specification
Patch 16 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

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_MAX 14 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

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

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

results matching ""

    No results matching ""