Documentation

Index

Constants

This section is empty.

Variables

View Source
var ControllerServiceCapability_RPC_Type_name = map[int32]string{
	0:  "UNKNOWN",
	1:  "CREATE_DELETE_VOLUME",
	2:  "PUBLISH_UNPUBLISH_VOLUME",
	3:  "LIST_VOLUMES",
	4:  "GET_CAPACITY",
	5:  "CREATE_DELETE_SNAPSHOT",
	6:  "LIST_SNAPSHOTS",
	7:  "CLONE_VOLUME",
	8:  "PUBLISH_READONLY",
	9:  "EXPAND_VOLUME",
	10: "LIST_VOLUMES_PUBLISHED_NODES",
	11: "VOLUME_CONDITION",
	12: "GET_VOLUME",
}
View Source
var ControllerServiceCapability_RPC_Type_value = map[string]int32{
	"UNKNOWN":                      0,
	"CREATE_DELETE_VOLUME":         1,
	"PUBLISH_UNPUBLISH_VOLUME":     2,
	"LIST_VOLUMES":                 3,
	"GET_CAPACITY":                 4,
	"CREATE_DELETE_SNAPSHOT":       5,
	"LIST_SNAPSHOTS":               6,
	"CLONE_VOLUME":                 7,
	"PUBLISH_READONLY":             8,
	"EXPAND_VOLUME":                9,
	"LIST_VOLUMES_PUBLISHED_NODES": 10,
	"VOLUME_CONDITION":             11,
	"GET_VOLUME":                   12,
}
View Source
var E_AlphaEnum = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.EnumOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1060,
	Name:          "csi.v1.alpha_enum",
	Tag:           "varint,1060,opt,name=alpha_enum",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var E_AlphaEnumValue = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.EnumValueOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1060,
	Name:          "csi.v1.alpha_enum_value",
	Tag:           "varint,1060,opt,name=alpha_enum_value",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var E_AlphaField = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.FieldOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1060,
	Name:          "csi.v1.alpha_field",
	Tag:           "varint,1060,opt,name=alpha_field",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var E_AlphaMessage = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.MessageOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1060,
	Name:          "csi.v1.alpha_message",
	Tag:           "varint,1060,opt,name=alpha_message",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var E_AlphaMethod = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.MethodOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1060,
	Name:          "csi.v1.alpha_method",
	Tag:           "varint,1060,opt,name=alpha_method",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var E_AlphaService = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.ServiceOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1060,
	Name:          "csi.v1.alpha_service",
	Tag:           "varint,1060,opt,name=alpha_service",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var E_CsiSecret = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.FieldOptions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         1059,
	Name:          "csi.v1.csi_secret",
	Tag:           "varint,1059,opt,name=csi_secret",
	Filename:      "github.com/container-storage-interface/spec/csi.proto",
}
View Source
var NodeServiceCapability_RPC_Type_name = map[int32]string{
	0: "UNKNOWN",
	1: "STAGE_UNSTAGE_VOLUME",
	2: "GET_VOLUME_STATS",
	3: "EXPAND_VOLUME",
	4: "VOLUME_CONDITION",
}
View Source
var NodeServiceCapability_RPC_Type_value = map[string]int32{
	"UNKNOWN":              0,
	"STAGE_UNSTAGE_VOLUME": 1,
	"GET_VOLUME_STATS":     2,
	"EXPAND_VOLUME":        3,
	"VOLUME_CONDITION":     4,
}
View Source
var PluginCapability_Service_Type_name = map[int32]string{
	0: "UNKNOWN",
	1: "CONTROLLER_SERVICE",
	2: "VOLUME_ACCESSIBILITY_CONSTRAINTS",
}
View Source
var PluginCapability_Service_Type_value = map[string]int32{
	"UNKNOWN":                          0,
	"CONTROLLER_SERVICE":               1,
	"VOLUME_ACCESSIBILITY_CONSTRAINTS": 2,
}
View Source
var PluginCapability_VolumeExpansion_Type_name = map[int32]string{
	0: "UNKNOWN",
	1: "ONLINE",
	2: "OFFLINE",
}
View Source
var PluginCapability_VolumeExpansion_Type_value = map[string]int32{
	"UNKNOWN": 0,
	"ONLINE":  1,
	"OFFLINE": 2,
}
View Source
var VolumeCapability_AccessMode_Mode_name = map[int32]string{
	0: "UNKNOWN",
	1: "SINGLE_NODE_WRITER",
	2: "SINGLE_NODE_READER_ONLY",
	3: "MULTI_NODE_READER_ONLY",
	4: "MULTI_NODE_SINGLE_WRITER",
	5: "MULTI_NODE_MULTI_WRITER",
}
View Source
var VolumeCapability_AccessMode_Mode_value = map[string]int32{
	"UNKNOWN":                  0,
	"SINGLE_NODE_WRITER":       1,
	"SINGLE_NODE_READER_ONLY":  2,
	"MULTI_NODE_READER_ONLY":   3,
	"MULTI_NODE_SINGLE_WRITER": 4,
	"MULTI_NODE_MULTI_WRITER":  5,
}
View Source
var VolumeUsage_Unit_name = map[int32]string{
	0: "UNKNOWN",
	1: "BYTES",
	2: "INODES",
}
View Source
var VolumeUsage_Unit_value = map[string]int32{
	"UNKNOWN": 0,
	"BYTES":   1,
	"INODES":  2,
}

Functions

func RegisterControllerServer

func RegisterControllerServer(s *grpc.Server, srv ControllerServer)

func RegisterIdentityServer

func RegisterIdentityServer(s *grpc.Server, srv IdentityServer)

func RegisterNodeServer

func RegisterNodeServer(s *grpc.Server, srv NodeServer)

Types

type CapacityRange

type CapacityRange struct {
	// Volume MUST be at least this big. This field is OPTIONAL.
	// A value of 0 is equal to an unspecified field value.
	// The value of this field MUST NOT be negative.
	RequiredBytes int64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes,proto3" json:"required_bytes,omitempty"`
	// Volume MUST not be bigger than this. This field is OPTIONAL.
	// A value of 0 is equal to an unspecified field value.
	// The value of this field MUST NOT be negative.
	LimitBytes           int64    `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes,proto3" json:"limit_bytes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

    The capacity of the storage space in bytes. To specify an exact size, `required_bytes` and `limit_bytes` SHALL be set to the same value. At least one of the these fields MUST be specified.

    func (*CapacityRange) Descriptor

    func (*CapacityRange) Descriptor() ([]byte, []int)

    func (*CapacityRange) GetLimitBytes

    func (m *CapacityRange) GetLimitBytes() int64

    func (*CapacityRange) GetRequiredBytes

    func (m *CapacityRange) GetRequiredBytes() int64

    func (*CapacityRange) ProtoMessage

    func (*CapacityRange) ProtoMessage()

    func (*CapacityRange) Reset

    func (m *CapacityRange) Reset()

    func (*CapacityRange) String

    func (m *CapacityRange) String() string

    func (*CapacityRange) XXX_DiscardUnknown

    func (m *CapacityRange) XXX_DiscardUnknown()

    func (*CapacityRange) XXX_Marshal

    func (m *CapacityRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

    func (*CapacityRange) XXX_Merge

    func (m *CapacityRange) XXX_Merge(src proto.Message)

    func (*CapacityRange) XXX_Size

    func (m *CapacityRange) XXX_Size() int

    func (*CapacityRange) XXX_Unmarshal

    func (m *CapacityRange) XXX_Unmarshal(b []byte) error

    type ControllerClient

    type ControllerClient interface {
    	CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error)
    	DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error)
    	ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error)
    	ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error)
    	ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error)
    	ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error)
    	GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error)
    	ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error)
    	CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error)
    	DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error)
    	ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error)
    	ControllerExpandVolume(ctx context.Context, in *ControllerExpandVolumeRequest, opts ...grpc.CallOption) (*ControllerExpandVolumeResponse, error)
    	ControllerGetVolume(ctx context.Context, in *ControllerGetVolumeRequest, opts ...grpc.CallOption) (*ControllerGetVolumeResponse, error)
    }

      ControllerClient is the client API for Controller service.

      For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

      func NewControllerClient

      func NewControllerClient(cc *grpc.ClientConn) ControllerClient

      type ControllerExpandVolumeRequest

      type ControllerExpandVolumeRequest struct {
      	// The ID of the volume to expand. This field is REQUIRED.
      	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
      	// This allows CO to specify the capacity requirements of the volume
      	// after expansion. This field is REQUIRED.
      	CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"`
      	// Secrets required by the plugin for expanding the volume.
      	// This field is OPTIONAL.
      	Secrets map[string]string `` /* 155-byte string literal not displayed */
      	// Volume capability describing how the CO intends to use this volume.
      	// This allows SP to determine if volume is being used as a block
      	// device or mounted file system. For example - if volume is
      	// being used as a block device - the SP MAY set
      	// node_expansion_required to false in ControllerExpandVolumeResponse
      	// to skip invocation of NodeExpandVolume on the node by the CO.
      	// This is an OPTIONAL field.
      	VolumeCapability     *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"`
      	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
      	XXX_unrecognized     []byte            `json:"-"`
      	XXX_sizecache        int32             `json:"-"`
      }

      func (*ControllerExpandVolumeRequest) Descriptor

      func (*ControllerExpandVolumeRequest) Descriptor() ([]byte, []int)

      func (*ControllerExpandVolumeRequest) GetCapacityRange

      func (m *ControllerExpandVolumeRequest) GetCapacityRange() *CapacityRange

      func (*ControllerExpandVolumeRequest) GetSecrets

      func (m *ControllerExpandVolumeRequest) GetSecrets() map[string]string

      func (*ControllerExpandVolumeRequest) GetVolumeCapability

      func (m *ControllerExpandVolumeRequest) GetVolumeCapability() *VolumeCapability

      func (*ControllerExpandVolumeRequest) GetVolumeId

      func (m *ControllerExpandVolumeRequest) GetVolumeId() string

      func (*ControllerExpandVolumeRequest) ProtoMessage

      func (*ControllerExpandVolumeRequest) ProtoMessage()

      func (*ControllerExpandVolumeRequest) Reset

      func (m *ControllerExpandVolumeRequest) Reset()

      func (*ControllerExpandVolumeRequest) String

      func (*ControllerExpandVolumeRequest) XXX_DiscardUnknown

      func (m *ControllerExpandVolumeRequest) XXX_DiscardUnknown()

      func (*ControllerExpandVolumeRequest) XXX_Marshal

      func (m *ControllerExpandVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerExpandVolumeRequest) XXX_Merge

      func (m *ControllerExpandVolumeRequest) XXX_Merge(src proto.Message)

      func (*ControllerExpandVolumeRequest) XXX_Size

      func (m *ControllerExpandVolumeRequest) XXX_Size() int

      func (*ControllerExpandVolumeRequest) XXX_Unmarshal

      func (m *ControllerExpandVolumeRequest) XXX_Unmarshal(b []byte) error

      type ControllerExpandVolumeResponse

      type ControllerExpandVolumeResponse struct {
      	// Capacity of volume after expansion. This field is REQUIRED.
      	CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"`
      	// Whether node expansion is required for the volume. When true
      	// the CO MUST make NodeExpandVolume RPC call on the node. This field
      	// is REQUIRED.
      	NodeExpansionRequired bool     `` /* 127-byte string literal not displayed */
      	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
      	XXX_unrecognized      []byte   `json:"-"`
      	XXX_sizecache         int32    `json:"-"`
      }

      func (*ControllerExpandVolumeResponse) Descriptor

      func (*ControllerExpandVolumeResponse) Descriptor() ([]byte, []int)

      func (*ControllerExpandVolumeResponse) GetCapacityBytes

      func (m *ControllerExpandVolumeResponse) GetCapacityBytes() int64

      func (*ControllerExpandVolumeResponse) GetNodeExpansionRequired

      func (m *ControllerExpandVolumeResponse) GetNodeExpansionRequired() bool

      func (*ControllerExpandVolumeResponse) ProtoMessage

      func (*ControllerExpandVolumeResponse) ProtoMessage()

      func (*ControllerExpandVolumeResponse) Reset

      func (m *ControllerExpandVolumeResponse) Reset()

      func (*ControllerExpandVolumeResponse) String

      func (*ControllerExpandVolumeResponse) XXX_DiscardUnknown

      func (m *ControllerExpandVolumeResponse) XXX_DiscardUnknown()

      func (*ControllerExpandVolumeResponse) XXX_Marshal

      func (m *ControllerExpandVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerExpandVolumeResponse) XXX_Merge

      func (m *ControllerExpandVolumeResponse) XXX_Merge(src proto.Message)

      func (*ControllerExpandVolumeResponse) XXX_Size

      func (m *ControllerExpandVolumeResponse) XXX_Size() int

      func (*ControllerExpandVolumeResponse) XXX_Unmarshal

      func (m *ControllerExpandVolumeResponse) XXX_Unmarshal(b []byte) error

      type ControllerGetCapabilitiesRequest

      type ControllerGetCapabilitiesRequest struct {
      	XXX_NoUnkeyedLiteral struct{} `json:"-"`
      	XXX_unrecognized     []byte   `json:"-"`
      	XXX_sizecache        int32    `json:"-"`
      }

      func (*ControllerGetCapabilitiesRequest) Descriptor

      func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int)

      func (*ControllerGetCapabilitiesRequest) ProtoMessage

      func (*ControllerGetCapabilitiesRequest) ProtoMessage()

      func (*ControllerGetCapabilitiesRequest) Reset

      func (*ControllerGetCapabilitiesRequest) String

      func (*ControllerGetCapabilitiesRequest) XXX_DiscardUnknown

      func (m *ControllerGetCapabilitiesRequest) XXX_DiscardUnknown()

      func (*ControllerGetCapabilitiesRequest) XXX_Marshal

      func (m *ControllerGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerGetCapabilitiesRequest) XXX_Merge

      func (*ControllerGetCapabilitiesRequest) XXX_Size

      func (m *ControllerGetCapabilitiesRequest) XXX_Size() int

      func (*ControllerGetCapabilitiesRequest) XXX_Unmarshal

      func (m *ControllerGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error

      type ControllerGetCapabilitiesResponse

      type ControllerGetCapabilitiesResponse struct {
      	// All the capabilities that the controller service supports. This
      	// field is OPTIONAL.
      	Capabilities         []*ControllerServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
      	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
      	XXX_unrecognized     []byte                         `json:"-"`
      	XXX_sizecache        int32                          `json:"-"`
      }

      func (*ControllerGetCapabilitiesResponse) Descriptor

      func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int)

      func (*ControllerGetCapabilitiesResponse) GetCapabilities

      func (*ControllerGetCapabilitiesResponse) ProtoMessage

      func (*ControllerGetCapabilitiesResponse) ProtoMessage()

      func (*ControllerGetCapabilitiesResponse) Reset

      func (*ControllerGetCapabilitiesResponse) String

      func (*ControllerGetCapabilitiesResponse) XXX_DiscardUnknown

      func (m *ControllerGetCapabilitiesResponse) XXX_DiscardUnknown()

      func (*ControllerGetCapabilitiesResponse) XXX_Marshal

      func (m *ControllerGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerGetCapabilitiesResponse) XXX_Merge

      func (*ControllerGetCapabilitiesResponse) XXX_Size

      func (m *ControllerGetCapabilitiesResponse) XXX_Size() int

      func (*ControllerGetCapabilitiesResponse) XXX_Unmarshal

      func (m *ControllerGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error

      type ControllerGetVolumeRequest

      type ControllerGetVolumeRequest struct {
      	// The ID of the volume to fetch current volume information for.
      	// This field is REQUIRED.
      	VolumeId             string   `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
      	XXX_NoUnkeyedLiteral struct{} `json:"-"`
      	XXX_unrecognized     []byte   `json:"-"`
      	XXX_sizecache        int32    `json:"-"`
      }

      func (*ControllerGetVolumeRequest) Descriptor

      func (*ControllerGetVolumeRequest) Descriptor() ([]byte, []int)

      func (*ControllerGetVolumeRequest) GetVolumeId

      func (m *ControllerGetVolumeRequest) GetVolumeId() string

      func (*ControllerGetVolumeRequest) ProtoMessage

      func (*ControllerGetVolumeRequest) ProtoMessage()

      func (*ControllerGetVolumeRequest) Reset

      func (m *ControllerGetVolumeRequest) Reset()

      func (*ControllerGetVolumeRequest) String

      func (m *ControllerGetVolumeRequest) String() string

      func (*ControllerGetVolumeRequest) XXX_DiscardUnknown

      func (m *ControllerGetVolumeRequest) XXX_DiscardUnknown()

      func (*ControllerGetVolumeRequest) XXX_Marshal

      func (m *ControllerGetVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerGetVolumeRequest) XXX_Merge

      func (m *ControllerGetVolumeRequest) XXX_Merge(src proto.Message)

      func (*ControllerGetVolumeRequest) XXX_Size

      func (m *ControllerGetVolumeRequest) XXX_Size() int

      func (*ControllerGetVolumeRequest) XXX_Unmarshal

      func (m *ControllerGetVolumeRequest) XXX_Unmarshal(b []byte) error

      type ControllerGetVolumeResponse

      type ControllerGetVolumeResponse struct {
      	// This field is REQUIRED
      	Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"`
      	// This field is REQUIRED.
      	Status               *ControllerGetVolumeResponse_VolumeStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
      	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
      	XXX_unrecognized     []byte                                    `json:"-"`
      	XXX_sizecache        int32                                     `json:"-"`
      }

      func (*ControllerGetVolumeResponse) Descriptor

      func (*ControllerGetVolumeResponse) Descriptor() ([]byte, []int)

      func (*ControllerGetVolumeResponse) GetStatus

      func (*ControllerGetVolumeResponse) GetVolume

      func (m *ControllerGetVolumeResponse) GetVolume() *Volume

      func (*ControllerGetVolumeResponse) ProtoMessage

      func (*ControllerGetVolumeResponse) ProtoMessage()

      func (*ControllerGetVolumeResponse) Reset

      func (m *ControllerGetVolumeResponse) Reset()

      func (*ControllerGetVolumeResponse) String

      func (m *ControllerGetVolumeResponse) String() string

      func (*ControllerGetVolumeResponse) XXX_DiscardUnknown

      func (m *ControllerGetVolumeResponse) XXX_DiscardUnknown()

      func (*ControllerGetVolumeResponse) XXX_Marshal

      func (m *ControllerGetVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerGetVolumeResponse) XXX_Merge

      func (m *ControllerGetVolumeResponse) XXX_Merge(src proto.Message)

      func (*ControllerGetVolumeResponse) XXX_Size

      func (m *ControllerGetVolumeResponse) XXX_Size() int

      func (*ControllerGetVolumeResponse) XXX_Unmarshal

      func (m *ControllerGetVolumeResponse) XXX_Unmarshal(b []byte) error

      type ControllerGetVolumeResponse_VolumeStatus

      type ControllerGetVolumeResponse_VolumeStatus struct {
      	// A list of all the `node_id` of nodes that this volume is
      	// controller published on.
      	// This field is OPTIONAL.
      	// This field MUST be specified if the PUBLISH_UNPUBLISH_VOLUME
      	// controller capability is supported.
      	// published_node_ids MAY include nodes not published to or
      	// reported by the SP. The CO MUST be resilient to that.
      	PublishedNodeIds []string `protobuf:"bytes,1,rep,name=published_node_ids,json=publishedNodeIds,proto3" json:"published_node_ids,omitempty"`
      	// Information about the current condition of the volume.
      	// This field is OPTIONAL.
      	// This field MUST be specified if the
      	// VOLUME_CONDITION controller capability is supported.
      	VolumeCondition      *VolumeCondition `protobuf:"bytes,2,opt,name=volume_condition,json=volumeCondition,proto3" json:"volume_condition,omitempty"`
      	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
      	XXX_unrecognized     []byte           `json:"-"`
      	XXX_sizecache        int32            `json:"-"`
      }

      func (*ControllerGetVolumeResponse_VolumeStatus) Descriptor

      func (*ControllerGetVolumeResponse_VolumeStatus) Descriptor() ([]byte, []int)

      func (*ControllerGetVolumeResponse_VolumeStatus) GetPublishedNodeIds

      func (m *ControllerGetVolumeResponse_VolumeStatus) GetPublishedNodeIds() []string

      func (*ControllerGetVolumeResponse_VolumeStatus) GetVolumeCondition

      func (*ControllerGetVolumeResponse_VolumeStatus) ProtoMessage

      func (*ControllerGetVolumeResponse_VolumeStatus) Reset

      func (*ControllerGetVolumeResponse_VolumeStatus) String

      func (*ControllerGetVolumeResponse_VolumeStatus) XXX_DiscardUnknown

      func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_DiscardUnknown()

      func (*ControllerGetVolumeResponse_VolumeStatus) XXX_Marshal

      func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerGetVolumeResponse_VolumeStatus) XXX_Merge

      func (*ControllerGetVolumeResponse_VolumeStatus) XXX_Size

      func (*ControllerGetVolumeResponse_VolumeStatus) XXX_Unmarshal

      func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_Unmarshal(b []byte) error

      type ControllerPublishVolumeRequest

      type ControllerPublishVolumeRequest struct {
      	// The ID of the volume to be used on a node.
      	// This field is REQUIRED.
      	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
      	// The ID of the node. This field is REQUIRED. The CO SHALL set this
      	// field to match the node ID returned by `NodeGetInfo`.
      	NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
      	// Volume capability describing how the CO intends to use this volume.
      	// SP MUST ensure the CO can use the published volume as described.
      	// Otherwise SP MUST return the appropriate gRPC error code.
      	// This is a REQUIRED field.
      	VolumeCapability *VolumeCapability `protobuf:"bytes,3,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"`
      	// Indicates SP MUST publish the volume in readonly mode.
      	// CO MUST set this field to false if SP does not have the
      	// PUBLISH_READONLY controller capability.
      	// This is a REQUIRED field.
      	Readonly bool `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"`
      	// Secrets required by plugin to complete controller publish volume
      	// request. This field is OPTIONAL. Refer to the
      	// `Secrets Requirements` section on how to use this field.
      	Secrets map[string]string `` /* 155-byte string literal not displayed */
      	// Volume context as returned by SP in
      	// CreateVolumeResponse.Volume.volume_context.
      	// This field is OPTIONAL and MUST match the volume_context of the
      	// volume identified by `volume_id`.
      	VolumeContext        map[string]string `` /* 188-byte string literal not displayed */
      	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
      	XXX_unrecognized     []byte            `json:"-"`
      	XXX_sizecache        int32             `json:"-"`
      }

      func (*ControllerPublishVolumeRequest) Descriptor

      func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int)

      func (*ControllerPublishVolumeRequest) GetNodeId

      func (m *ControllerPublishVolumeRequest) GetNodeId() string

      func (*ControllerPublishVolumeRequest) GetReadonly

      func (m *ControllerPublishVolumeRequest) GetReadonly() bool

      func (*ControllerPublishVolumeRequest) GetSecrets

      func (m *ControllerPublishVolumeRequest) GetSecrets() map[string]string

      func (*ControllerPublishVolumeRequest) GetVolumeCapability

      func (m *ControllerPublishVolumeRequest) GetVolumeCapability() *VolumeCapability

      func (*ControllerPublishVolumeRequest) GetVolumeContext

      func (m *ControllerPublishVolumeRequest) GetVolumeContext() map[string]string

      func (*ControllerPublishVolumeRequest) GetVolumeId

      func (m *ControllerPublishVolumeRequest) GetVolumeId() string

      func (*ControllerPublishVolumeRequest) ProtoMessage

      func (*ControllerPublishVolumeRequest) ProtoMessage()

      func (*ControllerPublishVolumeRequest) Reset

      func (m *ControllerPublishVolumeRequest) Reset()

      func (*ControllerPublishVolumeRequest) String

      func (*ControllerPublishVolumeRequest) XXX_DiscardUnknown

      func (m *ControllerPublishVolumeRequest) XXX_DiscardUnknown()

      func (*ControllerPublishVolumeRequest) XXX_Marshal

      func (m *ControllerPublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerPublishVolumeRequest) XXX_Merge

      func (m *ControllerPublishVolumeRequest) XXX_Merge(src proto.Message)

      func (*ControllerPublishVolumeRequest) XXX_Size

      func (m *ControllerPublishVolumeRequest) XXX_Size() int

      func (*ControllerPublishVolumeRequest) XXX_Unmarshal

      func (m *ControllerPublishVolumeRequest) XXX_Unmarshal(b []byte) error

      type ControllerPublishVolumeResponse

      type ControllerPublishVolumeResponse struct {
      	// Opaque static publish properties of the volume. SP MAY use this
      	// field to ensure subsequent `NodeStageVolume` or `NodePublishVolume`
      	// calls calls have contextual information.
      	// The contents of this field SHALL be opaque to a CO.
      	// The contents of this field SHALL NOT be mutable.
      	// The contents of this field SHALL be safe for the CO to cache.
      	// The contents of this field SHOULD NOT contain sensitive
      	// information.
      	// The contents of this field SHOULD NOT be used for uniquely
      	// identifying a volume. The `volume_id` alone SHOULD be sufficient to
      	// identify the volume.
      	// This field is OPTIONAL and when present MUST be passed to
      	// subsequent `NodeStageVolume` or `NodePublishVolume` calls
      	PublishContext       map[string]string `` /* 191-byte string literal not displayed */
      	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
      	XXX_unrecognized     []byte            `json:"-"`
      	XXX_sizecache        int32             `json:"-"`
      }

      func (*ControllerPublishVolumeResponse) Descriptor

      func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int)

      func (*ControllerPublishVolumeResponse) GetPublishContext

      func (m *ControllerPublishVolumeResponse) GetPublishContext() map[string]string

      func (*ControllerPublishVolumeResponse) ProtoMessage

      func (*ControllerPublishVolumeResponse) ProtoMessage()

      func (*ControllerPublishVolumeResponse) Reset

      func (*ControllerPublishVolumeResponse) String

      func (*ControllerPublishVolumeResponse) XXX_DiscardUnknown

      func (m *ControllerPublishVolumeResponse) XXX_DiscardUnknown()

      func (*ControllerPublishVolumeResponse) XXX_Marshal

      func (m *ControllerPublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

      func (*ControllerPublishVolumeResponse) XXX_Merge

      func (m *ControllerPublishVolumeResponse) XXX_Merge(src proto.Message)

      func (*ControllerPublishVolumeResponse) XXX_Size

      func (m *ControllerPublishVolumeResponse) XXX_Size() int

      func (*ControllerPublishVolumeResponse) XXX_Unmarshal

      func (m *ControllerPublishVolumeResponse) XXX_Unmarshal(b []byte) error

      type ControllerServiceCapability

      type ControllerServiceCapability struct {
      	// Types that are valid to be assigned to Type:
      	//	*ControllerServiceCapability_Rpc
      	Type                 isControllerServiceCapability_Type `protobuf_oneof:"type"`
      	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
      	XXX_unrecognized     []byte                             `json:"-"`
      	XXX_sizecache        int32                              `json:"-"`
      }

        Specifies a capability of the controller service.

        func (*ControllerServiceCapability) Descriptor

        func (*ControllerServiceCapability) Descriptor() ([]byte, []int)

        func (*ControllerServiceCapability) GetRpc

        func (*ControllerServiceCapability) GetType

        func (m *ControllerServiceCapability) GetType() isControllerServiceCapability_Type

        func (*ControllerServiceCapability) ProtoMessage

        func (*ControllerServiceCapability) ProtoMessage()

        func (*ControllerServiceCapability) Reset

        func (m *ControllerServiceCapability) Reset()

        func (*ControllerServiceCapability) String

        func (m *ControllerServiceCapability) String() string

        func (*ControllerServiceCapability) XXX_DiscardUnknown

        func (m *ControllerServiceCapability) XXX_DiscardUnknown()

        func (*ControllerServiceCapability) XXX_Marshal

        func (m *ControllerServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

        func (*ControllerServiceCapability) XXX_Merge

        func (m *ControllerServiceCapability) XXX_Merge(src proto.Message)

        func (*ControllerServiceCapability) XXX_OneofWrappers

        func (*ControllerServiceCapability) XXX_OneofWrappers() []interface{}

          XXX_OneofWrappers is for the internal use of the proto package.

          func (*ControllerServiceCapability) XXX_Size

          func (m *ControllerServiceCapability) XXX_Size() int

          func (*ControllerServiceCapability) XXX_Unmarshal

          func (m *ControllerServiceCapability) XXX_Unmarshal(b []byte) error

          type ControllerServiceCapability_RPC

          type ControllerServiceCapability_RPC struct {
          	Type                 ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.ControllerServiceCapability_RPC_Type" json:"type,omitempty"`
          	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
          	XXX_unrecognized     []byte                               `json:"-"`
          	XXX_sizecache        int32                                `json:"-"`
          }

          func (*ControllerServiceCapability_RPC) Descriptor

          func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int)

          func (*ControllerServiceCapability_RPC) GetType

          func (*ControllerServiceCapability_RPC) ProtoMessage

          func (*ControllerServiceCapability_RPC) ProtoMessage()

          func (*ControllerServiceCapability_RPC) Reset

          func (*ControllerServiceCapability_RPC) String

          func (*ControllerServiceCapability_RPC) XXX_DiscardUnknown

          func (m *ControllerServiceCapability_RPC) XXX_DiscardUnknown()

          func (*ControllerServiceCapability_RPC) XXX_Marshal

          func (m *ControllerServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*ControllerServiceCapability_RPC) XXX_Merge

          func (m *ControllerServiceCapability_RPC) XXX_Merge(src proto.Message)

          func (*ControllerServiceCapability_RPC) XXX_Size

          func (m *ControllerServiceCapability_RPC) XXX_Size() int

          func (*ControllerServiceCapability_RPC) XXX_Unmarshal

          func (m *ControllerServiceCapability_RPC) XXX_Unmarshal(b []byte) error

          type ControllerServiceCapability_RPC_Type

          type ControllerServiceCapability_RPC_Type int32
          const (
          	ControllerServiceCapability_RPC_UNKNOWN                  ControllerServiceCapability_RPC_Type = 0
          	ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME     ControllerServiceCapability_RPC_Type = 1
          	ControllerServiceCapability_RPC_PUBLISH_UNPUBLISH_VOLUME ControllerServiceCapability_RPC_Type = 2
          	ControllerServiceCapability_RPC_LIST_VOLUMES             ControllerServiceCapability_RPC_Type = 3
          	ControllerServiceCapability_RPC_GET_CAPACITY             ControllerServiceCapability_RPC_Type = 4
          	// Currently the only way to consume a snapshot is to create
          	// a volume from it. Therefore plugins supporting
          	// CREATE_DELETE_SNAPSHOT MUST support creating volume from
          	// snapshot.
          	ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT ControllerServiceCapability_RPC_Type = 5
          	ControllerServiceCapability_RPC_LIST_SNAPSHOTS         ControllerServiceCapability_RPC_Type = 6
          	// Plugins supporting volume cloning at the storage level MAY
          	// report this capability. The source volume MUST be managed by
          	// the same plugin. Not all volume sources and parameters
          	// combinations MAY work.
          	ControllerServiceCapability_RPC_CLONE_VOLUME ControllerServiceCapability_RPC_Type = 7
          	// Indicates the SP supports ControllerPublishVolume.readonly
          	// field.
          	ControllerServiceCapability_RPC_PUBLISH_READONLY ControllerServiceCapability_RPC_Type = 8
          	// See VolumeExpansion for details.
          	ControllerServiceCapability_RPC_EXPAND_VOLUME ControllerServiceCapability_RPC_Type = 9
          	// Indicates the SP supports the
          	// ListVolumesResponse.entry.published_nodes field
          	ControllerServiceCapability_RPC_LIST_VOLUMES_PUBLISHED_NODES ControllerServiceCapability_RPC_Type = 10
          	// Indicates that the Controller service can report volume
          	// conditions.
          	// An SP MAY implement `VolumeCondition` in only the Controller
          	// Plugin, only the Node Plugin, or both.
          	// If `VolumeCondition` is implemented in both the Controller and
          	// Node Plugins, it SHALL report from different perspectives.
          	// If for some reason Controller and Node Plugins report
          	// misaligned volume conditions, CO SHALL assume the worst case
          	// is the truth.
          	// Note that, for alpha, `VolumeCondition` is intended be
          	// informative for humans only, not for automation.
          	ControllerServiceCapability_RPC_VOLUME_CONDITION ControllerServiceCapability_RPC_Type = 11
          	// Indicates the SP supports the ControllerGetVolume RPC.
          	// This enables COs to, for example, fetch per volume
          	// condition after a volume is provisioned.
          	ControllerServiceCapability_RPC_GET_VOLUME ControllerServiceCapability_RPC_Type = 12
          )

          func (ControllerServiceCapability_RPC_Type) EnumDescriptor

          func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int)

          func (ControllerServiceCapability_RPC_Type) String

          type ControllerServiceCapability_Rpc

          type ControllerServiceCapability_Rpc struct {
          	Rpc *ControllerServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"`
          }

          type ControllerUnpublishVolumeRequest

          type ControllerUnpublishVolumeRequest struct {
          	// The ID of the volume. This field is REQUIRED.
          	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
          	// The ID of the node. This field is OPTIONAL. The CO SHOULD set this
          	// field to match the node ID returned by `NodeGetInfo` or leave it
          	// unset. If the value is set, the SP MUST unpublish the volume from
          	// the specified node. If the value is unset, the SP MUST unpublish
          	// the volume from all nodes it is published to.
          	NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
          	// Secrets required by plugin to complete controller unpublish volume
          	// request. This SHOULD be the same secrets passed to the
          	// ControllerPublishVolume call for the specified volume.
          	// This field is OPTIONAL. Refer to the `Secrets Requirements`
          	// section on how to use this field.
          	Secrets              map[string]string `` /* 155-byte string literal not displayed */
          	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
          	XXX_unrecognized     []byte            `json:"-"`
          	XXX_sizecache        int32             `json:"-"`
          }

          func (*ControllerUnpublishVolumeRequest) Descriptor

          func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int)

          func (*ControllerUnpublishVolumeRequest) GetNodeId

          func (*ControllerUnpublishVolumeRequest) GetSecrets

          func (m *ControllerUnpublishVolumeRequest) GetSecrets() map[string]string

          func (*ControllerUnpublishVolumeRequest) GetVolumeId

          func (m *ControllerUnpublishVolumeRequest) GetVolumeId() string

          func (*ControllerUnpublishVolumeRequest) ProtoMessage

          func (*ControllerUnpublishVolumeRequest) ProtoMessage()

          func (*ControllerUnpublishVolumeRequest) Reset

          func (*ControllerUnpublishVolumeRequest) String

          func (*ControllerUnpublishVolumeRequest) XXX_DiscardUnknown

          func (m *ControllerUnpublishVolumeRequest) XXX_DiscardUnknown()

          func (*ControllerUnpublishVolumeRequest) XXX_Marshal

          func (m *ControllerUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*ControllerUnpublishVolumeRequest) XXX_Merge

          func (*ControllerUnpublishVolumeRequest) XXX_Size

          func (m *ControllerUnpublishVolumeRequest) XXX_Size() int

          func (*ControllerUnpublishVolumeRequest) XXX_Unmarshal

          func (m *ControllerUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error

          type ControllerUnpublishVolumeResponse

          type ControllerUnpublishVolumeResponse struct {
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*ControllerUnpublishVolumeResponse) Descriptor

          func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int)

          func (*ControllerUnpublishVolumeResponse) ProtoMessage

          func (*ControllerUnpublishVolumeResponse) ProtoMessage()

          func (*ControllerUnpublishVolumeResponse) Reset

          func (*ControllerUnpublishVolumeResponse) String

          func (*ControllerUnpublishVolumeResponse) XXX_DiscardUnknown

          func (m *ControllerUnpublishVolumeResponse) XXX_DiscardUnknown()

          func (*ControllerUnpublishVolumeResponse) XXX_Marshal

          func (m *ControllerUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*ControllerUnpublishVolumeResponse) XXX_Merge

          func (*ControllerUnpublishVolumeResponse) XXX_Size

          func (m *ControllerUnpublishVolumeResponse) XXX_Size() int

          func (*ControllerUnpublishVolumeResponse) XXX_Unmarshal

          func (m *ControllerUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error

          type CreateSnapshotRequest

          type CreateSnapshotRequest struct {
          	// The ID of the source volume to be snapshotted.
          	// This field is REQUIRED.
          	SourceVolumeId string `protobuf:"bytes,1,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"`
          	// The suggested name for the snapshot. This field is REQUIRED for
          	// idempotency.
          	// Any Unicode string that conforms to the length limit is allowed
          	// except those containing the following banned characters:
          	// U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F.
          	// (These are control characters other than commonly used whitespace.)
          	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
          	// Secrets required by plugin to complete snapshot creation request.
          	// This field is OPTIONAL. Refer to the `Secrets Requirements`
          	// section on how to use this field.
          	Secrets map[string]string `` /* 155-byte string literal not displayed */
          	// Plugin specific parameters passed in as opaque key-value pairs.
          	// This field is OPTIONAL. The Plugin is responsible for parsing and
          	// validating these parameters. COs will treat these as opaque.
          	// Use cases for opaque parameters:
          	// - Specify a policy to automatically clean up the snapshot.
          	// - Specify an expiration date for the snapshot.
          	// - Specify whether the snapshot is readonly or read/write.
          	// - Specify if the snapshot should be replicated to some place.
          	// - Specify primary or secondary for replication systems that
          	//   support snapshotting only on primary.
          	Parameters           map[string]string `` /* 161-byte string literal not displayed */
          	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
          	XXX_unrecognized     []byte            `json:"-"`
          	XXX_sizecache        int32             `json:"-"`
          }

          func (*CreateSnapshotRequest) Descriptor

          func (*CreateSnapshotRequest) Descriptor() ([]byte, []int)

          func (*CreateSnapshotRequest) GetName

          func (m *CreateSnapshotRequest) GetName() string

          func (*CreateSnapshotRequest) GetParameters

          func (m *CreateSnapshotRequest) GetParameters() map[string]string

          func (*CreateSnapshotRequest) GetSecrets

          func (m *CreateSnapshotRequest) GetSecrets() map[string]string

          func (*CreateSnapshotRequest) GetSourceVolumeId

          func (m *CreateSnapshotRequest) GetSourceVolumeId() string

          func (*CreateSnapshotRequest) ProtoMessage

          func (*CreateSnapshotRequest) ProtoMessage()

          func (*CreateSnapshotRequest) Reset

          func (m *CreateSnapshotRequest) Reset()

          func (*CreateSnapshotRequest) String

          func (m *CreateSnapshotRequest) String() string

          func (*CreateSnapshotRequest) XXX_DiscardUnknown

          func (m *CreateSnapshotRequest) XXX_DiscardUnknown()

          func (*CreateSnapshotRequest) XXX_Marshal

          func (m *CreateSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*CreateSnapshotRequest) XXX_Merge

          func (m *CreateSnapshotRequest) XXX_Merge(src proto.Message)

          func (*CreateSnapshotRequest) XXX_Size

          func (m *CreateSnapshotRequest) XXX_Size() int

          func (*CreateSnapshotRequest) XXX_Unmarshal

          func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error

          type CreateSnapshotResponse

          type CreateSnapshotResponse struct {
          	// Contains all attributes of the newly created snapshot that are
          	// relevant to the CO along with information required by the Plugin
          	// to uniquely identify the snapshot. This field is REQUIRED.
          	Snapshot             *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
          	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
          	XXX_unrecognized     []byte    `json:"-"`
          	XXX_sizecache        int32     `json:"-"`
          }

          func (*CreateSnapshotResponse) Descriptor

          func (*CreateSnapshotResponse) Descriptor() ([]byte, []int)

          func (*CreateSnapshotResponse) GetSnapshot

          func (m *CreateSnapshotResponse) GetSnapshot() *Snapshot

          func (*CreateSnapshotResponse) ProtoMessage

          func (*CreateSnapshotResponse) ProtoMessage()

          func (*CreateSnapshotResponse) Reset

          func (m *CreateSnapshotResponse) Reset()

          func (*CreateSnapshotResponse) String

          func (m *CreateSnapshotResponse) String() string

          func (*CreateSnapshotResponse) XXX_DiscardUnknown

          func (m *CreateSnapshotResponse) XXX_DiscardUnknown()

          func (*CreateSnapshotResponse) XXX_Marshal

          func (m *CreateSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*CreateSnapshotResponse) XXX_Merge

          func (m *CreateSnapshotResponse) XXX_Merge(src proto.Message)

          func (*CreateSnapshotResponse) XXX_Size

          func (m *CreateSnapshotResponse) XXX_Size() int

          func (*CreateSnapshotResponse) XXX_Unmarshal

          func (m *CreateSnapshotResponse) XXX_Unmarshal(b []byte) error

          type CreateVolumeRequest

          type CreateVolumeRequest struct {
          	// The suggested name for the storage space. This field is REQUIRED.
          	// It serves two purposes:
          	// 1) Idempotency - This name is generated by the CO to achieve
          	//    idempotency.  The Plugin SHOULD ensure that multiple
          	//    `CreateVolume` calls for the same name do not result in more
          	//    than one piece of storage provisioned corresponding to that
          	//    name. If a Plugin is unable to enforce idempotency, the CO's
          	//    error recovery logic could result in multiple (unused) volumes
          	//    being provisioned.
          	//    In the case of error, the CO MUST handle the gRPC error codes
          	//    per the recovery behavior defined in the "CreateVolume Errors"
          	//    section below.
          	//    The CO is responsible for cleaning up volumes it provisioned
          	//    that it no longer needs. If the CO is uncertain whether a volume
          	//    was provisioned or not when a `CreateVolume` call fails, the CO
          	//    MAY call `CreateVolume` again, with the same name, to ensure the
          	//    volume exists and to retrieve the volume's `volume_id` (unless
          	//    otherwise prohibited by "CreateVolume Errors").
          	// 2) Suggested name - Some storage systems allow callers to specify
          	//    an identifier by which to refer to the newly provisioned
          	//    storage. If a storage system supports this, it can optionally
          	//    use this name as the identifier for the new volume.
          	// Any Unicode string that conforms to the length limit is allowed
          	// except those containing the following banned characters:
          	// U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F.
          	// (These are control characters other than commonly used whitespace.)
          	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
          	// This field is OPTIONAL. This allows the CO to specify the capacity
          	// requirement of the volume to be provisioned. If not specified, the
          	// Plugin MAY choose an implementation-defined capacity range. If
          	// specified it MUST always be honored, even when creating volumes
          	// from a source; which MAY force some backends to internally extend
          	// the volume after creating it.
          	CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"`
          	// The capabilities that the provisioned volume MUST have. SP MUST
          	// provision a volume that will satisfy ALL of the capabilities
          	// specified in this list. Otherwise SP MUST return the appropriate
          	// gRPC error code.
          	// The Plugin MUST assume that the CO MAY use the provisioned volume
          	// with ANY of the capabilities specified in this list.
          	// For example, a CO MAY specify two volume capabilities: one with
          	// access mode SINGLE_NODE_WRITER and another with access mode
          	// MULTI_NODE_READER_ONLY. In this case, the SP MUST verify that the
          	// provisioned volume can be used in either mode.
          	// This also enables the CO to do early validation: If ANY of the
          	// specified volume capabilities are not supported by the SP, the call
          	// MUST return the appropriate gRPC error code.
          	// This field is REQUIRED.
          	VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"`
          	// Plugin specific parameters passed in as opaque key-value pairs.
          	// This field is OPTIONAL. The Plugin is responsible for parsing and
          	// validating these parameters. COs will treat these as opaque.
          	Parameters map[string]string `` /* 161-byte string literal not displayed */
          	// Secrets required by plugin to complete volume creation request.
          	// This field is OPTIONAL. Refer to the `Secrets Requirements`
          	// section on how to use this field.
          	Secrets map[string]string `` /* 155-byte string literal not displayed */
          	// If specified, the new volume will be pre-populated with data from
          	// this source. This field is OPTIONAL.
          	VolumeContentSource *VolumeContentSource `protobuf:"bytes,6,opt,name=volume_content_source,json=volumeContentSource,proto3" json:"volume_content_source,omitempty"`
          	// Specifies where (regions, zones, racks, etc.) the provisioned
          	// volume MUST be accessible from.
          	// An SP SHALL advertise the requirements for topological
          	// accessibility information in documentation. COs SHALL only specify
          	// topological accessibility information supported by the SP.
          	// This field is OPTIONAL.
          	// This field SHALL NOT be specified unless the SP has the
          	// VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability.
          	// If this field is not specified and the SP has the
          	// VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY
          	// choose where the provisioned volume is accessible from.
          	AccessibilityRequirements *TopologyRequirement `` /* 136-byte string literal not displayed */
          	XXX_NoUnkeyedLiteral      struct{}             `json:"-"`
          	XXX_unrecognized          []byte               `json:"-"`
          	XXX_sizecache             int32                `json:"-"`
          }

          func (*CreateVolumeRequest) Descriptor

          func (*CreateVolumeRequest) Descriptor() ([]byte, []int)

          func (*CreateVolumeRequest) GetAccessibilityRequirements

          func (m *CreateVolumeRequest) GetAccessibilityRequirements() *TopologyRequirement

          func (*CreateVolumeRequest) GetCapacityRange

          func (m *CreateVolumeRequest) GetCapacityRange() *CapacityRange

          func (*CreateVolumeRequest) GetName

          func (m *CreateVolumeRequest) GetName() string

          func (*CreateVolumeRequest) GetParameters

          func (m *CreateVolumeRequest) GetParameters() map[string]string

          func (*CreateVolumeRequest) GetSecrets

          func (m *CreateVolumeRequest) GetSecrets() map[string]string

          func (*CreateVolumeRequest) GetVolumeCapabilities

          func (m *CreateVolumeRequest) GetVolumeCapabilities() []*VolumeCapability

          func (*CreateVolumeRequest) GetVolumeContentSource

          func (m *CreateVolumeRequest) GetVolumeContentSource() *VolumeContentSource

          func (*CreateVolumeRequest) ProtoMessage

          func (*CreateVolumeRequest) ProtoMessage()

          func (*CreateVolumeRequest) Reset

          func (m *CreateVolumeRequest) Reset()

          func (*CreateVolumeRequest) String

          func (m *CreateVolumeRequest) String() string

          func (*CreateVolumeRequest) XXX_DiscardUnknown

          func (m *CreateVolumeRequest) XXX_DiscardUnknown()

          func (*CreateVolumeRequest) XXX_Marshal

          func (m *CreateVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*CreateVolumeRequest) XXX_Merge

          func (m *CreateVolumeRequest) XXX_Merge(src proto.Message)

          func (*CreateVolumeRequest) XXX_Size

          func (m *CreateVolumeRequest) XXX_Size() int

          func (*CreateVolumeRequest) XXX_Unmarshal

          func (m *CreateVolumeRequest) XXX_Unmarshal(b []byte) error

          type CreateVolumeResponse

          type CreateVolumeResponse struct {
          	// Contains all attributes of the newly created volume that are
          	// relevant to the CO along with information required by the Plugin
          	// to uniquely identify the volume. This field is REQUIRED.
          	Volume               *Volume  `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"`
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*CreateVolumeResponse) Descriptor

          func (*CreateVolumeResponse) Descriptor() ([]byte, []int)

          func (*CreateVolumeResponse) GetVolume

          func (m *CreateVolumeResponse) GetVolume() *Volume

          func (*CreateVolumeResponse) ProtoMessage

          func (*CreateVolumeResponse) ProtoMessage()

          func (*CreateVolumeResponse) Reset

          func (m *CreateVolumeResponse) Reset()

          func (*CreateVolumeResponse) String

          func (m *CreateVolumeResponse) String() string

          func (*CreateVolumeResponse) XXX_DiscardUnknown

          func (m *CreateVolumeResponse) XXX_DiscardUnknown()

          func (*CreateVolumeResponse) XXX_Marshal

          func (m *CreateVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*CreateVolumeResponse) XXX_Merge

          func (m *CreateVolumeResponse) XXX_Merge(src proto.Message)

          func (*CreateVolumeResponse) XXX_Size

          func (m *CreateVolumeResponse) XXX_Size() int

          func (*CreateVolumeResponse) XXX_Unmarshal

          func (m *CreateVolumeResponse) XXX_Unmarshal(b []byte) error

          type DeleteSnapshotRequest

          type DeleteSnapshotRequest struct {
          	// The ID of the snapshot to be deleted.
          	// This field is REQUIRED.
          	SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
          	// Secrets required by plugin to complete snapshot deletion request.
          	// This field is OPTIONAL. Refer to the `Secrets Requirements`
          	// section on how to use this field.
          	Secrets              map[string]string `` /* 155-byte string literal not displayed */
          	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
          	XXX_unrecognized     []byte            `json:"-"`
          	XXX_sizecache        int32             `json:"-"`
          }

          func (*DeleteSnapshotRequest) Descriptor

          func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int)

          func (*DeleteSnapshotRequest) GetSecrets

          func (m *DeleteSnapshotRequest) GetSecrets() map[string]string

          func (*DeleteSnapshotRequest) GetSnapshotId

          func (m *DeleteSnapshotRequest) GetSnapshotId() string

          func (*DeleteSnapshotRequest) ProtoMessage

          func (*DeleteSnapshotRequest) ProtoMessage()

          func (*DeleteSnapshotRequest) Reset

          func (m *DeleteSnapshotRequest) Reset()

          func (*DeleteSnapshotRequest) String

          func (m *DeleteSnapshotRequest) String() string

          func (*DeleteSnapshotRequest) XXX_DiscardUnknown

          func (m *DeleteSnapshotRequest) XXX_DiscardUnknown()

          func (*DeleteSnapshotRequest) XXX_Marshal

          func (m *DeleteSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*DeleteSnapshotRequest) XXX_Merge

          func (m *DeleteSnapshotRequest) XXX_Merge(src proto.Message)

          func (*DeleteSnapshotRequest) XXX_Size

          func (m *DeleteSnapshotRequest) XXX_Size() int

          func (*DeleteSnapshotRequest) XXX_Unmarshal

          func (m *DeleteSnapshotRequest) XXX_Unmarshal(b []byte) error

          type DeleteSnapshotResponse

          type DeleteSnapshotResponse struct {
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*DeleteSnapshotResponse) Descriptor

          func (*DeleteSnapshotResponse) Descriptor() ([]byte, []int)

          func (*DeleteSnapshotResponse) ProtoMessage

          func (*DeleteSnapshotResponse) ProtoMessage()

          func (*DeleteSnapshotResponse) Reset

          func (m *DeleteSnapshotResponse) Reset()

          func (*DeleteSnapshotResponse) String

          func (m *DeleteSnapshotResponse) String() string

          func (*DeleteSnapshotResponse) XXX_DiscardUnknown

          func (m *DeleteSnapshotResponse) XXX_DiscardUnknown()

          func (*DeleteSnapshotResponse) XXX_Marshal

          func (m *DeleteSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*DeleteSnapshotResponse) XXX_Merge

          func (m *DeleteSnapshotResponse) XXX_Merge(src proto.Message)

          func (*DeleteSnapshotResponse) XXX_Size

          func (m *DeleteSnapshotResponse) XXX_Size() int

          func (*DeleteSnapshotResponse) XXX_Unmarshal

          func (m *DeleteSnapshotResponse) XXX_Unmarshal(b []byte) error

          type DeleteVolumeRequest

          type DeleteVolumeRequest struct {
          	// The ID of the volume to be deprovisioned.
          	// This field is REQUIRED.
          	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
          	// Secrets required by plugin to complete volume deletion request.
          	// This field is OPTIONAL. Refer to the `Secrets Requirements`
          	// section on how to use this field.
          	Secrets              map[string]string `` /* 155-byte string literal not displayed */
          	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
          	XXX_unrecognized     []byte            `json:"-"`
          	XXX_sizecache        int32             `json:"-"`
          }

          func (*DeleteVolumeRequest) Descriptor

          func (*DeleteVolumeRequest) Descriptor() ([]byte, []int)

          func (*DeleteVolumeRequest) GetSecrets

          func (m *DeleteVolumeRequest) GetSecrets() map[string]string

          func (*DeleteVolumeRequest) GetVolumeId

          func (m *DeleteVolumeRequest) GetVolumeId() string

          func (*DeleteVolumeRequest) ProtoMessage

          func (*DeleteVolumeRequest) ProtoMessage()

          func (*DeleteVolumeRequest) Reset

          func (m *DeleteVolumeRequest) Reset()

          func (*DeleteVolumeRequest) String

          func (m *DeleteVolumeRequest) String() string

          func (*DeleteVolumeRequest) XXX_DiscardUnknown

          func (m *DeleteVolumeRequest) XXX_DiscardUnknown()

          func (*DeleteVolumeRequest) XXX_Marshal

          func (m *DeleteVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*DeleteVolumeRequest) XXX_Merge

          func (m *DeleteVolumeRequest) XXX_Merge(src proto.Message)

          func (*DeleteVolumeRequest) XXX_Size

          func (m *DeleteVolumeRequest) XXX_Size() int

          func (*DeleteVolumeRequest) XXX_Unmarshal

          func (m *DeleteVolumeRequest) XXX_Unmarshal(b []byte) error

          type DeleteVolumeResponse

          type DeleteVolumeResponse struct {
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*DeleteVolumeResponse) Descriptor

          func (*DeleteVolumeResponse) Descriptor() ([]byte, []int)

          func (*DeleteVolumeResponse) ProtoMessage

          func (*DeleteVolumeResponse) ProtoMessage()

          func (*DeleteVolumeResponse) Reset

          func (m *DeleteVolumeResponse) Reset()

          func (*DeleteVolumeResponse) String

          func (m *DeleteVolumeResponse) String() string

          func (*DeleteVolumeResponse) XXX_DiscardUnknown

          func (m *DeleteVolumeResponse) XXX_DiscardUnknown()

          func (*DeleteVolumeResponse) XXX_Marshal

          func (m *DeleteVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*DeleteVolumeResponse) XXX_Merge

          func (m *DeleteVolumeResponse) XXX_Merge(src proto.Message)

          func (*DeleteVolumeResponse) XXX_Size

          func (m *DeleteVolumeResponse) XXX_Size() int

          func (*DeleteVolumeResponse) XXX_Unmarshal

          func (m *DeleteVolumeResponse) XXX_Unmarshal(b []byte) error

          type GetCapacityRequest

          type GetCapacityRequest struct {
          	// If specified, the Plugin SHALL report the capacity of the storage
          	// that can be used to provision volumes that satisfy ALL of the
          	// specified `volume_capabilities`. These are the same
          	// `volume_capabilities` the CO will use in `CreateVolumeRequest`.
          	// This field is OPTIONAL.
          	VolumeCapabilities []*VolumeCapability `protobuf:"bytes,1,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"`
          	// If specified, the Plugin SHALL report the capacity of the storage
          	// that can be used to provision volumes with the given Plugin
          	// specific `parameters`. These are the same `parameters` the CO will
          	// use in `CreateVolumeRequest`. This field is OPTIONAL.
          	Parameters map[string]string `` /* 161-byte string literal not displayed */
          	// If specified, the Plugin SHALL report the capacity of the storage
          	// that can be used to provision volumes that in the specified
          	// `accessible_topology`. This is the same as the
          	// `accessible_topology` the CO returns in a `CreateVolumeResponse`.
          	// This field is OPTIONAL. This field SHALL NOT be set unless the
          	// plugin advertises the VOLUME_ACCESSIBILITY_CONSTRAINTS capability.
          	AccessibleTopology   *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"`
          	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
          	XXX_unrecognized     []byte    `json:"-"`
          	XXX_sizecache        int32     `json:"-"`
          }

          func (*GetCapacityRequest) Descriptor

          func (*GetCapacityRequest) Descriptor() ([]byte, []int)

          func (*GetCapacityRequest) GetAccessibleTopology

          func (m *GetCapacityRequest) GetAccessibleTopology() *Topology

          func (*GetCapacityRequest) GetParameters

          func (m *GetCapacityRequest) GetParameters() map[string]string

          func (*GetCapacityRequest) GetVolumeCapabilities

          func (m *GetCapacityRequest) GetVolumeCapabilities() []*VolumeCapability

          func (*GetCapacityRequest) ProtoMessage

          func (*GetCapacityRequest) ProtoMessage()

          func (*GetCapacityRequest) Reset

          func (m *GetCapacityRequest) Reset()

          func (*GetCapacityRequest) String

          func (m *GetCapacityRequest) String() string

          func (*GetCapacityRequest) XXX_DiscardUnknown

          func (m *GetCapacityRequest) XXX_DiscardUnknown()

          func (*GetCapacityRequest) XXX_Marshal

          func (m *GetCapacityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*GetCapacityRequest) XXX_Merge

          func (m *GetCapacityRequest) XXX_Merge(src proto.Message)

          func (*GetCapacityRequest) XXX_Size

          func (m *GetCapacityRequest) XXX_Size() int

          func (*GetCapacityRequest) XXX_Unmarshal

          func (m *GetCapacityRequest) XXX_Unmarshal(b []byte) error

          type GetCapacityResponse

          type GetCapacityResponse struct {
          	// The available capacity, in bytes, of the storage that can be used
          	// to provision volumes. If `volume_capabilities` or `parameters` is
          	// specified in the request, the Plugin SHALL take those into
          	// consideration when calculating the available capacity of the
          	// storage. This field is REQUIRED.
          	// The value of this field MUST NOT be negative.
          	AvailableCapacity    int64    `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity,proto3" json:"available_capacity,omitempty"`
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*GetCapacityResponse) Descriptor

          func (*GetCapacityResponse) Descriptor() ([]byte, []int)

          func (*GetCapacityResponse) GetAvailableCapacity

          func (m *GetCapacityResponse) GetAvailableCapacity() int64

          func (*GetCapacityResponse) ProtoMessage

          func (*GetCapacityResponse) ProtoMessage()

          func (*GetCapacityResponse) Reset

          func (m *GetCapacityResponse) Reset()

          func (*GetCapacityResponse) String

          func (m *GetCapacityResponse) String() string

          func (*GetCapacityResponse) XXX_DiscardUnknown

          func (m *GetCapacityResponse) XXX_DiscardUnknown()

          func (*GetCapacityResponse) XXX_Marshal

          func (m *GetCapacityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*GetCapacityResponse) XXX_Merge

          func (m *GetCapacityResponse) XXX_Merge(src proto.Message)

          func (*GetCapacityResponse) XXX_Size

          func (m *GetCapacityResponse) XXX_Size() int

          func (*GetCapacityResponse) XXX_Unmarshal

          func (m *GetCapacityResponse) XXX_Unmarshal(b []byte) error

          type GetPluginCapabilitiesRequest

          type GetPluginCapabilitiesRequest struct {
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*GetPluginCapabilitiesRequest) Descriptor

          func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int)

          func (*GetPluginCapabilitiesRequest) ProtoMessage

          func (*GetPluginCapabilitiesRequest) ProtoMessage()

          func (*GetPluginCapabilitiesRequest) Reset

          func (m *GetPluginCapabilitiesRequest) Reset()

          func (*GetPluginCapabilitiesRequest) String

          func (*GetPluginCapabilitiesRequest) XXX_DiscardUnknown

          func (m *GetPluginCapabilitiesRequest) XXX_DiscardUnknown()

          func (*GetPluginCapabilitiesRequest) XXX_Marshal

          func (m *GetPluginCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*GetPluginCapabilitiesRequest) XXX_Merge

          func (m *GetPluginCapabilitiesRequest) XXX_Merge(src proto.Message)

          func (*GetPluginCapabilitiesRequest) XXX_Size

          func (m *GetPluginCapabilitiesRequest) XXX_Size() int

          func (*GetPluginCapabilitiesRequest) XXX_Unmarshal

          func (m *GetPluginCapabilitiesRequest) XXX_Unmarshal(b []byte) error

          type GetPluginCapabilitiesResponse

          type GetPluginCapabilitiesResponse struct {
          	// All the capabilities that the controller service supports. This
          	// field is OPTIONAL.
          	Capabilities         []*PluginCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
          	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
          	XXX_unrecognized     []byte              `json:"-"`
          	XXX_sizecache        int32               `json:"-"`
          }

          func (*GetPluginCapabilitiesResponse) Descriptor

          func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int)

          func (*GetPluginCapabilitiesResponse) GetCapabilities

          func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability

          func (*GetPluginCapabilitiesResponse) ProtoMessage

          func (*GetPluginCapabilitiesResponse) ProtoMessage()

          func (*GetPluginCapabilitiesResponse) Reset

          func (m *GetPluginCapabilitiesResponse) Reset()

          func (*GetPluginCapabilitiesResponse) String

          func (*GetPluginCapabilitiesResponse) XXX_DiscardUnknown

          func (m *GetPluginCapabilitiesResponse) XXX_DiscardUnknown()

          func (*GetPluginCapabilitiesResponse) XXX_Marshal

          func (m *GetPluginCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*GetPluginCapabilitiesResponse) XXX_Merge

          func (m *GetPluginCapabilitiesResponse) XXX_Merge(src proto.Message)

          func (*GetPluginCapabilitiesResponse) XXX_Size

          func (m *GetPluginCapabilitiesResponse) XXX_Size() int

          func (*GetPluginCapabilitiesResponse) XXX_Unmarshal

          func (m *GetPluginCapabilitiesResponse) XXX_Unmarshal(b []byte) error

          type GetPluginInfoRequest

          type GetPluginInfoRequest struct {
          	XXX_NoUnkeyedLiteral struct{} `json:"-"`
          	XXX_unrecognized     []byte   `json:"-"`
          	XXX_sizecache        int32    `json:"-"`
          }

          func (*GetPluginInfoRequest) Descriptor

          func (*GetPluginInfoRequest) Descriptor() ([]byte, []int)

          func (*GetPluginInfoRequest) ProtoMessage

          func (*GetPluginInfoRequest) ProtoMessage()

          func (*GetPluginInfoRequest) Reset

          func (m *GetPluginInfoRequest) Reset()

          func (*GetPluginInfoRequest) String

          func (m *GetPluginInfoRequest) String() string

          func (*GetPluginInfoRequest) XXX_DiscardUnknown

          func (m *GetPluginInfoRequest) XXX_DiscardUnknown()

          func (*GetPluginInfoRequest) XXX_Marshal

          func (m *GetPluginInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*GetPluginInfoRequest) XXX_Merge

          func (m *GetPluginInfoRequest) XXX_Merge(src proto.Message)

          func (*GetPluginInfoRequest) XXX_Size

          func (m *GetPluginInfoRequest) XXX_Size() int

          func (*GetPluginInfoRequest) XXX_Unmarshal

          func (m *GetPluginInfoRequest) XXX_Unmarshal(b []byte) error

          type GetPluginInfoResponse

          type GetPluginInfoResponse struct {
          	// The name MUST follow domain name notation format
          	// (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD
          	// include the plugin's host company name and the plugin name,
          	// to minimize the possibility of collisions. It MUST be 63
          	// characters or less, beginning and ending with an alphanumeric
          	// character ([a-z0-9A-Z]) with dashes (-), dots (.), and
          	// alphanumerics between. This field is REQUIRED.
          	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
          	// This field is REQUIRED. Value of this field is opaque to the CO.
          	VendorVersion string `protobuf:"bytes,2,opt,name=vendor_version,json=vendorVersion,proto3" json:"vendor_version,omitempty"`
          	// This field is OPTIONAL. Values are opaque to the CO.
          	Manifest             map[string]string `` /* 157-byte string literal not displayed */
          	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
          	XXX_unrecognized     []byte            `json:"-"`
          	XXX_sizecache        int32             `json:"-"`
          }

          func (*GetPluginInfoResponse) Descriptor

          func (*GetPluginInfoResponse) Descriptor() ([]byte, []int)

          func (*GetPluginInfoResponse) GetManifest

          func (m *GetPluginInfoResponse) GetManifest() map[string]string

          func (*GetPluginInfoResponse) GetName

          func (m *GetPluginInfoResponse) GetName() string

          func (*GetPluginInfoResponse) GetVendorVersion

          func (m *GetPluginInfoResponse) GetVendorVersion() string

          func (*GetPluginInfoResponse) ProtoMessage

          func (*GetPluginInfoResponse) ProtoMessage()

          func (*GetPluginInfoResponse) Reset

          func (m *GetPluginInfoResponse) Reset()

          func (*GetPluginInfoResponse) String

          func (m *GetPluginInfoResponse) String() string

          func (*GetPluginInfoResponse) XXX_DiscardUnknown

          func (m *GetPluginInfoResponse) XXX_DiscardUnknown()

          func (*GetPluginInfoResponse) XXX_Marshal

          func (m *GetPluginInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

          func (*GetPluginInfoResponse) XXX_Merge

          func (m *GetPluginInfoResponse) XXX_Merge(src proto.Message)

          func (*GetPluginInfoResponse) XXX_Size

          func (m *GetPluginInfoResponse) XXX_Size() int

          func (*GetPluginInfoResponse) XXX_Unmarshal

          func (m *GetPluginInfoResponse) XXX_Unmarshal(b []byte) error

          type IdentityClient

          type IdentityClient interface {
          	GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error)
          	GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error)
          	Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error)
          }

            IdentityClient is the client API for Identity service.

            For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

            func NewIdentityClient

            func NewIdentityClient(cc *grpc.ClientConn) IdentityClient

            type IdentityServer

              IdentityServer is the server API for Identity service.

              type ListSnapshotsRequest

              type ListSnapshotsRequest struct {
              	// If specified (non-zero value), the Plugin MUST NOT return more
              	// entries than this number in the response. If the actual number of
              	// entries is more than this number, the Plugin MUST set `next_token`
              	// in the response which can be used to get the next page of entries
              	// in the subsequent `ListSnapshots` call. This field is OPTIONAL. If
              	// not specified (zero value), it means there is no restriction on the
              	// number of entries that can be returned.
              	// The value of this field MUST NOT be negative.
              	MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"`
              	// A token to specify where to start paginating. Set this field to
              	// `next_token` returned by a previous `ListSnapshots` call to get the
              	// next page of entries. This field is OPTIONAL.
              	// An empty string is equal to an unspecified field value.
              	StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"`
              	// Identity information for the source volume. This field is OPTIONAL.
              	// It can be used to list snapshots by volume.
              	SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"`
              	// Identity information for a specific snapshot. This field is
              	// OPTIONAL. It can be used to list only a specific snapshot.
              	// ListSnapshots will return with current snapshot information
              	// and will not block if the snapshot is being processed after
              	// it is cut.
              	SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
              	// Secrets required by plugin to complete ListSnapshot request.
              	// This field is OPTIONAL. Refer to the `Secrets Requirements`
              	// section on how to use this field.
              	Secrets              map[string]string `` /* 155-byte string literal not displayed */
              	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
              	XXX_unrecognized     []byte            `json:"-"`
              	XXX_sizecache        int32             `json:"-"`
              }

                List all snapshots on the storage system regardless of how they were created.

                func (*ListSnapshotsRequest) Descriptor

                func (*ListSnapshotsRequest) Descriptor() ([]byte, []int)

                func (*ListSnapshotsRequest) GetMaxEntries

                func (m *ListSnapshotsRequest) GetMaxEntries() int32

                func (*ListSnapshotsRequest) GetSecrets

                func (m *ListSnapshotsRequest) GetSecrets() map[string]string

                func (*ListSnapshotsRequest) GetSnapshotId

                func (m *ListSnapshotsRequest) GetSnapshotId() string

                func (*ListSnapshotsRequest) GetSourceVolumeId

                func (m *ListSnapshotsRequest) GetSourceVolumeId() string

                func (*ListSnapshotsRequest) GetStartingToken

                func (m *ListSnapshotsRequest) GetStartingToken() string

                func (*ListSnapshotsRequest) ProtoMessage

                func (*ListSnapshotsRequest) ProtoMessage()

                func (*ListSnapshotsRequest) Reset

                func (m *ListSnapshotsRequest) Reset()

                func (*ListSnapshotsRequest) String

                func (m *ListSnapshotsRequest) String() string

                func (*ListSnapshotsRequest) XXX_DiscardUnknown

                func (m *ListSnapshotsRequest) XXX_DiscardUnknown()

                func (*ListSnapshotsRequest) XXX_Marshal

                func (m *ListSnapshotsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListSnapshotsRequest) XXX_Merge

                func (m *ListSnapshotsRequest) XXX_Merge(src proto.Message)

                func (*ListSnapshotsRequest) XXX_Size

                func (m *ListSnapshotsRequest) XXX_Size() int

                func (*ListSnapshotsRequest) XXX_Unmarshal

                func (m *ListSnapshotsRequest) XXX_Unmarshal(b []byte) error

                type ListSnapshotsResponse

                type ListSnapshotsResponse struct {
                	Entries []*ListSnapshotsResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
                	// This token allows you to get the next page of entries for
                	// `ListSnapshots` request. If the number of entries is larger than
                	// `max_entries`, use the `next_token` as a value for the
                	// `starting_token` field in the next `ListSnapshots` request. This
                	// field is OPTIONAL.
                	// An empty string is equal to an unspecified field value.
                	NextToken            string   `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"`
                	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                	XXX_unrecognized     []byte   `json:"-"`
                	XXX_sizecache        int32    `json:"-"`
                }

                func (*ListSnapshotsResponse) Descriptor

                func (*ListSnapshotsResponse) Descriptor() ([]byte, []int)

                func (*ListSnapshotsResponse) GetEntries

                func (*ListSnapshotsResponse) GetNextToken

                func (m *ListSnapshotsResponse) GetNextToken() string

                func (*ListSnapshotsResponse) ProtoMessage

                func (*ListSnapshotsResponse) ProtoMessage()

                func (*ListSnapshotsResponse) Reset

                func (m *ListSnapshotsResponse) Reset()

                func (*ListSnapshotsResponse) String

                func (m *ListSnapshotsResponse) String() string

                func (*ListSnapshotsResponse) XXX_DiscardUnknown

                func (m *ListSnapshotsResponse) XXX_DiscardUnknown()

                func (*ListSnapshotsResponse) XXX_Marshal

                func (m *ListSnapshotsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListSnapshotsResponse) XXX_Merge

                func (m *ListSnapshotsResponse) XXX_Merge(src proto.Message)

                func (*ListSnapshotsResponse) XXX_Size

                func (m *ListSnapshotsResponse) XXX_Size() int

                func (*ListSnapshotsResponse) XXX_Unmarshal

                func (m *ListSnapshotsResponse) XXX_Unmarshal(b []byte) error

                type ListSnapshotsResponse_Entry

                type ListSnapshotsResponse_Entry struct {
                	Snapshot             *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
                	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
                	XXX_unrecognized     []byte    `json:"-"`
                	XXX_sizecache        int32     `json:"-"`
                }

                func (*ListSnapshotsResponse_Entry) Descriptor

                func (*ListSnapshotsResponse_Entry) Descriptor() ([]byte, []int)

                func (*ListSnapshotsResponse_Entry) GetSnapshot

                func (m *ListSnapshotsResponse_Entry) GetSnapshot() *Snapshot

                func (*ListSnapshotsResponse_Entry) ProtoMessage

                func (*ListSnapshotsResponse_Entry) ProtoMessage()

                func (*ListSnapshotsResponse_Entry) Reset

                func (m *ListSnapshotsResponse_Entry) Reset()

                func (*ListSnapshotsResponse_Entry) String

                func (m *ListSnapshotsResponse_Entry) String() string

                func (*ListSnapshotsResponse_Entry) XXX_DiscardUnknown

                func (m *ListSnapshotsResponse_Entry) XXX_DiscardUnknown()

                func (*ListSnapshotsResponse_Entry) XXX_Marshal

                func (m *ListSnapshotsResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListSnapshotsResponse_Entry) XXX_Merge

                func (m *ListSnapshotsResponse_Entry) XXX_Merge(src proto.Message)

                func (*ListSnapshotsResponse_Entry) XXX_Size

                func (m *ListSnapshotsResponse_Entry) XXX_Size() int

                func (*ListSnapshotsResponse_Entry) XXX_Unmarshal

                func (m *ListSnapshotsResponse_Entry) XXX_Unmarshal(b []byte) error

                type ListVolumesRequest

                type ListVolumesRequest struct {
                	// If specified (non-zero value), the Plugin MUST NOT return more
                	// entries than this number in the response. If the actual number of
                	// entries is more than this number, the Plugin MUST set `next_token`
                	// in the response which can be used to get the next page of entries
                	// in the subsequent `ListVolumes` call. This field is OPTIONAL. If
                	// not specified (zero value), it means there is no restriction on the
                	// number of entries that can be returned.
                	// The value of this field MUST NOT be negative.
                	MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"`
                	// A token to specify where to start paginating. Set this field to
                	// `next_token` returned by a previous `ListVolumes` call to get the
                	// next page of entries. This field is OPTIONAL.
                	// An empty string is equal to an unspecified field value.
                	StartingToken        string   `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"`
                	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                	XXX_unrecognized     []byte   `json:"-"`
                	XXX_sizecache        int32    `json:"-"`
                }

                func (*ListVolumesRequest) Descriptor

                func (*ListVolumesRequest) Descriptor() ([]byte, []int)

                func (*ListVolumesRequest) GetMaxEntries

                func (m *ListVolumesRequest) GetMaxEntries() int32

                func (*ListVolumesRequest) GetStartingToken

                func (m *ListVolumesRequest) GetStartingToken() string

                func (*ListVolumesRequest) ProtoMessage

                func (*ListVolumesRequest) ProtoMessage()

                func (*ListVolumesRequest) Reset

                func (m *ListVolumesRequest) Reset()

                func (*ListVolumesRequest) String

                func (m *ListVolumesRequest) String() string

                func (*ListVolumesRequest) XXX_DiscardUnknown

                func (m *ListVolumesRequest) XXX_DiscardUnknown()

                func (*ListVolumesRequest) XXX_Marshal

                func (m *ListVolumesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListVolumesRequest) XXX_Merge

                func (m *ListVolumesRequest) XXX_Merge(src proto.Message)

                func (*ListVolumesRequest) XXX_Size

                func (m *ListVolumesRequest) XXX_Size() int

                func (*ListVolumesRequest) XXX_Unmarshal

                func (m *ListVolumesRequest) XXX_Unmarshal(b []byte) error

                type ListVolumesResponse

                type ListVolumesResponse struct {
                	Entries []*ListVolumesResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
                	// This token allows you to get the next page of entries for
                	// `ListVolumes` request. If the number of entries is larger than
                	// `max_entries`, use the `next_token` as a value for the
                	// `starting_token` field in the next `ListVolumes` request. This
                	// field is OPTIONAL.
                	// An empty string is equal to an unspecified field value.
                	NextToken            string   `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"`
                	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                	XXX_unrecognized     []byte   `json:"-"`
                	XXX_sizecache        int32    `json:"-"`
                }

                func (*ListVolumesResponse) Descriptor

                func (*ListVolumesResponse) Descriptor() ([]byte, []int)

                func (*ListVolumesResponse) GetEntries

                func (*ListVolumesResponse) GetNextToken

                func (m *ListVolumesResponse) GetNextToken() string

                func (*ListVolumesResponse) ProtoMessage

                func (*ListVolumesResponse) ProtoMessage()

                func (*ListVolumesResponse) Reset

                func (m *ListVolumesResponse) Reset()

                func (*ListVolumesResponse) String

                func (m *ListVolumesResponse) String() string

                func (*ListVolumesResponse) XXX_DiscardUnknown

                func (m *ListVolumesResponse) XXX_DiscardUnknown()

                func (*ListVolumesResponse) XXX_Marshal

                func (m *ListVolumesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListVolumesResponse) XXX_Merge

                func (m *ListVolumesResponse) XXX_Merge(src proto.Message)

                func (*ListVolumesResponse) XXX_Size

                func (m *ListVolumesResponse) XXX_Size() int

                func (*ListVolumesResponse) XXX_Unmarshal

                func (m *ListVolumesResponse) XXX_Unmarshal(b []byte) error

                type ListVolumesResponse_Entry

                type ListVolumesResponse_Entry struct {
                	// This field is REQUIRED
                	Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"`
                	// This field is OPTIONAL. This field MUST be specified if the
                	// LIST_VOLUMES_PUBLISHED_NODES controller capability is
                	// supported.
                	Status               *ListVolumesResponse_VolumeStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
                	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
                	XXX_unrecognized     []byte                            `json:"-"`
                	XXX_sizecache        int32                             `json:"-"`
                }

                func (*ListVolumesResponse_Entry) Descriptor

                func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int)

                func (*ListVolumesResponse_Entry) GetStatus

                func (*ListVolumesResponse_Entry) GetVolume

                func (m *ListVolumesResponse_Entry) GetVolume() *Volume

                func (*ListVolumesResponse_Entry) ProtoMessage

                func (*ListVolumesResponse_Entry) ProtoMessage()

                func (*ListVolumesResponse_Entry) Reset

                func (m *ListVolumesResponse_Entry) Reset()

                func (*ListVolumesResponse_Entry) String

                func (m *ListVolumesResponse_Entry) String() string

                func (*ListVolumesResponse_Entry) XXX_DiscardUnknown

                func (m *ListVolumesResponse_Entry) XXX_DiscardUnknown()

                func (*ListVolumesResponse_Entry) XXX_Marshal

                func (m *ListVolumesResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListVolumesResponse_Entry) XXX_Merge

                func (m *ListVolumesResponse_Entry) XXX_Merge(src proto.Message)

                func (*ListVolumesResponse_Entry) XXX_Size

                func (m *ListVolumesResponse_Entry) XXX_Size() int

                func (*ListVolumesResponse_Entry) XXX_Unmarshal

                func (m *ListVolumesResponse_Entry) XXX_Unmarshal(b []byte) error

                type ListVolumesResponse_VolumeStatus

                type ListVolumesResponse_VolumeStatus struct {
                	// A list of all `node_id` of nodes that the volume in this entry
                	// is controller published on.
                	// This field is OPTIONAL. If it is not specified and the SP has
                	// the LIST_VOLUMES_PUBLISHED_NODES controller capability, the CO
                	// MAY assume the volume is not controller published to any nodes.
                	// If the field is not specified and the SP does not have the
                	// LIST_VOLUMES_PUBLISHED_NODES controller capability, the CO MUST
                	// not interpret this field.
                	// published_node_ids MAY include nodes not published to or
                	// reported by the SP. The CO MUST be resilient to that.
                	PublishedNodeIds []string `protobuf:"bytes,1,rep,name=published_node_ids,json=publishedNodeIds,proto3" json:"published_node_ids,omitempty"`
                	// Information about the current condition of the volume.
                	// This field is OPTIONAL.
                	// This field MUST be specified if the
                	// VOLUME_CONDITION controller capability is supported.
                	VolumeCondition      *VolumeCondition `protobuf:"bytes,2,opt,name=volume_condition,json=volumeCondition,proto3" json:"volume_condition,omitempty"`
                	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
                	XXX_unrecognized     []byte           `json:"-"`
                	XXX_sizecache        int32            `json:"-"`
                }

                func (*ListVolumesResponse_VolumeStatus) Descriptor

                func (*ListVolumesResponse_VolumeStatus) Descriptor() ([]byte, []int)

                func (*ListVolumesResponse_VolumeStatus) GetPublishedNodeIds

                func (m *ListVolumesResponse_VolumeStatus) GetPublishedNodeIds() []string

                func (*ListVolumesResponse_VolumeStatus) GetVolumeCondition

                func (m *ListVolumesResponse_VolumeStatus) GetVolumeCondition() *VolumeCondition

                func (*ListVolumesResponse_VolumeStatus) ProtoMessage

                func (*ListVolumesResponse_VolumeStatus) ProtoMessage()

                func (*ListVolumesResponse_VolumeStatus) Reset

                func (*ListVolumesResponse_VolumeStatus) String

                func (*ListVolumesResponse_VolumeStatus) XXX_DiscardUnknown

                func (m *ListVolumesResponse_VolumeStatus) XXX_DiscardUnknown()

                func (*ListVolumesResponse_VolumeStatus) XXX_Marshal

                func (m *ListVolumesResponse_VolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                func (*ListVolumesResponse_VolumeStatus) XXX_Merge

                func (*ListVolumesResponse_VolumeStatus) XXX_Size

                func (m *ListVolumesResponse_VolumeStatus) XXX_Size() int

                func (*ListVolumesResponse_VolumeStatus) XXX_Unmarshal

                func (m *ListVolumesResponse_VolumeStatus) XXX_Unmarshal(b []byte) error

                type NodeClient

                  NodeClient is the client API for Node service.

                  For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

                  func NewNodeClient

                  func NewNodeClient(cc *grpc.ClientConn) NodeClient

                  type NodeExpandVolumeRequest

                  type NodeExpandVolumeRequest struct {
                  	// The ID of the volume. This field is REQUIRED.
                  	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
                  	// The path on which volume is available. This field is REQUIRED.
                  	VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
                  	// This allows CO to specify the capacity requirements of the volume
                  	// after expansion. If capacity_range is omitted then a plugin MAY
                  	// inspect the file system of the volume to determine the maximum
                  	// capacity to which the volume can be expanded. In such cases a
                  	// plugin MAY expand the volume to its maximum capacity.
                  	// This field is OPTIONAL.
                  	CapacityRange *CapacityRange `protobuf:"bytes,3,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"`
                  	// The path where the volume is staged, if the plugin has the
                  	// STAGE_UNSTAGE_VOLUME capability, otherwise empty.
                  	// If not empty, it MUST be an absolute path in the root
                  	// filesystem of the process serving this request.
                  	// This field is OPTIONAL.
                  	StagingTargetPath string `protobuf:"bytes,4,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"`
                  	// Volume capability describing how the CO intends to use this volume.
                  	// This allows SP to determine if volume is being used as a block
                  	// device or mounted file system. For example - if volume is being
                  	// used as a block device the SP MAY choose to skip expanding the
                  	// filesystem in NodeExpandVolume implementation but still perform
                  	// rest of the housekeeping needed for expanding the volume. If
                  	// volume_capability is omitted the SP MAY determine
                  	// access_type from given volume_path for the volume and perform
                  	// node expansion. This is an OPTIONAL field.
                  	VolumeCapability     *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"`
                  	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
                  	XXX_unrecognized     []byte            `json:"-"`
                  	XXX_sizecache        int32             `json:"-"`
                  }

                  func (*NodeExpandVolumeRequest) Descriptor

                  func (*NodeExpandVolumeRequest) Descriptor() ([]byte, []int)

                  func (*NodeExpandVolumeRequest) GetCapacityRange

                  func (m *NodeExpandVolumeRequest) GetCapacityRange() *CapacityRange

                  func (*NodeExpandVolumeRequest) GetStagingTargetPath

                  func (m *NodeExpandVolumeRequest) GetStagingTargetPath() string

                  func (*NodeExpandVolumeRequest) GetVolumeCapability

                  func (m *NodeExpandVolumeRequest) GetVolumeCapability() *VolumeCapability

                  func (*NodeExpandVolumeRequest) GetVolumeId

                  func (m *NodeExpandVolumeRequest) GetVolumeId() string

                  func (*NodeExpandVolumeRequest) GetVolumePath

                  func (m *NodeExpandVolumeRequest) GetVolumePath() string

                  func (*NodeExpandVolumeRequest) ProtoMessage

                  func (*NodeExpandVolumeRequest) ProtoMessage()

                  func (*NodeExpandVolumeRequest) Reset

                  func (m *NodeExpandVolumeRequest) Reset()

                  func (*NodeExpandVolumeRequest) String

                  func (m *NodeExpandVolumeRequest) String() string

                  func (*NodeExpandVolumeRequest) XXX_DiscardUnknown

                  func (m *NodeExpandVolumeRequest) XXX_DiscardUnknown()

                  func (*NodeExpandVolumeRequest) XXX_Marshal

                  func (m *NodeExpandVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeExpandVolumeRequest) XXX_Merge

                  func (m *NodeExpandVolumeRequest) XXX_Merge(src proto.Message)

                  func (*NodeExpandVolumeRequest) XXX_Size

                  func (m *NodeExpandVolumeRequest) XXX_Size() int

                  func (*NodeExpandVolumeRequest) XXX_Unmarshal

                  func (m *NodeExpandVolumeRequest) XXX_Unmarshal(b []byte) error

                  type NodeExpandVolumeResponse

                  type NodeExpandVolumeResponse struct {
                  	// The capacity of the volume in bytes. This field is OPTIONAL.
                  	CapacityBytes        int64    `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"`
                  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                  	XXX_unrecognized     []byte   `json:"-"`
                  	XXX_sizecache        int32    `json:"-"`
                  }

                  func (*NodeExpandVolumeResponse) Descriptor

                  func (*NodeExpandVolumeResponse) Descriptor() ([]byte, []int)

                  func (*NodeExpandVolumeResponse) GetCapacityBytes

                  func (m *NodeExpandVolumeResponse) GetCapacityBytes() int64

                  func (*NodeExpandVolumeResponse) ProtoMessage

                  func (*NodeExpandVolumeResponse) ProtoMessage()

                  func (*NodeExpandVolumeResponse) Reset

                  func (m *NodeExpandVolumeResponse) Reset()

                  func (*NodeExpandVolumeResponse) String

                  func (m *NodeExpandVolumeResponse) String() string

                  func (*NodeExpandVolumeResponse) XXX_DiscardUnknown

                  func (m *NodeExpandVolumeResponse) XXX_DiscardUnknown()

                  func (*NodeExpandVolumeResponse) XXX_Marshal

                  func (m *NodeExpandVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeExpandVolumeResponse) XXX_Merge

                  func (m *NodeExpandVolumeResponse) XXX_Merge(src proto.Message)

                  func (*NodeExpandVolumeResponse) XXX_Size

                  func (m *NodeExpandVolumeResponse) XXX_Size() int

                  func (*NodeExpandVolumeResponse) XXX_Unmarshal

                  func (m *NodeExpandVolumeResponse) XXX_Unmarshal(b []byte) error

                  type NodeGetCapabilitiesRequest

                  type NodeGetCapabilitiesRequest struct {
                  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                  	XXX_unrecognized     []byte   `json:"-"`
                  	XXX_sizecache        int32    `json:"-"`
                  }

                  func (*NodeGetCapabilitiesRequest) Descriptor

                  func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int)

                  func (*NodeGetCapabilitiesRequest) ProtoMessage

                  func (*NodeGetCapabilitiesRequest) ProtoMessage()

                  func (*NodeGetCapabilitiesRequest) Reset

                  func (m *NodeGetCapabilitiesRequest) Reset()

                  func (*NodeGetCapabilitiesRequest) String

                  func (m *NodeGetCapabilitiesRequest) String() string

                  func (*NodeGetCapabilitiesRequest) XXX_DiscardUnknown

                  func (m *NodeGetCapabilitiesRequest) XXX_DiscardUnknown()

                  func (*NodeGetCapabilitiesRequest) XXX_Marshal

                  func (m *NodeGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeGetCapabilitiesRequest) XXX_Merge

                  func (m *NodeGetCapabilitiesRequest) XXX_Merge(src proto.Message)

                  func (*NodeGetCapabilitiesRequest) XXX_Size

                  func (m *NodeGetCapabilitiesRequest) XXX_Size() int

                  func (*NodeGetCapabilitiesRequest) XXX_Unmarshal

                  func (m *NodeGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error

                  type NodeGetCapabilitiesResponse

                  type NodeGetCapabilitiesResponse struct {
                  	// All the capabilities that the node service supports. This field
                  	// is OPTIONAL.
                  	Capabilities         []*NodeServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
                  	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
                  	XXX_unrecognized     []byte                   `json:"-"`
                  	XXX_sizecache        int32                    `json:"-"`
                  }

                  func (*NodeGetCapabilitiesResponse) Descriptor

                  func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int)

                  func (*NodeGetCapabilitiesResponse) GetCapabilities

                  func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability

                  func (*NodeGetCapabilitiesResponse) ProtoMessage

                  func (*NodeGetCapabilitiesResponse) ProtoMessage()

                  func (*NodeGetCapabilitiesResponse) Reset

                  func (m *NodeGetCapabilitiesResponse) Reset()

                  func (*NodeGetCapabilitiesResponse) String

                  func (m *NodeGetCapabilitiesResponse) String() string

                  func (*NodeGetCapabilitiesResponse) XXX_DiscardUnknown

                  func (m *NodeGetCapabilitiesResponse) XXX_DiscardUnknown()

                  func (*NodeGetCapabilitiesResponse) XXX_Marshal

                  func (m *NodeGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeGetCapabilitiesResponse) XXX_Merge

                  func (m *NodeGetCapabilitiesResponse) XXX_Merge(src proto.Message)

                  func (*NodeGetCapabilitiesResponse) XXX_Size

                  func (m *NodeGetCapabilitiesResponse) XXX_Size() int

                  func (*NodeGetCapabilitiesResponse) XXX_Unmarshal

                  func (m *NodeGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error

                  type NodeGetInfoRequest

                  type NodeGetInfoRequest struct {
                  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                  	XXX_unrecognized     []byte   `json:"-"`
                  	XXX_sizecache        int32    `json:"-"`
                  }

                  func (*NodeGetInfoRequest) Descriptor

                  func (*NodeGetInfoRequest) Descriptor() ([]byte, []int)

                  func (*NodeGetInfoRequest) ProtoMessage

                  func (*NodeGetInfoRequest) ProtoMessage()

                  func (*NodeGetInfoRequest) Reset

                  func (m *NodeGetInfoRequest) Reset()

                  func (*NodeGetInfoRequest) String

                  func (m *NodeGetInfoRequest) String() string

                  func (*NodeGetInfoRequest) XXX_DiscardUnknown

                  func (m *NodeGetInfoRequest) XXX_DiscardUnknown()

                  func (*NodeGetInfoRequest) XXX_Marshal

                  func (m *NodeGetInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeGetInfoRequest) XXX_Merge

                  func (m *NodeGetInfoRequest) XXX_Merge(src proto.Message)

                  func (*NodeGetInfoRequest) XXX_Size

                  func (m *NodeGetInfoRequest) XXX_Size() int

                  func (*NodeGetInfoRequest) XXX_Unmarshal

                  func (m *NodeGetInfoRequest) XXX_Unmarshal(b []byte) error

                  type NodeGetInfoResponse

                  type NodeGetInfoResponse struct {
                  	// The identifier of the node as understood by the SP.
                  	// This field is REQUIRED.
                  	// This field MUST contain enough information to uniquely identify
                  	// this specific node vs all other nodes supported by this plugin.
                  	// This field SHALL be used by the CO in subsequent calls, including
                  	// `ControllerPublishVolume`, to refer to this node.
                  	// The SP is NOT responsible for global uniqueness of node_id across
                  	// multiple SPs.
                  	NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
                  	// Maximum number of volumes that controller can publish to the node.
                  	// If value is not set or zero CO SHALL decide how many volumes of
                  	// this type can be published by the controller to the node. The
                  	// plugin MUST NOT set negative values here.
                  	// This field is OPTIONAL.
                  	MaxVolumesPerNode int64 `protobuf:"varint,2,opt,name=max_volumes_per_node,json=maxVolumesPerNode,proto3" json:"max_volumes_per_node,omitempty"`
                  	// Specifies where (regions, zones, racks, etc.) the node is
                  	// accessible from.
                  	// A plugin that returns this field MUST also set the
                  	// VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability.
                  	// COs MAY use this information along with the topology information
                  	// returned in CreateVolumeResponse to ensure that a given volume is
                  	// accessible from a given node when scheduling workloads.
                  	// This field is OPTIONAL. If it is not specified, the CO MAY assume
                  	// the node is not subject to any topological constraint, and MAY
                  	// schedule workloads that reference any volume V, such that there are
                  	// no topological constraints declared for V.
                  	//
                  	// Example 1:
                  	//   accessible_topology =
                  	//     {"region": "R1", "zone": "Z2"}
                  	// Indicates the node exists within the "region" "R1" and the "zone"
                  	// "Z2".
                  	AccessibleTopology   *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"`
                  	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
                  	XXX_unrecognized     []byte    `json:"-"`
                  	XXX_sizecache        int32     `json:"-"`
                  }

                  func (*NodeGetInfoResponse) Descriptor

                  func (*NodeGetInfoResponse) Descriptor() ([]byte, []int)

                  func (*NodeGetInfoResponse) GetAccessibleTopology

                  func (m *NodeGetInfoResponse) GetAccessibleTopology() *Topology

                  func (*NodeGetInfoResponse) GetMaxVolumesPerNode

                  func (m *NodeGetInfoResponse) GetMaxVolumesPerNode() int64

                  func (*NodeGetInfoResponse) GetNodeId

                  func (m *NodeGetInfoResponse) GetNodeId() string

                  func (*NodeGetInfoResponse) ProtoMessage

                  func (*NodeGetInfoResponse) ProtoMessage()

                  func (*NodeGetInfoResponse) Reset

                  func (m *NodeGetInfoResponse) Reset()

                  func (*NodeGetInfoResponse) String

                  func (m *NodeGetInfoResponse) String() string

                  func (*NodeGetInfoResponse) XXX_DiscardUnknown

                  func (m *NodeGetInfoResponse) XXX_DiscardUnknown()

                  func (*NodeGetInfoResponse) XXX_Marshal

                  func (m *NodeGetInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeGetInfoResponse) XXX_Merge

                  func (m *NodeGetInfoResponse) XXX_Merge(src proto.Message)

                  func (*NodeGetInfoResponse) XXX_Size

                  func (m *NodeGetInfoResponse) XXX_Size() int

                  func (*NodeGetInfoResponse) XXX_Unmarshal

                  func (m *NodeGetInfoResponse) XXX_Unmarshal(b []byte) error

                  type NodeGetVolumeStatsRequest

                  type NodeGetVolumeStatsRequest struct {
                  	// The ID of the volume. This field is REQUIRED.
                  	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
                  	// It can be any valid path where volume was previously
                  	// staged or published.
                  	// It MUST be an absolute path in the root filesystem of
                  	// the process serving this request.
                  	// This is a REQUIRED field.
                  	VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
                  	// The path where the volume is staged, if the plugin has the
                  	// STAGE_UNSTAGE_VOLUME capability, otherwise empty.
                  	// If not empty, it MUST be an absolute path in the root
                  	// filesystem of the process serving this request.
                  	// This field is OPTIONAL.
                  	StagingTargetPath    string   `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"`
                  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                  	XXX_unrecognized     []byte   `json:"-"`
                  	XXX_sizecache        int32    `json:"-"`
                  }

                  func (*NodeGetVolumeStatsRequest) Descriptor

                  func (*NodeGetVolumeStatsRequest) Descriptor() ([]byte, []int)

                  func (*NodeGetVolumeStatsRequest) GetStagingTargetPath

                  func (m *NodeGetVolumeStatsRequest) GetStagingTargetPath() string

                  func (*NodeGetVolumeStatsRequest) GetVolumeId

                  func (m *NodeGetVolumeStatsRequest) GetVolumeId() string

                  func (*NodeGetVolumeStatsRequest) GetVolumePath

                  func (m *NodeGetVolumeStatsRequest) GetVolumePath() string

                  func (*NodeGetVolumeStatsRequest) ProtoMessage

                  func (*NodeGetVolumeStatsRequest) ProtoMessage()

                  func (*NodeGetVolumeStatsRequest) Reset

                  func (m *NodeGetVolumeStatsRequest) Reset()

                  func (*NodeGetVolumeStatsRequest) String

                  func (m *NodeGetVolumeStatsRequest) String() string

                  func (*NodeGetVolumeStatsRequest) XXX_DiscardUnknown

                  func (m *NodeGetVolumeStatsRequest) XXX_DiscardUnknown()

                  func (*NodeGetVolumeStatsRequest) XXX_Marshal

                  func (m *NodeGetVolumeStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeGetVolumeStatsRequest) XXX_Merge

                  func (m *NodeGetVolumeStatsRequest) XXX_Merge(src proto.Message)

                  func (*NodeGetVolumeStatsRequest) XXX_Size

                  func (m *NodeGetVolumeStatsRequest) XXX_Size() int

                  func (*NodeGetVolumeStatsRequest) XXX_Unmarshal

                  func (m *NodeGetVolumeStatsRequest) XXX_Unmarshal(b []byte) error

                  type NodeGetVolumeStatsResponse

                  type NodeGetVolumeStatsResponse struct {
                  	// This field is OPTIONAL.
                  	Usage []*VolumeUsage `protobuf:"bytes,1,rep,name=usage,proto3" json:"usage,omitempty"`
                  	// Information about the current condition of the volume.
                  	// This field is OPTIONAL.
                  	// This field MUST be specified if the VOLUME_CONDITION node
                  	// capability is supported.
                  	VolumeCondition      *VolumeCondition `protobuf:"bytes,2,opt,name=volume_condition,json=volumeCondition,proto3" json:"volume_condition,omitempty"`
                  	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
                  	XXX_unrecognized     []byte           `json:"-"`
                  	XXX_sizecache        int32            `json:"-"`
                  }

                  func (*NodeGetVolumeStatsResponse) Descriptor

                  func (*NodeGetVolumeStatsResponse) Descriptor() ([]byte, []int)

                  func (*NodeGetVolumeStatsResponse) GetUsage

                  func (m *NodeGetVolumeStatsResponse) GetUsage() []*VolumeUsage

                  func (*NodeGetVolumeStatsResponse) GetVolumeCondition

                  func (m *NodeGetVolumeStatsResponse) GetVolumeCondition() *VolumeCondition

                  func (*NodeGetVolumeStatsResponse) ProtoMessage

                  func (*NodeGetVolumeStatsResponse) ProtoMessage()

                  func (*NodeGetVolumeStatsResponse) Reset

                  func (m *NodeGetVolumeStatsResponse) Reset()

                  func (*NodeGetVolumeStatsResponse) String

                  func (m *NodeGetVolumeStatsResponse) String() string

                  func (*NodeGetVolumeStatsResponse) XXX_DiscardUnknown

                  func (m *NodeGetVolumeStatsResponse) XXX_DiscardUnknown()

                  func (*NodeGetVolumeStatsResponse) XXX_Marshal

                  func (m *NodeGetVolumeStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodeGetVolumeStatsResponse) XXX_Merge

                  func (m *NodeGetVolumeStatsResponse) XXX_Merge(src proto.Message)

                  func (*NodeGetVolumeStatsResponse) XXX_Size

                  func (m *NodeGetVolumeStatsResponse) XXX_Size() int

                  func (*NodeGetVolumeStatsResponse) XXX_Unmarshal

                  func (m *NodeGetVolumeStatsResponse) XXX_Unmarshal(b []byte) error

                  type NodePublishVolumeRequest

                  type NodePublishVolumeRequest struct {
                  	// The ID of the volume to publish. This field is REQUIRED.
                  	VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
                  	// The CO SHALL set this field to the value returned by
                  	// `ControllerPublishVolume` if the corresponding Controller Plugin
                  	// has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be
                  	// left unset if the corresponding Controller Plugin does not have
                  	// this capability. This is an OPTIONAL field.
                  	PublishContext map[string]string `` /* 191-byte string literal not displayed */
                  	// The path to which the volume was staged by `NodeStageVolume`.
                  	// It MUST be an absolute path in the root filesystem of the process
                  	// serving this request.
                  	// It MUST be set if the Node Plugin implements the
                  	// `STAGE_UNSTAGE_VOLUME` node capability.
                  	// This is an OPTIONAL field.
                  	StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"`
                  	// The path to which the volume will be published. It MUST be an
                  	// absolute path in the root filesystem of the process serving this
                  	// request. The CO SHALL ensure uniqueness of target_path per volume.
                  	// The CO SHALL ensure that the parent directory of this path exists
                  	// and that the process serving the request has `read` and `write`
                  	// permissions to that parent directory.
                  	// For volumes with an access type of block, the SP SHALL place the
                  	// block device at target_path.
                  	// For volumes with an access type of mount, the SP SHALL place the
                  	// mounted directory at target_path.
                  	// Creation of target_path is the responsibility of the SP.
                  	// This is a REQUIRED field.
                  	TargetPath string `protobuf:"bytes,4,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"`
                  	// Volume capability describing how the CO intends to use this volume.
                  	// SP MUST ensure the CO can use the published volume as described.
                  	// Otherwise SP MUST return the appropriate gRPC error code.
                  	// This is a REQUIRED field.
                  	VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"`
                  	// Indicates SP MUST publish the volume in readonly mode.
                  	// This field is REQUIRED.
                  	Readonly bool `protobuf:"varint,6,opt,name=readonly,proto3" json:"readonly,omitempty"`
                  	// Secrets required by plugin to complete node publish volume request.
                  	// This field is OPTIONAL. Refer to the `Secrets Requirements`
                  	// section on how to use this field.
                  	Secrets map[string]string `` /* 155-byte string literal not displayed */
                  	// Volume context as returned by SP in
                  	// CreateVolumeResponse.Volume.volume_context.
                  	// This field is OPTIONAL and MUST match the volume_context of the
                  	// volume identified by `volume_id`.
                  	VolumeContext        map[string]string `` /* 188-byte string literal not displayed */
                  	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
                  	XXX_unrecognized     []byte            `json:"-"`
                  	XXX_sizecache        int32             `json:"-"`
                  }

                  func (*NodePublishVolumeRequest) Descriptor

                  func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int)

                  func (*NodePublishVolumeRequest) GetPublishContext

                  func (m *NodePublishVolumeRequest) GetPublishContext() map[string]string

                  func (*NodePublishVolumeRequest) GetReadonly

                  func (m *NodePublishVolumeRequest) GetReadonly() bool

                  func (*NodePublishVolumeRequest) GetSecrets

                  func (m *NodePublishVolumeRequest) GetSecrets() map[string]string

                  func (*NodePublishVolumeRequest) GetStagingTargetPath

                  func (m *NodePublishVolumeRequest) GetStagingTargetPath() string

                  func (*NodePublishVolumeRequest) GetTargetPath

                  func (m *NodePublishVolumeRequest) GetTargetPath() string

                  func (*NodePublishVolumeRequest) GetVolumeCapability

                  func (m *NodePublishVolumeRequest) GetVolumeCapability() *VolumeCapability

                  func (*NodePublishVolumeRequest) GetVolumeContext

                  func (m *NodePublishVolumeRequest) GetVolumeContext() map[string]string

                  func (*NodePublishVolumeRequest) GetVolumeId

                  func (m *NodePublishVolumeRequest) GetVolumeId() string

                  func (*NodePublishVolumeRequest) ProtoMessage

                  func (*NodePublishVolumeRequest) ProtoMessage()

                  func (*NodePublishVolumeRequest) Reset

                  func (m *NodePublishVolumeRequest) Reset()

                  func (*NodePublishVolumeRequest) String

                  func (m *NodePublishVolumeRequest) String() string

                  func (*NodePublishVolumeRequest) XXX_DiscardUnknown

                  func (m *NodePublishVolumeRequest) XXX_DiscardUnknown()

                  func (*NodePublishVolumeRequest) XXX_Marshal

                  func (m *NodePublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodePublishVolumeRequest) XXX_Merge

                  func (m *NodePublishVolumeRequest) XXX_Merge(src proto.Message)

                  func (*NodePublishVolumeRequest) XXX_Size

                  func (m *NodePublishVolumeRequest) XXX_Size() int

                  func (*NodePublishVolumeRequest) XXX_Unmarshal

                  func (m *NodePublishVolumeRequest) XXX_Unmarshal(b []byte) error

                  type NodePublishVolumeResponse

                  type NodePublishVolumeResponse struct {
                  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
                  	XXX_unrecognized     []byte   `json:"-"`
                  	XXX_sizecache        int32    `json:"-"`
                  }

                  func (*NodePublishVolumeResponse) Descriptor

                  func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int)

                  func (*NodePublishVolumeResponse) ProtoMessage

                  func (*NodePublishVolumeResponse) ProtoMessage()

                  func (*NodePublishVolumeResponse) Reset

                  func (m *NodePublishVolumeResponse) Reset()

                  func (*NodePublishVolumeResponse) String

                  func (m *NodePublishVolumeResponse) String() string

                  func (*NodePublishVolumeResponse) XXX_DiscardUnknown

                  func (m *NodePublishVolumeResponse) XXX_DiscardUnknown()

                  func (*NodePublishVolumeResponse) XXX_Marshal

                  func (m *NodePublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                  func (*NodePublishVolumeResponse) XXX_Merge

                  func (m *NodePublishVolumeResponse) XXX_Merge(src proto.Message)

                  func (*NodePublishVolumeResponse) XXX_Size

                  func (m *NodePublishVolumeResponse) XXX_Size() int

                  func (*NodePublishVolumeResponse) XXX_Unmarshal

                  func (m *NodePublishVolumeResponse) XXX_Unmarshal(b []byte) error

                  type NodeServiceCapability

                  type NodeServiceCapability struct {
                  	// Types that are valid to be assigned to Type:
                  	//	*NodeServiceCapability_Rpc
                  	Type                 isNodeServiceCapability_Type `protobuf_oneof:"type"`
                  	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
                  	XXX_unrecognized     []byte                       `json:"-"`
                  	XXX_sizecache        int32                        `json:"-"`
                  }

                    Specifies a capability of the node service.

                    func (*NodeServiceCapability) Descriptor

                    func (*NodeServiceCapability) Descriptor() ([]byte, []int)

                    func (*NodeServiceCapability) GetRpc

                    func (*NodeServiceCapability) GetType

                    func (m *NodeServiceCapability) GetType() isNodeServiceCapability_Type

                    func (*NodeServiceCapability) ProtoMessage

                    func (*NodeServiceCapability) ProtoMessage()

                    func (*NodeServiceCapability) Reset

                    func (m *NodeServiceCapability) Reset()

                    func (*NodeServiceCapability) String

                    func (m *NodeServiceCapability) String() string

                    func (*NodeServiceCapability) XXX_DiscardUnknown

                    func (m *NodeServiceCapability) XXX_DiscardUnknown()

                    func (*NodeServiceCapability) XXX_Marshal

                    func (m *NodeServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                    func (*NodeServiceCapability) XXX_Merge

                    func (m *NodeServiceCapability) XXX_Merge(src proto.Message)

                    func (*NodeServiceCapability) XXX_OneofWrappers

                    func (*NodeServiceCapability) XXX_OneofWrappers() []interface{}

                      XXX_OneofWrappers is for the internal use of the proto package.

                      func (*NodeServiceCapability) XXX_Size

                      func (m *NodeServiceCapability) XXX_Size() int

                      func (*NodeServiceCapability) XXX_Unmarshal

                      func (m *NodeServiceCapability) XXX_Unmarshal(b []byte) error

                      type NodeServiceCapability_RPC

                      type NodeServiceCapability_RPC struct {
                      	Type                 NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.NodeServiceCapability_RPC_Type" json:"type,omitempty"`
                      	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
                      	XXX_unrecognized     []byte                         `json:"-"`
                      	XXX_sizecache        int32                          `json:"-"`
                      }

                      func (*NodeServiceCapability_RPC) Descriptor

                      func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int)

                      func (*NodeServiceCapability_RPC) GetType

                      func (*NodeServiceCapability_RPC) ProtoMessage

                      func (*NodeServiceCapability_RPC) ProtoMessage()

                      func (*NodeServiceCapability_RPC) Reset

                      func (m *NodeServiceCapability_RPC) Reset()

                      func (*NodeServiceCapability_RPC) String

                      func (m *NodeServiceCapability_RPC) String() string

                      func (*NodeServiceCapability_RPC) XXX_DiscardUnknown

                      func (m *NodeServiceCapability_RPC) XXX_DiscardUnknown()

                      func (*NodeServiceCapability_RPC) XXX_Marshal

                      func (m *NodeServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

                      func (*NodeServiceCapability_RPC) XXX_Merge

                      func (m *NodeServiceCapability_RPC) XXX_Merge(src proto.Message)

                      func (*NodeServiceCapability_RPC) XXX_Size

                      func (m *NodeServiceCapability_RPC) XXX_Size() int

                      func (*NodeServiceCapability_RPC) XXX_Unmarshal

                      func (m *NodeServiceCapability_RPC) XXX_Unmarshal(b []byte) error

                      type NodeServiceCapability_RPC_Type

                      type NodeServiceCapability_RPC_Type int32
                      const (
                      	NodeServiceCapability_RPC_UNKNOWN              NodeServiceCapability_RPC_Type = 0
                      	NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME NodeServiceCapability_RPC_Type = 1
                      	// If Plugin implements GET_VOLUME_STATS capability
                      	// then it MUST implement NodeGetVolumeStats RPC
                      	// call for fetching volume statistics.
                      	NodeServiceCapability_RPC_GET_VOLUME_STATS NodeServiceCapability_RPC_Type = 2
                      	// See VolumeExpansion for details.
                      	NodeServiceCapability_RPC_EXPAND_VOLUME NodeServiceCapability_RPC_Type = 3
                      	// Indicates that the Node service can report volume conditions.
                      	// An SP MAY implement `VolumeCondition` in only the Node
                      	// Plugin, only the Controller Plugin, or both.
                      	// If `VolumeCondition` is implemented in both the Node and
                      	// Controller Plugins, it SHALL report from different
                      	// perspectives.
                      	// If for some reason Node and Controller Plugins report
                      	// misaligned volume conditions, CO SHALL assume the worst case
                      	// is the truth.
                      	// Note that, for alpha, `VolumeCondition` is intended to be
                      	// informative for humans only, not for automation.
                      	NodeServiceCapability_RPC_VOLUME_CONDITION NodeServiceCapability_RPC_Type = 4
                      )

                      func (NodeServiceCapability_RPC_Type) EnumDescriptor

                      func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int)

                      func (NodeServiceCapability_RPC_Type) String