diff --git a/csi.proto b/csi.proto index 0b4d5e7a..29a9472d 100644 --- a/csi.proto +++ b/csi.proto @@ -47,8 +47,8 @@ service Node { rpc NodeUnpublishVolume (NodeUnpublishVolumeRequest) returns (NodeUnpublishVolumeResponse) {} - rpc GetNodeID (GetNodeIDRequest) - returns (GetNodeIDResponse) {} + rpc NodeGetId (NodeGetIdRequest) + returns (NodeGetIdResponse) {} rpc NodeProbe (NodeProbeRequest) returns (NodeProbeResponse) {} @@ -70,9 +70,12 @@ message GetSupportedVersionsResponse { // Specifies a version in Semantic Version 2.0 format. // (http://semver.org/spec/v2.0.0.html) message Version { - uint32 major = 1; // This field is REQUIRED. - uint32 minor = 2; // This field is REQUIRED. - uint32 patch = 3; // This field is REQUIRED. + // The value of this field MUST NOT be negative. + int32 major = 1; // This field is REQUIRED. + // The value of this field MUST NOT be negative. + int32 minor = 2; // This field is REQUIRED. + // The value of this field MUST NOT be negative. + int32 patch = 3; // This field is REQUIRED. } //////// //////// @@ -158,7 +161,7 @@ message CreateVolumeResponse { // 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. - VolumeInfo volume_info = 1; + Volume volume = 1; } // Specify a capability of a volume. @@ -228,19 +231,22 @@ message VolumeCapability { message CapacityRange { // Volume must be at least this big. This field is OPTIONAL. // A value of 0 is equal to an unspecified field value. - uint64 required_bytes = 1; + // The value of this field MUST NOT be negative. + int64 required_bytes = 1; // Volume must not be bigger than this. This field is OPTIONAL. // A value of 0 is equal to an unspecified field value. - uint64 limit_bytes = 2; + // The value of this field MUST NOT be negative. + int64 limit_bytes = 2; } // The information about a provisioned volume. -message VolumeInfo { +message Volume { // The capacity of the volume in bytes. This field is OPTIONAL. If not // set (value of 0), it indicates that the capacity of the volume is // unknown (e.g., NFS share). - uint64 capacity_bytes = 1; + // The value of this field MUST NOT be negative. + int64 capacity_bytes = 1; // Contains identity information for the created volume. This field is // REQUIRED. The identity information will be used by the CO in @@ -293,7 +299,7 @@ message ControllerPublishVolumeRequest { string volume_id = 2; // The ID of the node. This field is REQUIRED. The CO SHALL set this - // field to match the node ID returned by `GetNodeID`. + // field to match the node ID returned by `NodeGetId`. string node_id = 3; // The capability of the volume the CO expects the volume to have. @@ -318,7 +324,7 @@ message ControllerPublishVolumeRequest { map controller_publish_credentials = 6; // Attributes of the volume to be used on a node. This field is - // OPTIONAL and MUST match the attributes of the VolumeInfo identified + // OPTIONAL and MUST match the attributes of the Volume identified // by `volume_id`. map volume_attributes = 7; } @@ -327,7 +333,7 @@ message ControllerPublishVolumeResponse { // The SP specific information that will be passed to the Plugin in // the subsequent `NodePublishVolume` call for the given volume. // This information is opaque to the CO. This field is OPTIONAL. - map publish_volume_info = 1; + map publish_info = 1; } //////// //////// @@ -339,7 +345,7 @@ message ControllerUnpublishVolumeRequest { string volume_id = 2; // The ID of the node. This field is OPTIONAL. The CO SHOULD set this - // field to match the node ID returned by `GetNodeID` or leave it + // field to match the node ID returned by `NodeGetId` 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. @@ -375,7 +381,7 @@ message ValidateVolumeCapabilitiesRequest { repeated VolumeCapability volume_capabilities = 3; // Attributes of the volume to check. This field is OPTIONAL and MUST - // match the attributes of the VolumeInfo identified by `volume_id`. + // match the attributes of the Volume identified by `volume_id`. map volume_attributes = 4; } @@ -402,7 +408,8 @@ message ListVolumesRequest { // 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. - uint32 max_entries = 2; + // The value of this field MUST NOT be negative. + int32 max_entries = 2; // A token to specify where to start paginating. Set this field to // `next_token` returned by a previous `ListVolumes` call to get the @@ -413,7 +420,7 @@ message ListVolumesRequest { message ListVolumesResponse { message Entry { - VolumeInfo volume_info = 1; + Volume volume = 1; } repeated Entry entries = 1; @@ -452,7 +459,8 @@ message GetCapacityResponse { // specified in the request, the Plugin SHALL take those into // consideration when calculating the available capacity of the // storage. This field is REQUIRED. - uint64 available_capacity = 1; + // The value of this field MUST NOT be negative. + int64 available_capacity = 1; } //////// //////// @@ -508,7 +516,7 @@ message NodePublishVolumeRequest { // 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. - map publish_volume_info = 3; + map publish_info = 3; // The path to which the volume will be published. It MUST be an // absolute path in the root filesystem of the process serving this @@ -540,7 +548,7 @@ message NodePublishVolumeRequest { map node_publish_credentials = 7; // Attributes of the volume to publish. This field is OPTIONAL and - // MUST match the attributes of the VolumeInfo identified by + // MUST match the attributes of the Volume identified by // `volume_id`. map volume_attributes = 8; } @@ -577,12 +585,12 @@ message NodeUnpublishVolumeRequest { message NodeUnpublishVolumeResponse {} //////// //////// -message GetNodeIDRequest { +message NodeGetIdRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; } -message GetNodeIDResponse { +message NodeGetIdResponse { // The ID of the node as understood by the SP which SHALL be used by // CO in subsequent `ControllerPublishVolume`. // This is a REQUIRED field. diff --git a/lib/go/csi/csi.pb.go b/lib/go/csi/csi.pb.go index 990e7bea..877c14e9 100644 --- a/lib/go/csi/csi.pb.go +++ b/lib/go/csi/csi.pb.go @@ -17,7 +17,7 @@ It has these top-level messages: CreateVolumeResponse VolumeCapability CapacityRange - VolumeInfo + Volume DeleteVolumeRequest DeleteVolumeResponse ControllerPublishVolumeRequest @@ -39,8 +39,8 @@ It has these top-level messages: NodePublishVolumeResponse NodeUnpublishVolumeRequest NodeUnpublishVolumeResponse - GetNodeIDRequest - GetNodeIDResponse + NodeGetIdRequest + NodeGetIdResponse NodeProbeRequest NodeProbeResponse NodeGetCapabilitiesRequest @@ -196,9 +196,12 @@ func (m *GetSupportedVersionsResponse) GetSupportedVersions() []*Version { // Specifies a version in Semantic Version 2.0 format. // (http://semver.org/spec/v2.0.0.html) type Version struct { - Major uint32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"` - Minor uint32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"` - Patch uint32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"` + // The value of this field MUST NOT be negative. + Major int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"` + // The value of this field MUST NOT be negative. + Minor int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"` + // The value of this field MUST NOT be negative. + Patch int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"` } func (m *Version) Reset() { *m = Version{} } @@ -206,21 +209,21 @@ func (m *Version) String() string { return proto.CompactTextString(m) func (*Version) ProtoMessage() {} func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } -func (m *Version) GetMajor() uint32 { +func (m *Version) GetMajor() int32 { if m != nil { return m.Major } return 0 } -func (m *Version) GetMinor() uint32 { +func (m *Version) GetMinor() int32 { if m != nil { return m.Minor } return 0 } -func (m *Version) GetPatch() uint32 { +func (m *Version) GetPatch() int32 { if m != nil { return m.Patch } @@ -390,7 +393,7 @@ 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. - VolumeInfo *VolumeInfo `protobuf:"bytes,1,opt,name=volume_info,json=volumeInfo" json:"volume_info,omitempty"` + Volume *Volume `protobuf:"bytes,1,opt,name=volume" json:"volume,omitempty"` } func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } @@ -398,9 +401,9 @@ func (m *CreateVolumeResponse) String() string { return proto.Compact func (*CreateVolumeResponse) ProtoMessage() {} func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } -func (m *CreateVolumeResponse) GetVolumeInfo() *VolumeInfo { +func (m *CreateVolumeResponse) GetVolume() *Volume { if m != nil { - return m.VolumeInfo + return m.Volume } return nil } @@ -604,10 +607,12 @@ func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode 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. - RequiredBytes uint64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` + // The value of this field MUST NOT be negative. + RequiredBytes int64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes" 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. - LimitBytes uint64 `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes" json:"limit_bytes,omitempty"` + // The value of this field MUST NOT be negative. + LimitBytes int64 `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes" json:"limit_bytes,omitempty"` } func (m *CapacityRange) Reset() { *m = CapacityRange{} } @@ -615,14 +620,14 @@ func (m *CapacityRange) String() string { return proto.CompactTextStr func (*CapacityRange) ProtoMessage() {} func (*CapacityRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } -func (m *CapacityRange) GetRequiredBytes() uint64 { +func (m *CapacityRange) GetRequiredBytes() int64 { if m != nil { return m.RequiredBytes } return 0 } -func (m *CapacityRange) GetLimitBytes() uint64 { +func (m *CapacityRange) GetLimitBytes() int64 { if m != nil { return m.LimitBytes } @@ -630,11 +635,12 @@ func (m *CapacityRange) GetLimitBytes() uint64 { } // The information about a provisioned volume. -type VolumeInfo struct { +type Volume struct { // The capacity of the volume in bytes. This field is OPTIONAL. If not // set (value of 0), it indicates that the capacity of the volume is // unknown (e.g., NFS share). - CapacityBytes uint64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes" json:"capacity_bytes,omitempty"` + // The value of this field MUST NOT be negative. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes" json:"capacity_bytes,omitempty"` // Contains identity information for the created volume. This field is // REQUIRED. The identity information will be used by the CO in // subsequent calls to refer to the provisioned volume. @@ -650,26 +656,26 @@ type VolumeInfo struct { Attributes map[string]string `protobuf:"bytes,3,rep,name=attributes" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } -func (m *VolumeInfo) Reset() { *m = VolumeInfo{} } -func (m *VolumeInfo) String() string { return proto.CompactTextString(m) } -func (*VolumeInfo) ProtoMessage() {} -func (*VolumeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (m *Volume) Reset() { *m = Volume{} } +func (m *Volume) String() string { return proto.CompactTextString(m) } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } -func (m *VolumeInfo) GetCapacityBytes() uint64 { +func (m *Volume) GetCapacityBytes() int64 { if m != nil { return m.CapacityBytes } return 0 } -func (m *VolumeInfo) GetId() string { +func (m *Volume) GetId() string { if m != nil { return m.Id } return "" } -func (m *VolumeInfo) GetAttributes() map[string]string { +func (m *Volume) GetAttributes() map[string]string { if m != nil { return m.Attributes } @@ -741,7 +747,7 @@ type ControllerPublishVolumeRequest struct { // This field is REQUIRED. VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" 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 `GetNodeID`. + // field to match the node ID returned by `NodeGetId`. NodeId string `protobuf:"bytes,3,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` // The capability of the volume the CO expects the volume to have. // This is a REQUIRED field. @@ -762,7 +768,7 @@ type ControllerPublishVolumeRequest struct { // This field is OPTIONAL. ControllerPublishCredentials map[string]string `protobuf:"bytes,6,rep,name=controller_publish_credentials,json=controllerPublishCredentials" json:"controller_publish_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Attributes of the volume to be used on a node. This field is - // OPTIONAL and MUST match the attributes of the VolumeInfo identified + // OPTIONAL and MUST match the attributes of the Volume identified // by `volume_id`. VolumeAttributes map[string]string `protobuf:"bytes,7,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } @@ -825,7 +831,7 @@ type ControllerPublishVolumeResponse struct { // The SP specific information that will be passed to the Plugin in // the subsequent `NodePublishVolume` call for the given volume. // This information is opaque to the CO. This field is OPTIONAL. - PublishVolumeInfo map[string]string `protobuf:"bytes,1,rep,name=publish_volume_info,json=publishVolumeInfo" json:"publish_volume_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + PublishInfo map[string]string `protobuf:"bytes,1,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPublishVolumeResponse{} } @@ -835,9 +841,9 @@ func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } -func (m *ControllerPublishVolumeResponse) GetPublishVolumeInfo() map[string]string { +func (m *ControllerPublishVolumeResponse) GetPublishInfo() map[string]string { if m != nil { - return m.PublishVolumeInfo + return m.PublishInfo } return nil } @@ -850,7 +856,7 @@ type ControllerUnpublishVolumeRequest struct { // The ID of the volume. This field is REQUIRED. VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId" 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 `GetNodeID` or leave it + // field to match the node ID returned by `NodeGetId` 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. @@ -926,7 +932,7 @@ type ValidateVolumeCapabilitiesRequest struct { // specified below are supported. This field is REQUIRED. VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` // Attributes of the volume to check. This field is OPTIONAL and MUST - // match the attributes of the VolumeInfo identified by `volume_id`. + // match the attributes of the Volume identified by `volume_id`. VolumeAttributes map[string]string `protobuf:"bytes,4,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } @@ -1008,7 +1014,8 @@ type ListVolumesRequest struct { // 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. - MaxEntries uint32 `protobuf:"varint,2,opt,name=max_entries,json=maxEntries" json:"max_entries,omitempty"` + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,2,opt,name=max_entries,json=maxEntries" 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. @@ -1028,7 +1035,7 @@ func (m *ListVolumesRequest) GetVersion() *Version { return nil } -func (m *ListVolumesRequest) GetMaxEntries() uint32 { +func (m *ListVolumesRequest) GetMaxEntries() int32 { if m != nil { return m.MaxEntries } @@ -1073,7 +1080,7 @@ func (m *ListVolumesResponse) GetNextToken() string { } type ListVolumesResponse_Entry struct { - VolumeInfo *VolumeInfo `protobuf:"bytes,1,opt,name=volume_info,json=volumeInfo" json:"volume_info,omitempty"` + Volume *Volume `protobuf:"bytes,1,opt,name=volume" json:"volume,omitempty"` } func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } @@ -1081,9 +1088,9 @@ func (m *ListVolumesResponse_Entry) String() string { return proto.Co func (*ListVolumesResponse_Entry) ProtoMessage() {} func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } -func (m *ListVolumesResponse_Entry) GetVolumeInfo() *VolumeInfo { +func (m *ListVolumesResponse_Entry) GetVolume() *Volume { if m != nil { - return m.VolumeInfo + return m.Volume } return nil } @@ -1138,7 +1145,8 @@ type GetCapacityResponse struct { // specified in the request, the Plugin SHALL take those into // consideration when calculating the available capacity of the // storage. This field is REQUIRED. - AvailableCapacity uint64 `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity" json:"available_capacity,omitempty"` + // The value of this field MUST NOT be negative. + AvailableCapacity int64 `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity" json:"available_capacity,omitempty"` } func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } @@ -1146,7 +1154,7 @@ func (m *GetCapacityResponse) String() string { return proto.CompactT func (*GetCapacityResponse) ProtoMessage() {} func (*GetCapacityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } -func (m *GetCapacityResponse) GetAvailableCapacity() uint64 { +func (m *GetCapacityResponse) GetAvailableCapacity() int64 { if m != nil { return m.AvailableCapacity } @@ -1342,7 +1350,7 @@ type NodePublishVolumeRequest struct { // 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. - PublishVolumeInfo map[string]string `protobuf:"bytes,3,rep,name=publish_volume_info,json=publishVolumeInfo" json:"publish_volume_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + PublishInfo map[string]string `protobuf:"bytes,3,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 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. @@ -1369,7 +1377,7 @@ type NodePublishVolumeRequest struct { // This field is OPTIONAL. NodePublishCredentials map[string]string `protobuf:"bytes,7,rep,name=node_publish_credentials,json=nodePublishCredentials" json:"node_publish_credentials,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Attributes of the volume to publish. This field is OPTIONAL and - // MUST match the attributes of the VolumeInfo identified by + // MUST match the attributes of the Volume identified by // `volume_id`. VolumeAttributes map[string]string `protobuf:"bytes,8,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } @@ -1393,9 +1401,9 @@ func (m *NodePublishVolumeRequest) GetVolumeId() string { return "" } -func (m *NodePublishVolumeRequest) GetPublishVolumeInfo() map[string]string { +func (m *NodePublishVolumeRequest) GetPublishInfo() map[string]string { if m != nil { - return m.PublishVolumeInfo + return m.PublishInfo } return nil } @@ -1511,36 +1519,36 @@ func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDe // ////// // ////// -type GetNodeIDRequest struct { +type NodeGetIdRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` } -func (m *GetNodeIDRequest) Reset() { *m = GetNodeIDRequest{} } -func (m *GetNodeIDRequest) String() string { return proto.CompactTextString(m) } -func (*GetNodeIDRequest) ProtoMessage() {} -func (*GetNodeIDRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +func (m *NodeGetIdRequest) Reset() { *m = NodeGetIdRequest{} } +func (m *NodeGetIdRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetIdRequest) ProtoMessage() {} +func (*NodeGetIdRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } -func (m *GetNodeIDRequest) GetVersion() *Version { +func (m *NodeGetIdRequest) GetVersion() *Version { if m != nil { return m.Version } return nil } -type GetNodeIDResponse struct { +type NodeGetIdResponse struct { // The ID of the node as understood by the SP which SHALL be used by // CO in subsequent `ControllerPublishVolume`. // This is a REQUIRED field. NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` } -func (m *GetNodeIDResponse) Reset() { *m = GetNodeIDResponse{} } -func (m *GetNodeIDResponse) String() string { return proto.CompactTextString(m) } -func (*GetNodeIDResponse) ProtoMessage() {} -func (*GetNodeIDResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +func (m *NodeGetIdResponse) Reset() { *m = NodeGetIdResponse{} } +func (m *NodeGetIdResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetIdResponse) ProtoMessage() {} +func (*NodeGetIdResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } -func (m *GetNodeIDResponse) GetNodeId() string { +func (m *NodeGetIdResponse) GetNodeId() string { if m != nil { return m.NodeId } @@ -1731,7 +1739,7 @@ func init() { proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.VolumeCapability.MountVolume") proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.VolumeCapability.AccessMode") proto.RegisterType((*CapacityRange)(nil), "csi.CapacityRange") - proto.RegisterType((*VolumeInfo)(nil), "csi.VolumeInfo") + proto.RegisterType((*Volume)(nil), "csi.Volume") proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.DeleteVolumeRequest") proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.DeleteVolumeResponse") proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.ControllerPublishVolumeRequest") @@ -1755,8 +1763,8 @@ func init() { proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.NodePublishVolumeResponse") proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.NodeUnpublishVolumeRequest") proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.NodeUnpublishVolumeResponse") - proto.RegisterType((*GetNodeIDRequest)(nil), "csi.GetNodeIDRequest") - proto.RegisterType((*GetNodeIDResponse)(nil), "csi.GetNodeIDResponse") + proto.RegisterType((*NodeGetIdRequest)(nil), "csi.NodeGetIdRequest") + proto.RegisterType((*NodeGetIdResponse)(nil), "csi.NodeGetIdResponse") proto.RegisterType((*NodeProbeRequest)(nil), "csi.NodeProbeRequest") proto.RegisterType((*NodeProbeResponse)(nil), "csi.NodeProbeResponse") proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.NodeGetCapabilitiesRequest") @@ -2206,7 +2214,7 @@ var _Controller_serviceDesc = grpc.ServiceDesc{ type NodeClient interface { NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) - GetNodeID(ctx context.Context, in *GetNodeIDRequest, opts ...grpc.CallOption) (*GetNodeIDResponse, error) + NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts ...grpc.CallOption) (*NodeGetIdResponse, error) NodeProbe(ctx context.Context, in *NodeProbeRequest, opts ...grpc.CallOption) (*NodeProbeResponse, error) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) } @@ -2237,9 +2245,9 @@ func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishV return out, nil } -func (c *nodeClient) GetNodeID(ctx context.Context, in *GetNodeIDRequest, opts ...grpc.CallOption) (*GetNodeIDResponse, error) { - out := new(GetNodeIDResponse) - err := grpc.Invoke(ctx, "/csi.Node/GetNodeID", in, out, c.cc, opts...) +func (c *nodeClient) NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts ...grpc.CallOption) (*NodeGetIdResponse, error) { + out := new(NodeGetIdResponse) + err := grpc.Invoke(ctx, "/csi.Node/NodeGetId", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2269,7 +2277,7 @@ func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabil type NodeServer interface { NodePublishVolume(context.Context, *NodePublishVolumeRequest) (*NodePublishVolumeResponse, error) NodeUnpublishVolume(context.Context, *NodeUnpublishVolumeRequest) (*NodeUnpublishVolumeResponse, error) - GetNodeID(context.Context, *GetNodeIDRequest) (*GetNodeIDResponse, error) + NodeGetId(context.Context, *NodeGetIdRequest) (*NodeGetIdResponse, error) NodeProbe(context.Context, *NodeProbeRequest) (*NodeProbeResponse, error) NodeGetCapabilities(context.Context, *NodeGetCapabilitiesRequest) (*NodeGetCapabilitiesResponse, error) } @@ -2314,20 +2322,20 @@ func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Node_GetNodeID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetNodeIDRequest) +func _Node_NodeGetId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetIdRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(NodeServer).GetNodeID(ctx, in) + return srv.(NodeServer).NodeGetId(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/GetNodeID", + FullMethod: "/csi.Node/NodeGetId", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NodeServer).GetNodeID(ctx, req.(*GetNodeIDRequest)) + return srv.(NodeServer).NodeGetId(ctx, req.(*NodeGetIdRequest)) } return interceptor(ctx, in, info, handler) } @@ -2381,8 +2389,8 @@ var _Node_serviceDesc = grpc.ServiceDesc{ Handler: _Node_NodeUnpublishVolume_Handler, }, { - MethodName: "GetNodeID", - Handler: _Node_GetNodeID_Handler, + MethodName: "NodeGetId", + Handler: _Node_NodeGetId_Handler, }, { MethodName: "NodeProbe", @@ -2400,136 +2408,135 @@ var _Node_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("csi.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 2084 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x1a, 0x49, 0x73, 0xe3, 0x58, - 0x39, 0xb2, 0x9d, 0xed, 0x4b, 0x9c, 0x71, 0x9e, 0xb3, 0x28, 0xca, 0xd2, 0x6e, 0xf5, 0x74, 0x4f, - 0xa8, 0x02, 0x17, 0x95, 0xa1, 0x8a, 0xce, 0xf4, 0xf4, 0x40, 0x62, 0x7b, 0x12, 0xd3, 0x89, 0x13, - 0x14, 0xa7, 0xbb, 0x06, 0x98, 0x12, 0x8a, 0xfd, 0x92, 0x16, 0x6d, 0x4b, 0x1e, 0x49, 0x76, 0xb5, - 0x8b, 0xe2, 0xc6, 0x0d, 0x0e, 0x54, 0x71, 0xe0, 0x06, 0x47, 0x98, 0x2a, 0x6e, 0x14, 0xbf, 0x80, - 0x2b, 0x47, 0xb8, 0x73, 0x1d, 0xae, 0xfc, 0x01, 0xea, 0x2d, 0x92, 0x9f, 0x64, 0xc9, 0x4b, 0x4f, - 0xf7, 0x9c, 0x22, 0x7d, 0xdb, 0xfb, 0xb6, 0xf7, 0x2d, 0x56, 0x60, 0xb1, 0xe1, 0x9a, 0xc5, 0x8e, - 0x63, 0x7b, 0x36, 0x4a, 0x37, 0x5c, 0x53, 0xdd, 0x85, 0xed, 0x13, 0xec, 0x5d, 0x75, 0x3b, 0x1d, - 0xdb, 0xf1, 0x70, 0xf3, 0x39, 0x76, 0x5c, 0xd3, 0xb6, 0x5c, 0x0d, 0x7f, 0xd1, 0xc5, 0xae, 0xa7, - 0xfe, 0x14, 0x76, 0xe2, 0xd1, 0x6e, 0xc7, 0xb6, 0x5c, 0x8c, 0x9e, 0x00, 0x72, 0x7d, 0xa4, 0xde, - 0xe3, 0x58, 0x59, 0x2a, 0xa4, 0xf7, 0x97, 0x0e, 0x96, 0x8b, 0xe4, 0x2c, 0xce, 0xa2, 0xad, 0xba, - 0x51, 0x21, 0xea, 0x33, 0x98, 0xe7, 0xcf, 0x68, 0x0d, 0x66, 0xdb, 0xc6, 0x2f, 0x6c, 0x47, 0x96, - 0x0a, 0xd2, 0x7e, 0x56, 0x63, 0x2f, 0x14, 0x6a, 0x5a, 0xb6, 0x23, 0xa7, 0x38, 0x94, 0xbc, 0x10, - 0x68, 0xc7, 0xf0, 0x1a, 0x2f, 0xe5, 0x34, 0x83, 0xd2, 0x17, 0xf5, 0x13, 0x58, 0x3b, 0xc1, 0xde, - 0x65, 0xab, 0x7b, 0x67, 0x5a, 0x55, 0xeb, 0xd6, 0xe6, 0x16, 0xa0, 0x47, 0x30, 0xcf, 0xf5, 0xa2, - 0xb2, 0xa3, 0x6a, 0xf9, 0x48, 0xf5, 0xdf, 0x12, 0xac, 0x47, 0x04, 0x70, 0x1b, 0x11, 0x64, 0x2c, - 0xa3, 0x8d, 0x29, 0xfb, 0xa2, 0x46, 0x9f, 0xd1, 0x43, 0x58, 0xe9, 0x61, 0xab, 0x69, 0x3b, 0xbe, - 0xd1, 0x54, 0xc5, 0x45, 0x2d, 0xcb, 0xa0, 0xbe, 0x59, 0x65, 0x58, 0x68, 0x1b, 0x96, 0x79, 0x8b, - 0x5d, 0x4f, 0x4e, 0x53, 0xa7, 0xec, 0xd3, 0xd3, 0x63, 0x0f, 0x2a, 0x9e, 0x73, 0xd2, 0x8a, 0xe5, - 0x39, 0x7d, 0x2d, 0xe0, 0x54, 0x9e, 0x40, 0x36, 0x84, 0x42, 0x39, 0x48, 0xbf, 0xc2, 0x7d, 0xae, - 0x10, 0x79, 0x24, 0x3e, 0xe9, 0x19, 0xad, 0x2e, 0xe6, 0x6a, 0xb0, 0x97, 0x8f, 0x52, 0x8f, 0x25, - 0xf5, 0xaf, 0x19, 0xc8, 0x97, 0x1c, 0x6c, 0x78, 0xf8, 0xb9, 0xdd, 0xea, 0xb6, 0xf1, 0x94, 0x7e, - 0x09, 0xac, 0x4f, 0x09, 0xd6, 0x1f, 0xc2, 0x4a, 0xc3, 0xe8, 0x18, 0x0d, 0xd3, 0xeb, 0xeb, 0x8e, - 0x61, 0xdd, 0x61, 0x1a, 0x8a, 0xa5, 0x03, 0x44, 0x45, 0x94, 0x38, 0x4a, 0x23, 0x18, 0x2d, 0xdb, - 0x10, 0x5f, 0xd1, 0xa7, 0x90, 0xef, 0x51, 0x3d, 0x74, 0x02, 0xbf, 0x31, 0x5b, 0xa6, 0x67, 0x62, - 0x57, 0xce, 0x50, 0xe7, 0xac, 0x33, 0x15, 0x28, 0xbe, 0xe4, 0xa3, 0xfb, 0x1a, 0xea, 0x85, 0x21, - 0x26, 0x76, 0xd1, 0x29, 0x40, 0xc7, 0x70, 0x8c, 0x36, 0xf6, 0xb0, 0xe3, 0xca, 0xb3, 0x82, 0x6f, - 0x63, 0x8c, 0x2d, 0x5e, 0x06, 0xa4, 0xcc, 0xb7, 0x02, 0x2f, 0xfa, 0x15, 0xec, 0x36, 0x6c, 0xcb, - 0x73, 0xec, 0x56, 0x0b, 0x3b, 0x7a, 0x83, 0x72, 0x93, 0x3f, 0x4d, 0x6c, 0x79, 0xa6, 0xd1, 0x72, - 0xe5, 0x39, 0x2a, 0xfc, 0x30, 0x51, 0x78, 0x29, 0xe0, 0x66, 0xd8, 0xd2, 0x80, 0x97, 0x9d, 0xb6, - 0xdd, 0x48, 0xa6, 0x50, 0x9e, 0xc2, 0x7b, 0x11, 0xed, 0xa6, 0x09, 0xaf, 0x52, 0x83, 0xc2, 0xb8, - 0xf3, 0xa7, 0x4a, 0x97, 0x53, 0x58, 0x0b, 0xdb, 0xc8, 0x2f, 0xc1, 0x77, 0x61, 0x89, 0xc7, 0xcd, - 0xb4, 0x6e, 0x6d, 0x9e, 0x32, 0xef, 0x09, 0xf1, 0xa2, 0x99, 0x0c, 0xbd, 0xe0, 0x59, 0xfd, 0x63, - 0x06, 0x72, 0xd1, 0x50, 0xa2, 0x43, 0x98, 0xbd, 0x69, 0xd9, 0x8d, 0x57, 0x5c, 0xc0, 0xfd, 0xd8, - 0x80, 0x17, 0x8f, 0x09, 0x09, 0x83, 0x9e, 0xce, 0x68, 0x8c, 0x83, 0xb0, 0xb6, 0xed, 0xae, 0xe5, - 0x51, 0x9d, 0x13, 0x59, 0xcf, 0x09, 0xc9, 0x80, 0x95, 0x72, 0xa0, 0x23, 0x58, 0x32, 0x1a, 0x0d, - 0xec, 0xba, 0x7a, 0xdb, 0x6e, 0xfa, 0xc9, 0x5a, 0x88, 0x17, 0x70, 0x44, 0x09, 0xcf, 0xed, 0x26, - 0xd6, 0xc0, 0x08, 0x9e, 0x95, 0x2c, 0x2c, 0x09, 0x5a, 0x29, 0x27, 0xb0, 0x24, 0x9c, 0x84, 0x36, - 0x61, 0xfe, 0xd6, 0xd5, 0xbd, 0x7e, 0xc7, 0xaf, 0x12, 0x73, 0xb7, 0x6e, 0xbd, 0xdf, 0xc1, 0xe8, - 0x1e, 0x2c, 0x51, 0x15, 0xf4, 0xdb, 0x96, 0x71, 0xe7, 0xca, 0xa9, 0x42, 0x7a, 0x7f, 0x51, 0x03, - 0x0a, 0xfa, 0x94, 0x40, 0x94, 0xaf, 0x24, 0x80, 0xc1, 0x91, 0xe8, 0x10, 0x32, 0x54, 0x45, 0x22, - 0x65, 0xe5, 0xe0, 0xe1, 0x38, 0x15, 0x8b, 0x54, 0x4f, 0xca, 0xa2, 0xfe, 0x49, 0x82, 0x0c, 0x95, - 0xb1, 0x04, 0xf3, 0xd7, 0xb5, 0x67, 0xb5, 0x8b, 0x17, 0xb5, 0xdc, 0x0c, 0xda, 0x00, 0x74, 0x55, - 0xad, 0x9d, 0x9c, 0x55, 0xf4, 0xda, 0x45, 0xb9, 0xa2, 0xbf, 0xd0, 0xaa, 0xf5, 0x8a, 0x96, 0x93, - 0xd0, 0x36, 0x6c, 0x8a, 0x70, 0xad, 0x72, 0x54, 0xae, 0x68, 0xfa, 0x45, 0xed, 0xec, 0xb3, 0x5c, - 0x0a, 0x29, 0xb0, 0x71, 0x7e, 0x7d, 0x56, 0xaf, 0x0e, 0xe3, 0xd2, 0x68, 0x07, 0x64, 0x01, 0xc7, - 0x65, 0x70, 0xb1, 0x19, 0x22, 0x56, 0xc0, 0xb2, 0x47, 0x8e, 0x9c, 0x3d, 0xce, 0x06, 0x61, 0x20, - 0x9e, 0x52, 0x5f, 0x40, 0x36, 0x54, 0x2a, 0x48, 0x51, 0x75, 0xf0, 0x17, 0x5d, 0xd3, 0xc1, 0x4d, - 0xfd, 0xa6, 0xef, 0x61, 0x97, 0xba, 0x21, 0xa3, 0x65, 0x7d, 0xe8, 0x31, 0x01, 0x12, 0x9f, 0xb6, - 0xcc, 0xb6, 0xe9, 0x71, 0x9a, 0x14, 0xa5, 0x01, 0x0a, 0xa2, 0x04, 0xea, 0x3f, 0x24, 0x80, 0x41, - 0x52, 0x12, 0xb1, 0x41, 0xb5, 0x0a, 0x89, 0xf5, 0xa1, 0x4c, 0xec, 0x0a, 0xa4, 0xcc, 0x26, 0xbf, - 0x10, 0x29, 0xb3, 0x89, 0x7e, 0x00, 0x60, 0x78, 0x9e, 0x63, 0xde, 0x74, 0x09, 0x0b, 0xab, 0xde, - 0xf7, 0x22, 0x09, 0x5f, 0x3c, 0x0a, 0x28, 0x78, 0x61, 0x19, 0xb0, 0x90, 0x9b, 0x1d, 0x41, 0x4f, - 0x75, 0x13, 0xbf, 0x4c, 0x41, 0xbe, 0x8c, 0x5b, 0xf8, 0x4d, 0x0b, 0xf7, 0x36, 0x2c, 0xfa, 0x37, - 0xd6, 0x37, 0x6b, 0x81, 0x5f, 0xcf, 0x66, 0xa4, 0xe8, 0x35, 0xe9, 0x31, 0xa1, 0xa2, 0x97, 0x16, - 0x8a, 0x5e, 0x8c, 0x16, 0x42, 0xd1, 0x63, 0xd8, 0x51, 0x45, 0x6f, 0x88, 0x22, 0x5c, 0xb5, 0xe2, - 0x05, 0x4c, 0xe5, 0xab, 0x0d, 0x58, 0x0b, 0x2b, 0xc9, 0xaa, 0x96, 0xfa, 0xdf, 0x0c, 0xec, 0x0d, - 0x0e, 0xba, 0xec, 0xde, 0xb4, 0x4c, 0xf7, 0xe5, 0x3b, 0x70, 0xe7, 0x26, 0xcc, 0x5b, 0x76, 0x93, - 0xa2, 0xd2, 0xec, 0xfe, 0x93, 0xd7, 0x6a, 0x13, 0x1d, 0xc3, 0x6a, 0xb4, 0xdd, 0xf5, 0xe5, 0x0c, - 0x3d, 0x27, 0xa1, 0xd9, 0xe5, 0x7a, 0xd1, 0x9a, 0xa9, 0xc0, 0x82, 0x83, 0x8d, 0xa6, 0x6d, 0xb5, - 0xfa, 0xf2, 0x6c, 0x41, 0xda, 0x5f, 0xd0, 0x82, 0x77, 0xf4, 0x1b, 0x09, 0xf6, 0x84, 0x40, 0x76, - 0x98, 0x85, 0x31, 0xed, 0xab, 0xc2, 0xda, 0xd7, 0x48, 0x5f, 0x0c, 0xa3, 0x87, 0xa2, 0xba, 0xd3, - 0x18, 0x41, 0x82, 0x6e, 0x03, 0x6b, 0x85, 0x9b, 0x33, 0x2f, 0xb6, 0xcf, 0xd1, 0xe7, 0xb3, 0xb7, - 0xe8, 0x9d, 0xe2, 0x1e, 0x19, 0x80, 0x95, 0x0b, 0xb8, 0x3f, 0x56, 0xd5, 0xa9, 0xba, 0x68, 0x09, - 0xd6, 0x63, 0xcf, 0x9e, 0x2a, 0x09, 0xff, 0x25, 0xc1, 0xbd, 0x44, 0x03, 0x79, 0x1b, 0x7d, 0x05, - 0x79, 0x3f, 0x46, 0xe1, 0x76, 0x4a, 0x7c, 0xf4, 0x64, 0xb4, 0x8f, 0xf8, 0x94, 0x18, 0x82, 0x92, - 0x22, 0xc4, 0xbc, 0xb4, 0xda, 0x89, 0xc2, 0x95, 0x32, 0x6c, 0xc4, 0x13, 0x4f, 0x65, 0xd6, 0x57, - 0x29, 0xf1, 0xb2, 0x5e, 0x5b, 0x9d, 0x6f, 0xfe, 0x16, 0xfd, 0x5e, 0x82, 0x82, 0x90, 0xe5, 0x5d, - 0x2b, 0x2e, 0xcf, 0xd9, 0x08, 0x59, 0x8d, 0xf8, 0x30, 0x5e, 0xdf, 0x38, 0x82, 0xa1, 0x5c, 0x17, - 0x2e, 0x56, 0x1c, 0x91, 0xf2, 0x63, 0x78, 0x30, 0x81, 0x98, 0xa9, 0x7c, 0xfd, 0x40, 0x4c, 0xec, - 0x21, 0xd5, 0x79, 0x51, 0xfb, 0x4f, 0x0a, 0xee, 0x3f, 0x37, 0x5a, 0x66, 0x33, 0x98, 0xd2, 0xc4, - 0xc9, 0xf8, 0xad, 0x46, 0x24, 0x61, 0x5a, 0x4f, 0x4f, 0x3b, 0xad, 0x9b, 0x71, 0x85, 0x81, 0x05, - 0xec, 0x63, 0x26, 0x65, 0x9c, 0x3d, 0x13, 0xd7, 0x86, 0xb7, 0x72, 0x95, 0x7f, 0x06, 0xea, 0x28, - 0x8d, 0xf8, 0x65, 0xde, 0x81, 0xc5, 0x60, 0xa9, 0xa5, 0x72, 0x17, 0xb4, 0x01, 0x00, 0xc9, 0x30, - 0xdf, 0xc6, 0xae, 0x6b, 0xdc, 0xf9, 0xf2, 0xfd, 0x57, 0xf5, 0xd7, 0x12, 0xa0, 0x33, 0xd3, 0xe5, - 0xc3, 0xe3, 0xd4, 0x11, 0x23, 0x33, 0xa5, 0xf1, 0x5a, 0xc7, 0x96, 0xe7, 0x98, 0x7c, 0xfe, 0xc9, - 0x6a, 0xd0, 0x36, 0x5e, 0x57, 0x18, 0x84, 0x0c, 0x3c, 0xae, 0x67, 0x38, 0x9e, 0x69, 0xdd, 0xe9, - 0x9e, 0xfd, 0x0a, 0x5b, 0xfc, 0x3a, 0x65, 0x7d, 0x68, 0x9d, 0x00, 0xd5, 0x2f, 0x25, 0xc8, 0x87, - 0xd4, 0xe0, 0x66, 0x3d, 0x86, 0x79, 0x5f, 0x36, 0xab, 0x4b, 0x7b, 0x54, 0x8f, 0x18, 0xd2, 0x22, - 0x0b, 0x82, 0x4f, 0x8e, 0x76, 0x01, 0x2c, 0xfc, 0xda, 0xe3, 0x87, 0x32, 0xab, 0x17, 0x09, 0x84, - 0x1e, 0xa8, 0x1c, 0xc2, 0x2c, 0x0b, 0xc5, 0xf4, 0xcb, 0xc4, 0x6f, 0x53, 0x80, 0x4e, 0xb0, 0x17, - 0xcc, 0x8b, 0x53, 0xba, 0x2c, 0x21, 0x8f, 0x53, 0xd3, 0xe6, 0xf1, 0x49, 0x68, 0xeb, 0x64, 0xd7, - 0xe0, 0x03, 0x7f, 0xa3, 0x8f, 0x28, 0x37, 0x6a, 0xe9, 0xfc, 0x9a, 0x5b, 0x9f, 0x5a, 0x86, 0x7c, - 0xe8, 0x40, 0x1e, 0xb9, 0xef, 0x00, 0x32, 0x7a, 0x86, 0xd9, 0x32, 0x6e, 0x5a, 0xcc, 0x52, 0x82, - 0xe5, 0xd3, 0xee, 0x6a, 0x80, 0xf1, 0xd9, 0xd4, 0x1f, 0xc2, 0x86, 0xd0, 0x6c, 0x1c, 0xfb, 0x66, - 0xda, 0x72, 0xae, 0x6e, 0xc1, 0xe6, 0x90, 0x04, 0x5e, 0xa5, 0x7e, 0x24, 0x76, 0x0d, 0xae, 0xec, - 0x1b, 0xd6, 0x28, 0xd5, 0x14, 0xcb, 0xe2, 0x90, 0x2c, 0x6e, 0x7c, 0x19, 0x96, 0x63, 0x82, 0x5b, - 0x88, 0xf4, 0x83, 0x2b, 0xec, 0xf4, 0xcc, 0x86, 0x18, 0xe7, 0x10, 0x97, 0xfa, 0x87, 0x14, 0x6c, - 0x8f, 0xa0, 0x46, 0x8f, 0x21, 0xed, 0x74, 0x1a, 0x5c, 0xdd, 0xf7, 0xc7, 0x09, 0x2f, 0x6a, 0x97, - 0xa5, 0xd3, 0x19, 0x8d, 0xb0, 0x28, 0x7f, 0x97, 0x20, 0xad, 0x5d, 0x96, 0xd0, 0x53, 0xc8, 0x04, - 0x8b, 0xe2, 0xca, 0xc1, 0xb7, 0x26, 0x11, 0x51, 0x24, 0xbb, 0xa4, 0x46, 0xd9, 0x54, 0x1b, 0x32, - 0x74, 0xb3, 0x0c, 0x6d, 0x79, 0x32, 0xac, 0x95, 0xb4, 0xca, 0x51, 0xbd, 0xa2, 0x97, 0x2b, 0x67, - 0x95, 0x7a, 0x45, 0x7f, 0x7e, 0x71, 0x76, 0x7d, 0x5e, 0xc9, 0x49, 0x64, 0x5d, 0xbb, 0xbc, 0x3e, - 0x3e, 0xab, 0x5e, 0x9d, 0xea, 0xd7, 0x35, 0xff, 0x89, 0x63, 0x53, 0x28, 0x07, 0xcb, 0x67, 0xd5, - 0xab, 0x3a, 0x07, 0x5c, 0xe5, 0xd2, 0x04, 0x72, 0x52, 0xa9, 0xeb, 0xa5, 0xa3, 0xcb, 0xa3, 0x52, - 0xb5, 0xfe, 0x59, 0x2e, 0x73, 0x3c, 0xc7, 0xf4, 0x55, 0xff, 0x37, 0x0b, 0x72, 0xcd, 0x6e, 0xe2, - 0x77, 0x37, 0x45, 0x37, 0xe3, 0x87, 0x23, 0x76, 0xcd, 0xbe, 0x47, 0x05, 0x26, 0x29, 0x30, 0xf9, - 0x54, 0x44, 0xca, 0xa7, 0x67, 0x38, 0x77, 0xd8, 0xd3, 0x3b, 0x86, 0xf7, 0x92, 0x0e, 0xe3, 0x8b, - 0x1a, 0x30, 0xd0, 0xa5, 0xe1, 0xbd, 0x8c, 0x9f, 0xd9, 0x67, 0xdf, 0x7c, 0x66, 0x9f, 0x8b, 0xcc, - 0xec, 0x2e, 0xc8, 0x74, 0xcc, 0x89, 0x1b, 0x62, 0xc4, 0x61, 0x39, 0xd1, 0x56, 0x01, 0x31, 0x34, - 0xb4, 0x6c, 0x58, 0xb1, 0x48, 0xf4, 0xf3, 0xb8, 0x0e, 0xbc, 0x40, 0x4f, 0xfb, 0x70, 0xf4, 0x69, - 0x93, 0x36, 0xde, 0xb7, 0x32, 0x6d, 0x2a, 0x55, 0xd8, 0x1e, 0x61, 0xde, 0x37, 0x3f, 0xd4, 0x6f, - 0xc3, 0x56, 0x8c, 0x67, 0x78, 0x8d, 0xfb, 0x67, 0x0a, 0x14, 0x82, 0x7d, 0x97, 0x43, 0x71, 0x24, - 0x5d, 0xd3, 0x43, 0xe9, 0xfa, 0x4b, 0x50, 0x68, 0x3a, 0x8d, 0x9a, 0x8a, 0x9f, 0x06, 0x21, 0x4e, - 0x98, 0x87, 0x43, 0xa8, 0xa1, 0xa4, 0xa2, 0xf9, 0x1a, 0x3b, 0x03, 0x3f, 0x83, 0xdd, 0x91, 0xac, - 0x53, 0xf9, 0x7a, 0x97, 0xc5, 0x3e, 0x69, 0xee, 0xfd, 0x08, 0x72, 0x27, 0xd8, 0x23, 0x14, 0xd5, - 0xf2, 0xb4, 0x1d, 0xe4, 0xdb, 0xb0, 0x2a, 0xf0, 0xf2, 0x8e, 0x21, 0xec, 0x1b, 0x92, 0xb8, 0x6f, - 0x90, 0x93, 0x68, 0xd0, 0xdf, 0xa4, 0x25, 0xe6, 0x61, 0x55, 0xe0, 0xe5, 0xaa, 0x97, 0x59, 0x9e, - 0x7c, 0xcd, 0x36, 0xf8, 0x39, 0xf3, 0x4f, 0x52, 0x03, 0xfc, 0x24, 0xd2, 0x00, 0xd9, 0xf0, 0xa6, - 0x04, 0xa1, 0x1f, 0xd7, 0xfa, 0xfe, 0x22, 0xc1, 0x7a, 0x2c, 0x1d, 0x3a, 0x10, 0x9b, 0xde, 0x5e, - 0xb2, 0x40, 0xb1, 0xdd, 0x5d, 0xb1, 0x6e, 0xf7, 0xfd, 0x50, 0xb7, 0x7b, 0x30, 0x9a, 0x57, 0xec, - 0x73, 0xf9, 0x98, 0x3e, 0xe7, 0xf7, 0xa2, 0x83, 0xbf, 0x49, 0xb0, 0x50, 0xa5, 0x89, 0xe6, 0xf5, - 0xd1, 0xe7, 0xf4, 0xcb, 0xcf, 0xd0, 0x37, 0x2a, 0x54, 0xf0, 0x07, 0xb3, 0xa4, 0xaf, 0x5b, 0xca, - 0xfd, 0x11, 0x14, 0x3c, 0x72, 0x33, 0xe8, 0x14, 0xb2, 0xa1, 0xcf, 0x35, 0x68, 0x2b, 0xee, 0x13, - 0x0e, 0x13, 0xa8, 0x24, 0x7f, 0xdd, 0x51, 0x67, 0x0e, 0xfe, 0x3c, 0x07, 0x30, 0xe8, 0xf4, 0xa8, - 0x02, 0xcb, 0xe2, 0x4f, 0xed, 0x48, 0x4e, 0xfa, 0xc2, 0xa0, 0x6c, 0xc5, 0x60, 0x02, 0xfd, 0x2a, - 0xb0, 0x2c, 0xfe, 0xf6, 0xc5, 0xc5, 0xc4, 0xfc, 0x66, 0xc7, 0xc5, 0xc4, 0xfe, 0x50, 0x36, 0x83, - 0x6e, 0x43, 0xa3, 0x9c, 0x78, 0x01, 0xd1, 0x83, 0x09, 0x7e, 0xbb, 0x51, 0xde, 0x9f, 0xe4, 0xc7, - 0x0b, 0x75, 0x06, 0xb5, 0x60, 0x2b, 0x71, 0xc5, 0x45, 0x0f, 0x27, 0xda, 0xde, 0x95, 0x47, 0xe3, - 0xc8, 0x82, 0xd3, 0x6c, 0x50, 0x92, 0x17, 0x39, 0xf4, 0x68, 0xb2, 0xdd, 0x53, 0xf9, 0x60, 0x2c, - 0x5d, 0x70, 0xe0, 0x31, 0x2c, 0x09, 0x8b, 0x12, 0xda, 0x1c, 0x5e, 0x9d, 0x98, 0x48, 0x39, 0x69, - 0xa7, 0x62, 0x32, 0x84, 0xe9, 0x9e, 0xcb, 0x18, 0x5e, 0x30, 0xb8, 0x8c, 0x98, 0x45, 0x40, 0x9d, - 0x41, 0x35, 0x78, 0x2f, 0x32, 0x99, 0xa3, 0xed, 0x68, 0x84, 0x84, 0xf2, 0xa6, 0xec, 0xc4, 0x23, - 0xe3, 0xc3, 0x16, 0xa9, 0x40, 0x43, 0x61, 0x8b, 0xaf, 0x73, 0x43, 0x61, 0x4b, 0x28, 0x64, 0xea, - 0xcc, 0xc1, 0xef, 0xd2, 0x90, 0x21, 0x55, 0x02, 0xd5, 0x79, 0x35, 0x0d, 0x65, 0xc9, 0xee, 0xc8, - 0x81, 0x45, 0xd9, 0x4b, 0x42, 0x07, 0xc6, 0xfc, 0x04, 0xf2, 0x31, 0x8d, 0x06, 0xdd, 0x1b, 0xd3, - 0x25, 0x95, 0x42, 0x32, 0x41, 0x20, 0xfb, 0x63, 0x58, 0x0c, 0x3a, 0x0d, 0x5a, 0xf7, 0x23, 0x14, - 0xea, 0x5a, 0xca, 0x46, 0x14, 0x2c, 0x72, 0x07, 0xdd, 0x83, 0x73, 0x47, 0x3b, 0x11, 0xe7, 0x1e, - 0x6e, 0x32, 0x81, 0x5d, 0xd1, 0xf0, 0x0c, 0xec, 0x4a, 0x08, 0x4c, 0x21, 0x99, 0xc0, 0x97, 0x7d, - 0x33, 0x47, 0xff, 0x69, 0xe0, 0xc3, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x4c, 0x87, 0xb3, 0x9c, - 0x41, 0x20, 0x00, 0x00, + // 2071 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x19, 0x49, 0x73, 0xdb, 0xd6, + 0x59, 0xe0, 0xa2, 0xe5, 0xa3, 0xa8, 0xd0, 0x4f, 0x1b, 0x04, 0x4a, 0x32, 0x0d, 0xc5, 0x8e, 0x3a, + 0x93, 0xf2, 0xa0, 0x4c, 0xa7, 0x76, 0x1c, 0x7b, 0x2a, 0x51, 0x8c, 0xc4, 0x5a, 0xa2, 0x14, 0x88, + 0xb2, 0x9b, 0xb6, 0x19, 0x14, 0x22, 0x9f, 0x64, 0xd4, 0x24, 0xc0, 0x00, 0xa0, 0xc6, 0x9c, 0x4e, + 0x6f, 0xbd, 0xb5, 0x87, 0xce, 0xf4, 0xd0, 0x4b, 0xa7, 0x3d, 0xb6, 0x9d, 0xe9, 0xad, 0xd3, 0x53, + 0xfe, 0x42, 0xaf, 0xbd, 0xf4, 0xd4, 0x6b, 0xfa, 0x2b, 0x32, 0x6f, 0x01, 0xf8, 0x00, 0x02, 0x5c, + 0xec, 0x38, 0x27, 0x12, 0xdf, 0xbe, 0xbc, 0xf7, 0x2d, 0x00, 0x2c, 0x34, 0x5d, 0xb3, 0xdc, 0x75, + 0x6c, 0xcf, 0x46, 0xe9, 0xa6, 0x6b, 0xaa, 0x5b, 0x50, 0x3c, 0xc2, 0xde, 0x45, 0xaf, 0xdb, 0xb5, + 0x1d, 0x0f, 0xb7, 0x9e, 0x63, 0xc7, 0x35, 0x6d, 0xcb, 0xd5, 0xf0, 0x97, 0x3d, 0xec, 0x7a, 0xea, + 0xcf, 0x60, 0x33, 0x1e, 0xed, 0x76, 0x6d, 0xcb, 0xc5, 0xe8, 0x31, 0x20, 0xd7, 0x47, 0xea, 0xb7, + 0x1c, 0x2b, 0x4b, 0xa5, 0xf4, 0x6e, 0x6e, 0x6f, 0xb1, 0x4c, 0x74, 0x71, 0x16, 0xed, 0x8e, 0x1b, + 0x15, 0xa2, 0x3e, 0x83, 0x39, 0xfe, 0x1f, 0xad, 0x40, 0xb6, 0x63, 0xfc, 0xd2, 0x76, 0x64, 0xa9, + 0x24, 0xed, 0x66, 0x35, 0xf6, 0x40, 0xa1, 0xa6, 0x65, 0x3b, 0x72, 0x8a, 0x43, 0xc9, 0x03, 0x81, + 0x76, 0x0d, 0xaf, 0xf9, 0x52, 0x4e, 0x33, 0x28, 0x7d, 0x50, 0x9f, 0xc2, 0xca, 0x11, 0xf6, 0xce, + 0xdb, 0xbd, 0x1b, 0xd3, 0xaa, 0x59, 0xd7, 0x36, 0xf7, 0x00, 0x3d, 0x80, 0x39, 0x6e, 0x17, 0x95, + 0x1d, 0x35, 0xcb, 0x47, 0xaa, 0xff, 0x91, 0x60, 0x35, 0x22, 0x80, 0xfb, 0x88, 0x20, 0x63, 0x19, + 0x1d, 0x4c, 0xd9, 0x17, 0x34, 0xfa, 0x1f, 0xdd, 0x87, 0xa5, 0x5b, 0x6c, 0xb5, 0x6c, 0xc7, 0x77, + 0x9a, 0x9a, 0xb8, 0xa0, 0xe5, 0x19, 0xd4, 0x77, 0xeb, 0x10, 0xe6, 0x3b, 0x86, 0x65, 0x5e, 0x63, + 0xd7, 0x93, 0xd3, 0x34, 0x28, 0xbb, 0x54, 0x7b, 0xac, 0xa2, 0xf2, 0x29, 0x27, 0xad, 0x5a, 0x9e, + 0xd3, 0xd7, 0x02, 0x4e, 0xe5, 0x31, 0xe4, 0x43, 0x28, 0x54, 0x80, 0xf4, 0x2b, 0xdc, 0xe7, 0x06, + 0x91, 0xbf, 0x24, 0x26, 0xb7, 0x46, 0xbb, 0x87, 0xb9, 0x19, 0xec, 0xe1, 0xe3, 0xd4, 0x43, 0x49, + 0xfd, 0x47, 0x06, 0x96, 0x2b, 0x0e, 0x36, 0x3c, 0xfc, 0xdc, 0x6e, 0xf7, 0x3a, 0x78, 0xca, 0xb8, + 0x04, 0xde, 0xa7, 0x04, 0xef, 0x1f, 0xc1, 0x52, 0xd3, 0xe8, 0x1a, 0x4d, 0xd3, 0xeb, 0xeb, 0x8e, + 0x61, 0xdd, 0x60, 0x9a, 0x8a, 0xdc, 0x1e, 0xa2, 0x22, 0x2a, 0x1c, 0xa5, 0x11, 0x8c, 0x96, 0x6f, + 0x8a, 0x8f, 0xe8, 0x53, 0x58, 0xbe, 0xa5, 0x76, 0xe8, 0x04, 0x7e, 0x65, 0xb6, 0x4d, 0xcf, 0xc4, + 0xae, 0x9c, 0xa1, 0xc1, 0x59, 0x65, 0x26, 0x50, 0x7c, 0xc5, 0x47, 0xf7, 0x35, 0x74, 0x1b, 0x86, + 0x98, 0xd8, 0x45, 0xc7, 0x00, 0x5d, 0xc3, 0x31, 0x3a, 0xd8, 0xc3, 0x8e, 0x2b, 0x67, 0x85, 0xd8, + 0xc6, 0x38, 0x5b, 0x3e, 0x0f, 0x48, 0x59, 0x6c, 0x05, 0x5e, 0xf4, 0x6b, 0xd8, 0x6a, 0xda, 0x96, + 0xe7, 0xd8, 0xed, 0x36, 0x76, 0xf4, 0x26, 0xe5, 0x26, 0x3f, 0x2d, 0x6c, 0x79, 0xa6, 0xd1, 0x76, + 0xe5, 0x59, 0x2a, 0xfc, 0x51, 0xa2, 0xf0, 0x4a, 0xc0, 0xcd, 0xb0, 0x95, 0x01, 0x2f, 0xd3, 0x56, + 0x6c, 0x26, 0x53, 0x28, 0x4f, 0xe0, 0xbd, 0x88, 0x75, 0xd3, 0xa4, 0x57, 0xa9, 0x43, 0x69, 0x9c, + 0xfe, 0xa9, 0x8e, 0xcb, 0x63, 0x58, 0x09, 0xfb, 0xc8, 0x2f, 0xc1, 0x0e, 0xcc, 0xb2, 0x2c, 0xf0, + 0xd3, 0x92, 0x13, 0x52, 0xa5, 0x71, 0x94, 0xfa, 0xe7, 0x0c, 0x14, 0xa2, 0xd9, 0x43, 0x8f, 0x20, + 0x7b, 0xd5, 0xb6, 0x9b, 0xaf, 0x38, 0xe3, 0xbd, 0xd8, 0x1c, 0x97, 0x0f, 0x08, 0x09, 0x83, 0x1e, + 0xcf, 0x68, 0x8c, 0x83, 0xb0, 0x76, 0xec, 0x9e, 0xe5, 0x51, 0x33, 0x13, 0x59, 0x4f, 0x09, 0xc9, + 0x80, 0x95, 0x72, 0xa0, 0x7d, 0xc8, 0x19, 0xcd, 0x26, 0x76, 0x5d, 0xbd, 0x63, 0xb7, 0xfc, 0xf3, + 0x59, 0x8a, 0x17, 0xb0, 0x4f, 0x09, 0x4f, 0xed, 0x16, 0xd6, 0xc0, 0x08, 0xfe, 0x2b, 0x79, 0xc8, + 0x09, 0x56, 0x29, 0x47, 0x90, 0x13, 0x34, 0xa1, 0x75, 0x98, 0xbb, 0x76, 0x75, 0xaf, 0xdf, 0xf5, + 0x0b, 0xc3, 0xec, 0xb5, 0xdb, 0xe8, 0x77, 0x31, 0xba, 0x0b, 0x39, 0x6a, 0x82, 0x7e, 0xdd, 0x36, + 0x6e, 0x5c, 0x39, 0x55, 0x4a, 0xef, 0x2e, 0x68, 0x40, 0x41, 0x9f, 0x12, 0x88, 0xf2, 0xb5, 0x04, + 0x30, 0x50, 0x89, 0x1e, 0x41, 0x86, 0x9a, 0x48, 0xa4, 0x2c, 0xed, 0xdd, 0x1f, 0x67, 0x62, 0x99, + 0xda, 0x49, 0x59, 0xd4, 0xbf, 0x48, 0x90, 0xa1, 0x32, 0x72, 0x30, 0x77, 0x59, 0x7f, 0x56, 0x3f, + 0x7b, 0x51, 0x2f, 0xcc, 0xa0, 0x35, 0x40, 0x17, 0xb5, 0xfa, 0xd1, 0x49, 0x55, 0xaf, 0x9f, 0x1d, + 0x56, 0xf5, 0x17, 0x5a, 0xad, 0x51, 0xd5, 0x0a, 0x12, 0x2a, 0xc2, 0xba, 0x08, 0xd7, 0xaa, 0xfb, + 0x87, 0x55, 0x4d, 0x3f, 0xab, 0x9f, 0x7c, 0x5e, 0x48, 0x21, 0x05, 0xd6, 0x4e, 0x2f, 0x4f, 0x1a, + 0xb5, 0x61, 0x5c, 0x1a, 0x6d, 0x82, 0x2c, 0xe0, 0xb8, 0x0c, 0x2e, 0x36, 0x43, 0xc4, 0x0a, 0x58, + 0xf6, 0x97, 0x23, 0xb3, 0x07, 0xf9, 0x20, 0x0d, 0x24, 0x52, 0xea, 0x0b, 0xc8, 0x87, 0xaa, 0x03, + 0xa9, 0xa3, 0x0e, 0xfe, 0xb2, 0x67, 0x3a, 0xb8, 0xa5, 0x5f, 0xf5, 0x3d, 0xec, 0xd2, 0x30, 0xa4, + 0xb5, 0xbc, 0x0f, 0x3d, 0x20, 0x40, 0x12, 0xd3, 0xb6, 0xd9, 0x31, 0x3d, 0x4e, 0x93, 0xa2, 0x34, + 0x40, 0x41, 0x94, 0x40, 0xfd, 0x4a, 0x82, 0x59, 0x9e, 0x98, 0xfb, 0x42, 0x71, 0x0a, 0x89, 0xf4, + 0xa1, 0x4c, 0xe4, 0x12, 0xa4, 0xcc, 0x16, 0x3f, 0xff, 0x29, 0xb3, 0x85, 0x1e, 0x03, 0x18, 0x9e, + 0xe7, 0x98, 0x57, 0x3d, 0xc2, 0xc2, 0x8a, 0x75, 0x51, 0x48, 0x46, 0x79, 0x3f, 0xc0, 0xf2, 0x1a, + 0x32, 0x20, 0x27, 0x97, 0x38, 0x82, 0x9e, 0xea, 0xd2, 0xfd, 0x3d, 0x05, 0xcb, 0x87, 0xb8, 0x8d, + 0xdf, 0xb4, 0x46, 0x17, 0x61, 0x81, 0x17, 0xd5, 0xc0, 0xa5, 0x79, 0x06, 0xa8, 0xb5, 0x22, 0xf5, + 0xad, 0x45, 0xd5, 0x84, 0xea, 0x5b, 0x5a, 0xa8, 0x6f, 0x31, 0x56, 0x08, 0xf5, 0x8d, 0x61, 0x47, + 0xd5, 0xb7, 0x21, 0x8a, 0x70, 0x81, 0x8a, 0x17, 0x30, 0x55, 0xac, 0xd6, 0x60, 0x25, 0x6c, 0x24, + 0x2b, 0x50, 0xea, 0xff, 0x33, 0xb0, 0x3d, 0x50, 0x74, 0xde, 0xbb, 0x6a, 0x9b, 0xee, 0xcb, 0x77, + 0x10, 0xce, 0x75, 0x98, 0xb3, 0xec, 0x16, 0x45, 0xa5, 0xd9, 0xbd, 0x27, 0x8f, 0xb5, 0x16, 0x3a, + 0x80, 0x3b, 0xd1, 0xce, 0xd6, 0x97, 0x33, 0x54, 0x4f, 0x42, 0x5f, 0x2b, 0xdc, 0x46, 0x6b, 0xa5, + 0x02, 0xf3, 0x0e, 0x36, 0x5a, 0xb6, 0xd5, 0xee, 0xcb, 0xd9, 0x92, 0xb4, 0x3b, 0xaf, 0x05, 0xcf, + 0xe8, 0xb7, 0x12, 0x6c, 0x0b, 0x89, 0xec, 0x32, 0x0f, 0x63, 0x3a, 0x55, 0x95, 0x75, 0xaa, 0x91, + 0xb1, 0x18, 0x46, 0x0f, 0x65, 0x75, 0xb3, 0x39, 0x82, 0x04, 0x5d, 0x07, 0xde, 0x0a, 0xb7, 0x66, + 0x4e, 0xec, 0x94, 0xa3, 0xf5, 0xb3, 0xa7, 0xe8, 0x9d, 0xe2, 0x11, 0x19, 0x80, 0x95, 0x33, 0xb8, + 0x37, 0xd6, 0xd4, 0xa9, 0x1a, 0x66, 0x05, 0x56, 0x63, 0x75, 0x4f, 0x75, 0x08, 0xbf, 0x92, 0xe0, + 0x6e, 0xa2, 0x83, 0xbc, 0x63, 0xfe, 0x04, 0x16, 0xfd, 0x1c, 0x99, 0xd6, 0xb5, 0xcd, 0x87, 0xe2, + 0x1f, 0x8c, 0x0e, 0x0e, 0x9f, 0x04, 0x39, 0x94, 0x4c, 0x87, 0x2c, 0x30, 0xb9, 0xee, 0x00, 0xa2, + 0x3c, 0x85, 0x42, 0x94, 0x60, 0x2a, 0xeb, 0xbf, 0x4e, 0x89, 0x77, 0xf2, 0xd2, 0xea, 0x7e, 0xf7, + 0x97, 0xe5, 0x0f, 0x12, 0x94, 0x84, 0xc3, 0xdc, 0xb3, 0xe2, 0x8e, 0x33, 0x1b, 0x0a, 0x6b, 0x91, + 0x88, 0xc5, 0xdb, 0x1b, 0x47, 0x30, 0x74, 0xa4, 0x85, 0xfb, 0x13, 0x47, 0xa4, 0x7c, 0x06, 0x3b, + 0x13, 0x88, 0x99, 0x2a, 0xd6, 0x3b, 0xe2, 0xf9, 0x1d, 0x32, 0x9d, 0xd7, 0xae, 0xff, 0xa5, 0xe0, + 0xde, 0x73, 0xa3, 0x6d, 0xb6, 0x82, 0xb9, 0x4b, 0x9c, 0x75, 0xbf, 0xd5, 0x8c, 0x24, 0xcc, 0xdf, + 0xe9, 0x69, 0xe7, 0x6f, 0x33, 0xee, 0xfe, 0xb3, 0x84, 0x7d, 0xc2, 0xa4, 0x8c, 0xf3, 0x67, 0xe2, + 0x12, 0xf0, 0xad, 0xdc, 0xd8, 0x9f, 0x83, 0x3a, 0xca, 0x22, 0x7e, 0x67, 0x37, 0x61, 0x21, 0x58, + 0x53, 0xa9, 0xdc, 0x79, 0x6d, 0x00, 0x40, 0x32, 0xcc, 0x75, 0xb0, 0xeb, 0x1a, 0x37, 0xbe, 0x7c, + 0xff, 0x51, 0xfd, 0x8d, 0x04, 0xe8, 0xc4, 0x74, 0xf9, 0x6c, 0x38, 0x75, 0xc6, 0xc8, 0xc8, 0x68, + 0xbc, 0xd6, 0xb1, 0xe5, 0x39, 0x26, 0x1f, 0x6f, 0xb2, 0x1a, 0x74, 0x8c, 0xd7, 0x55, 0x06, 0x21, + 0x33, 0x8d, 0xeb, 0x19, 0x8e, 0x67, 0x5a, 0x37, 0xba, 0x67, 0xbf, 0xc2, 0x16, 0xbf, 0x4e, 0x79, + 0x1f, 0xda, 0x20, 0x40, 0xf5, 0x4f, 0x12, 0x2c, 0x87, 0xcc, 0xe0, 0x6e, 0x3d, 0x84, 0x39, 0x5f, + 0x36, 0xab, 0x42, 0xdb, 0xd4, 0x8e, 0x18, 0xd2, 0x32, 0x4b, 0x82, 0x4f, 0x8e, 0xb6, 0x00, 0x2c, + 0xfc, 0xda, 0xe3, 0x4a, 0x99, 0xd7, 0x0b, 0x04, 0x42, 0x15, 0x2a, 0x1f, 0x42, 0x96, 0xa5, 0x62, + 0xa2, 0xf5, 0xe0, 0x77, 0x29, 0x40, 0x47, 0xd8, 0x0b, 0x26, 0xc0, 0x29, 0xa3, 0x94, 0x70, 0x74, + 0x53, 0xd3, 0x1e, 0xdd, 0xa3, 0xd0, 0xea, 0xc8, 0x4e, 0xfe, 0x07, 0xfe, 0x5a, 0x1e, 0x31, 0x6e, + 0xd4, 0xe6, 0xf8, 0x96, 0xab, 0x9b, 0x7a, 0x08, 0xcb, 0x21, 0x85, 0x3c, 0x59, 0xdf, 0x07, 0x64, + 0xdc, 0x1a, 0x66, 0xdb, 0xb8, 0x6a, 0x33, 0x4f, 0x09, 0x96, 0xcf, 0xb0, 0x77, 0x02, 0x8c, 0xcf, + 0xa6, 0xfe, 0x08, 0xd6, 0x84, 0x6e, 0xe2, 0xd8, 0x57, 0xd3, 0x56, 0x70, 0x75, 0x03, 0xd6, 0x87, + 0x24, 0xf0, 0xc2, 0xf4, 0x63, 0xb1, 0x51, 0x70, 0x63, 0xdf, 0xb0, 0x2c, 0xa9, 0xa6, 0x58, 0x09, + 0x87, 0x64, 0x71, 0xe7, 0x0f, 0x61, 0x31, 0x26, 0xb9, 0xa5, 0x48, 0x0b, 0xb8, 0xc0, 0xce, 0xad, + 0xd9, 0x14, 0xf3, 0x1c, 0xe2, 0x52, 0xff, 0x98, 0x82, 0xe2, 0x08, 0x6a, 0xf4, 0x10, 0xd2, 0x4e, + 0xb7, 0xc9, 0xcd, 0x7d, 0x7f, 0x9c, 0xf0, 0xb2, 0x76, 0x5e, 0x39, 0x9e, 0xd1, 0x08, 0x8b, 0xf2, + 0x2f, 0x09, 0xd2, 0xda, 0x79, 0x05, 0x3d, 0x81, 0x4c, 0xb0, 0xfa, 0x2d, 0xed, 0x7d, 0x6f, 0x12, + 0x11, 0x65, 0xb2, 0x1d, 0x6a, 0x94, 0x4d, 0xb5, 0x21, 0x43, 0x77, 0xc5, 0xd0, 0xde, 0x26, 0xc3, + 0x4a, 0x45, 0xab, 0xee, 0x37, 0xaa, 0xfa, 0x61, 0xf5, 0xa4, 0xda, 0xa8, 0xea, 0xcf, 0xcf, 0x4e, + 0x2e, 0x4f, 0xab, 0x05, 0x89, 0x2c, 0x60, 0xe7, 0x97, 0x07, 0x27, 0xb5, 0x8b, 0x63, 0xfd, 0xb2, + 0xee, 0xff, 0xe3, 0xd8, 0x14, 0x2a, 0xc0, 0xe2, 0x49, 0xed, 0xa2, 0xc1, 0x01, 0x17, 0x85, 0x34, + 0x81, 0x1c, 0x55, 0x1b, 0x7a, 0x65, 0xff, 0x7c, 0xbf, 0x52, 0x6b, 0x7c, 0x5e, 0xc8, 0x1c, 0xcc, + 0x32, 0x7b, 0xd5, 0xff, 0x66, 0x41, 0xae, 0xdb, 0x2d, 0xfc, 0xee, 0xe6, 0xe3, 0xcf, 0x22, 0x63, + 0x0f, 0xbb, 0x5f, 0x65, 0x2a, 0x29, 0x49, 0xf3, 0xe8, 0x79, 0x87, 0x94, 0x47, 0xcf, 0x70, 0x6e, + 0xb0, 0xa7, 0x77, 0x0d, 0xef, 0x25, 0x9d, 0xa9, 0x17, 0x34, 0x60, 0xa0, 0x73, 0xc3, 0x7b, 0x19, + 0x3f, 0x7a, 0x67, 0xdf, 0x7c, 0xf4, 0x9e, 0x8d, 0x8c, 0xde, 0x2e, 0xc8, 0x74, 0x8c, 0x89, 0x1b, + 0x52, 0xc4, 0x99, 0x37, 0xd1, 0x3f, 0x01, 0x31, 0x34, 0x94, 0xac, 0x59, 0xb1, 0x48, 0xf4, 0x8b, + 0xb8, 0x0e, 0x3b, 0x4f, 0xb5, 0x7d, 0x34, 0x5a, 0xdb, 0xa4, 0x8d, 0xf5, 0x2d, 0xe7, 0x48, 0xa5, + 0x06, 0xc5, 0x11, 0x8e, 0x7d, 0xf7, 0x53, 0x79, 0x11, 0x36, 0x62, 0x62, 0xc2, 0x4b, 0xd9, 0xbf, + 0x53, 0xa0, 0x10, 0xec, 0xbb, 0x1c, 0x77, 0x23, 0x07, 0x35, 0x3d, 0x74, 0x50, 0x7f, 0x05, 0x0a, + 0x3d, 0x48, 0xa3, 0xe6, 0xdd, 0x27, 0x41, 0x72, 0x13, 0x26, 0xdd, 0x10, 0x6a, 0xe8, 0x38, 0xd1, + 0x93, 0x1a, 0x3b, 0xdd, 0x3e, 0x83, 0xad, 0x91, 0xac, 0x53, 0xc5, 0x7a, 0x8b, 0xe5, 0x3e, 0x69, + 0xa2, 0xfd, 0x18, 0x0a, 0x04, 0x7d, 0x84, 0xbd, 0x5a, 0x6b, 0xda, 0x46, 0xf1, 0x21, 0xdc, 0x11, + 0x78, 0x79, 0x63, 0x10, 0x36, 0x09, 0x49, 0xdc, 0x24, 0x7c, 0x4d, 0x6f, 0xd4, 0xf9, 0x96, 0x99, + 0xa6, 0x70, 0xcf, 0x3b, 0x64, 0xe7, 0xe4, 0x2d, 0xbb, 0xdd, 0x17, 0x2c, 0x3e, 0x49, 0x7d, 0xee, + 0x69, 0xa4, 0xcf, 0xb1, 0xb1, 0x4c, 0x09, 0x52, 0x3f, 0xae, 0xc3, 0xfd, 0x4d, 0x82, 0xd5, 0x58, + 0x3a, 0xb4, 0x27, 0xf6, 0xb6, 0xed, 0x64, 0x81, 0x62, 0x57, 0xbb, 0x60, 0x4d, 0xed, 0x87, 0xa1, + 0xa6, 0xb6, 0x33, 0x9a, 0x57, 0x6c, 0x67, 0xcb, 0x31, 0xed, 0xcc, 0x6f, 0x39, 0x7b, 0xff, 0x94, + 0x60, 0xbe, 0x46, 0x0f, 0x9a, 0xd7, 0x47, 0x5f, 0xd0, 0xaf, 0x34, 0x43, 0xdf, 0x93, 0x50, 0xc9, + 0x9f, 0xbf, 0x92, 0xbe, 0x44, 0x29, 0xf7, 0x46, 0x50, 0xf0, 0xcc, 0xcd, 0xa0, 0x63, 0xc8, 0x87, + 0x3e, 0xad, 0xa0, 0x8d, 0xb8, 0xcf, 0x2d, 0x4c, 0xa0, 0x92, 0xfc, 0x25, 0x46, 0x9d, 0xd9, 0xfb, + 0xeb, 0x2c, 0xc0, 0xa0, 0xa1, 0xa3, 0x2a, 0x2c, 0x8a, 0xaf, 0xc5, 0x91, 0x9c, 0xf4, 0x35, 0x40, + 0xd9, 0x88, 0xc1, 0x04, 0xf6, 0x55, 0x61, 0x51, 0x7c, 0x79, 0xc5, 0xc5, 0xc4, 0xbc, 0x74, 0xe3, + 0x62, 0x62, 0xdf, 0x74, 0xcd, 0xa0, 0xeb, 0xd0, 0xc4, 0x26, 0x5e, 0x40, 0xb4, 0x33, 0xc1, 0xcb, + 0x17, 0xe5, 0xfd, 0x49, 0x5e, 0x42, 0xa8, 0x33, 0xa8, 0x0d, 0x1b, 0x89, 0xcb, 0x2b, 0xba, 0x3f, + 0xd1, 0x5e, 0xae, 0x3c, 0x18, 0x47, 0x16, 0x68, 0xb3, 0x41, 0x49, 0x5e, 0xd1, 0xd0, 0x83, 0xc9, + 0xb6, 0x4a, 0xe5, 0x83, 0xb1, 0x74, 0x81, 0xc2, 0x03, 0xc8, 0x09, 0x2b, 0x10, 0x5a, 0x1f, 0x5e, + 0x8a, 0x98, 0x48, 0x39, 0x69, 0x5b, 0x62, 0x32, 0x84, 0x21, 0x9e, 0xcb, 0x18, 0xde, 0x23, 0xb8, + 0x8c, 0x98, 0x79, 0x5f, 0x9d, 0x41, 0x75, 0x78, 0x2f, 0x32, 0x80, 0xa3, 0x62, 0x34, 0x43, 0x42, + 0x79, 0x53, 0x36, 0xe3, 0x91, 0xf1, 0x69, 0x8b, 0x54, 0xa0, 0xa1, 0xb4, 0xc5, 0xd7, 0xb9, 0xa1, + 0xb4, 0x25, 0x14, 0x32, 0x75, 0x66, 0xef, 0xf7, 0x69, 0xc8, 0x90, 0x2a, 0x81, 0x1a, 0xbc, 0x9a, + 0x86, 0x4e, 0xc9, 0xd6, 0xc8, 0x51, 0x45, 0xd9, 0x4e, 0x42, 0x07, 0xce, 0xfc, 0x14, 0x96, 0x63, + 0x1a, 0x0d, 0xba, 0x3b, 0xa6, 0x4b, 0x2a, 0xa5, 0x64, 0x82, 0x40, 0xf6, 0x27, 0xb0, 0x10, 0x74, + 0x1a, 0xb4, 0x1a, 0x30, 0x88, 0x5d, 0x4b, 0x59, 0x8b, 0x82, 0xa3, 0xdc, 0x2c, 0x61, 0x03, 0xee, + 0x50, 0xaa, 0xd6, 0xa2, 0xe0, 0xa8, 0x5f, 0xd1, 0xf4, 0xdc, 0x15, 0xd5, 0xc5, 0x25, 0xa6, 0x94, + 0x4c, 0xe0, 0xcb, 0xbe, 0x9a, 0xa5, 0x1f, 0xf8, 0x3f, 0xfa, 0x26, 0x00, 0x00, 0xff, 0xff, 0x9b, + 0x61, 0xfa, 0x6c, 0xed, 0x1f, 0x00, 0x00, } diff --git a/spec.md b/spec.md index 2f533e2a..a4d0592f 100644 --- a/spec.md +++ b/spec.md @@ -279,8 +279,8 @@ service Node { rpc NodeUnpublishVolume (NodeUnpublishVolumeRequest) returns (NodeUnpublishVolumeResponse) {} - rpc GetNodeID (GetNodeIDRequest) - returns (GetNodeIDResponse) {} + rpc NodeGetId (NodeGetIdRequest) + returns (NodeGetIdResponse) {} rpc NodeProbe (NodeProbeRequest) returns (NodeProbeResponse) {} @@ -386,9 +386,12 @@ message GetSupportedVersionsResponse { // Specifies a version in Semantic Version 2.0 format. // (http://semver.org/spec/v2.0.0.html) message Version { - uint32 major = 1; // This field is REQUIRED. - uint32 minor = 2; // This field is REQUIRED. - uint32 patch = 3; // This field is REQUIRED. + // The value of this field MUST NOT be negative. + int32 major = 1; // This field is REQUIRED. + // The value of this field MUST NOT be negative. + int32 minor = 2; // This field is REQUIRED. + // The value of this field MUST NOT be negative. + int32 patch = 3; // This field is REQUIRED. } ``` @@ -496,7 +499,7 @@ message CreateVolumeResponse { // 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. - VolumeInfo volume_info = 1; + Volume volume = 1; } // Specify a capability of a volume. @@ -566,19 +569,22 @@ message VolumeCapability { message CapacityRange { // Volume must be at least this big. This field is OPTIONAL. // A value of 0 is equal to an unspecified field value. - uint64 required_bytes = 1; + // The value of this field MUST NOT be negative. + int64 required_bytes = 1; // Volume must not be bigger than this. This field is OPTIONAL. // A value of 0 is equal to an unspecified field value. - uint64 limit_bytes = 2; + // The value of this field MUST NOT be negative. + int64 limit_bytes = 2; } // The information about a provisioned volume. -message VolumeInfo { +message Volume { // The capacity of the volume in bytes. This field is OPTIONAL. If not // set (value of 0), it indicates that the capacity of the volume is // unknown (e.g., NFS share). - uint64 capacity_bytes = 1; + // The value of this field MUST NOT be negative. + int64 capacity_bytes = 1; // Contains identity information for the created volume. This field is // REQUIRED. The identity information will be used by the CO in @@ -683,7 +689,7 @@ message ControllerPublishVolumeRequest { string volume_id = 2; // The ID of the node. This field is REQUIRED. The CO SHALL set this - // field to match the node ID returned by `GetNodeID`. + // field to match the node ID returned by `NodeGetId`. string node_id = 3; // The capability of the volume the CO expects the volume to have. @@ -708,7 +714,7 @@ message ControllerPublishVolumeRequest { map controller_publish_credentials = 6; // Attributes of the volume to be used on a node. This field is - // OPTIONAL and MUST match the attributes of the VolumeInfo identified + // OPTIONAL and MUST match the attributes of the Volume identified // by `volume_id`. map volume_attributes = 7; } @@ -717,7 +723,7 @@ message ControllerPublishVolumeResponse { // The SP specific information that will be passed to the Plugin in // the subsequent `NodePublishVolume` call for the given volume. // This information is opaque to the CO. This field is OPTIONAL. - map publish_volume_info = 1; + map publish_info = 1; } ``` @@ -760,7 +766,7 @@ message ControllerUnpublishVolumeRequest { string volume_id = 2; // The ID of the node. This field is OPTIONAL. The CO SHOULD set this - // field to match the node ID returned by `GetNodeID` or leave it + // field to match the node ID returned by `NodeGetId` 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. @@ -818,7 +824,7 @@ message ValidateVolumeCapabilitiesRequest { repeated VolumeCapability volume_capabilities = 3; // Attributes of the volume to check. This field is OPTIONAL and MUST - // match the attributes of the VolumeInfo identified by `volume_id`. + // match the attributes of the Volume identified by `volume_id`. map volume_attributes = 4; } @@ -862,7 +868,8 @@ message ListVolumesRequest { // 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. - uint32 max_entries = 2; + // The value of this field MUST NOT be negative. + int32 max_entries = 2; // A token to specify where to start paginating. Set this field to // `next_token` returned by a previous `ListVolumes` call to get the @@ -873,7 +880,7 @@ message ListVolumesRequest { message ListVolumesResponse { message Entry { - VolumeInfo volume_info = 1; + Volume volume = 1; } repeated Entry entries = 1; @@ -929,7 +936,8 @@ message GetCapacityResponse { // specified in the request, the Plugin SHALL take those into // consideration when calculating the available capacity of the // storage. This field is REQUIRED. - uint64 available_capacity = 1; + // The value of this field MUST NOT be negative. + int64 available_capacity = 1; } ``` @@ -1056,7 +1064,7 @@ message NodePublishVolumeRequest { // 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. - map publish_volume_info = 3; + map publish_info = 3; // The path to which the volume will be published. It MUST be an // absolute path in the root filesystem of the process serving this @@ -1088,7 +1096,7 @@ message NodePublishVolumeRequest { map node_publish_credentials = 7; // Attributes of the volume to publish. This field is OPTIONAL and - // MUST match the attributes of the VolumeInfo identified by + // MUST match the attributes of the Volume identified by // `volume_id`. map volume_attributes = 8; } @@ -1166,7 +1174,7 @@ The CO MUST implement the specified error recovery behavior when it encounters t | Operation pending for volume | 10 ABORTED | Indicates that there is a already an operation pending for the specified volume. In general the Cluster Orchestrator (CO) is responsible for ensuring that there is no more than one call "in-flight" per volume at a given time. However, in some circumstances, the CO MAY lose state (for example when the CO crashes and restarts), and MAY issue multiple calls simultaneously for the same volume. The Plugin, SHOULD handle this as gracefully as possible, and MAY return this error code to reject secondary calls. | Caller SHOULD ensure that there are no other calls pending for the specified volume, and then retry with exponential back off. | -#### `GetNodeID` +#### `NodeGetId` A Node Plugin MUST implement this RPC call if the plugin has `PUBLISH_UNPUBLISH_VOLUME` controller capability. The Plugin SHALL assume that this RPC will be executed on the node where the volume will be used. @@ -1174,12 +1182,12 @@ The CO SHOULD call this RPC for the node at which it wants to place the workload The result of this call will be used by CO in `ControllerPublishVolume`. ```protobuf -message GetNodeIDRequest { +message NodeGetIdRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; } -message GetNodeIDResponse { +message NodeGetIdResponse { // The ID of the node as understood by the SP which SHALL be used by // CO in subsequent `ControllerPublishVolume`. // This is a REQUIRED field. @@ -1187,15 +1195,15 @@ message GetNodeIDResponse { } ``` -##### GetNodeID Errors +##### NodeGetId Errors -If the plugin is unable to complete the GetNodeID call successfully, it MUST return a non-ok gRPC code in the gRPC status. +If the plugin is unable to complete the NodeGetId call successfully, it MUST return a non-ok gRPC code in the gRPC status. If the conditions defined below are encountered, the plugin MUST return the specified gRPC error code. The CO MUST implement the specified error recovery behavior when it encounters the gRPC error code. Condition | gRPC Code | Description | Recovery Behavior | --- | --- | --- | --- | -| Call not implemented | 12 UNIMPLEMENTED | GetNodeID call is not implemented by the plugin or disabled in the Plugin's current mode of operation. | Caller MUST NOT retry. Caller MAY call `ControllerGetCapabilities` or `NodeGetCapabilities` to discover Plugin capabilities. | +| Call not implemented | 12 UNIMPLEMENTED | NodeGetId call is not implemented by the plugin or disabled in the Plugin's current mode of operation. | Caller MUST NOT retry. Caller MAY call `ControllerGetCapabilities` or `NodeGetCapabilities` to discover Plugin capabilities. | #### `NodeProbe`