From b5697ba38f6f4361bd6af955f1d2a13b98d2d2c6 Mon Sep 17 00:00:00 2001 From: James DeFelice Date: Fri, 16 Feb 2018 12:04:55 +0000 Subject: [PATCH 1/6] spec: proto package incorporates major version --- csi.proto | 4 +++- spec.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/csi.proto b/csi.proto index 97697878..3fc23d0a 100644 --- a/csi.proto +++ b/csi.proto @@ -1,6 +1,8 @@ //////// syntax = "proto3"; -package csi; +package csi.v1; + +option go_package = "csi"; //////// //////// service Identity { diff --git a/spec.md b/spec.md index 0f28621f..9cc087ba 100644 --- a/spec.md +++ b/spec.md @@ -242,7 +242,9 @@ Each SP MUST provide: ```protobuf syntax = "proto3"; -package csi; +package csi.v1; + +option go_package = "csi"; ``` There are three sets of RPCs: From 4e6c34190741b2f01a325d7e2b56dbf82042a8dd Mon Sep 17 00:00:00 2001 From: James DeFelice Date: Fri, 16 Feb 2018 12:06:20 +0000 Subject: [PATCH 2/6] lib/go: generate bindings into versioned package structure --- lib/go/Makefile | 11 +- lib/go/csi/{ => v1}/csi.pb.go | 461 +++++++++++++++++----------------- 2 files changed, 237 insertions(+), 235 deletions(-) rename lib/go/csi/{ => v1}/csi.pb.go (82%) diff --git a/lib/go/Makefile b/lib/go/Makefile index 552175ff..3af5de2b 100644 --- a/lib/go/Makefile +++ b/lib/go/Makefile @@ -76,10 +76,11 @@ export PATH := $(shell pwd):$(PATH) ######################################################################## ## BUILD ## ######################################################################## -CSI_GO := csi/csi.pb.go -CSI_A := csi.a CSI_PROTO := ../../csi.proto -CSI_GO_TMP := csi/.build/csi.pb.go +CSI_PKG := $(shell cat $(CSI_PROTO) | sed -n -e 's/^package.\([^;]*\);$$/\1/p'|tr '.' '/') +CSI_GO := $(CSI_PKG)/csi.pb.go +CSI_A := csi.a +CSI_GO_TMP := $(CSI_PKG)/.build/csi.pb.go # This recipe generates the go language bindings to a temp area. $(CSI_GO_TMP): $(CSI_PROTO) | $(PROTOC) $(PROTOC_GEN_GO) @@ -104,8 +105,8 @@ endif # 3. Build the archive file. $(CSI_A): $(CSI_GO) go get -d ./... - go install ./csi - go build -o "$@" ./csi + go install ./$(CSI_PKG) + go build -o "$@" ./$(CSI_PKG) build: $(CSI_A) diff --git a/lib/go/csi/csi.pb.go b/lib/go/csi/v1/csi.pb.go similarity index 82% rename from lib/go/csi/csi.pb.go rename to lib/go/csi/v1/csi.pb.go index b750eca0..dde41171 100644 --- a/lib/go/csi/csi.pb.go +++ b/lib/go/csi/v1/csi.pb.go @@ -760,7 +760,7 @@ func (m *VolumeCapability_MountVolume) GetMountFlags() []string { // Specify how a volume can be accessed. type VolumeCapability_AccessMode struct { // This field is REQUIRED. - Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,enum=csi.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` + Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,enum=csi.v1.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` } func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } @@ -1495,7 +1495,7 @@ func _ControllerServiceCapability_OneofSizer(msg proto.Message) (n int) { } type ControllerServiceCapability_RPC struct { - Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` + Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.v1.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` } func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServiceCapability_RPC{} } @@ -1885,7 +1885,7 @@ func _NodeServiceCapability_OneofSizer(msg proto.Message) (n int) { } type NodeServiceCapability_RPC struct { - Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.NodeServiceCapability_RPC_Type" json:"type,omitempty"` + Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.v1.NodeServiceCapability_RPC_Type" json:"type,omitempty"` } func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } @@ -1901,58 +1901,58 @@ func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { } func init() { - proto.RegisterType((*GetSupportedVersionsRequest)(nil), "csi.GetSupportedVersionsRequest") - proto.RegisterType((*GetSupportedVersionsResponse)(nil), "csi.GetSupportedVersionsResponse") - proto.RegisterType((*Version)(nil), "csi.Version") - proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.GetPluginInfoRequest") - proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.GetPluginInfoResponse") - proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.GetPluginCapabilitiesRequest") - proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.GetPluginCapabilitiesResponse") - proto.RegisterType((*PluginCapability)(nil), "csi.PluginCapability") - proto.RegisterType((*PluginCapability_Service)(nil), "csi.PluginCapability.Service") - proto.RegisterType((*CreateVolumeRequest)(nil), "csi.CreateVolumeRequest") - proto.RegisterType((*CreateVolumeResponse)(nil), "csi.CreateVolumeResponse") - proto.RegisterType((*VolumeCapability)(nil), "csi.VolumeCapability") - proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.VolumeCapability.BlockVolume") - proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.VolumeCapability.MountVolume") - proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.VolumeCapability.AccessMode") - proto.RegisterType((*CapacityRange)(nil), "csi.CapacityRange") - proto.RegisterType((*Volume)(nil), "csi.Volume") - proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.DeleteVolumeRequest") - proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.DeleteVolumeResponse") - proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.ControllerPublishVolumeRequest") - proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.ControllerPublishVolumeResponse") - proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.ControllerUnpublishVolumeRequest") - proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.ControllerUnpublishVolumeResponse") - proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.ValidateVolumeCapabilitiesRequest") - proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.ValidateVolumeCapabilitiesResponse") - proto.RegisterType((*ListVolumesRequest)(nil), "csi.ListVolumesRequest") - proto.RegisterType((*ListVolumesResponse)(nil), "csi.ListVolumesResponse") - proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.ListVolumesResponse.Entry") - proto.RegisterType((*GetCapacityRequest)(nil), "csi.GetCapacityRequest") - proto.RegisterType((*GetCapacityResponse)(nil), "csi.GetCapacityResponse") - proto.RegisterType((*ControllerProbeRequest)(nil), "csi.ControllerProbeRequest") - proto.RegisterType((*ControllerProbeResponse)(nil), "csi.ControllerProbeResponse") - proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.ControllerGetCapabilitiesRequest") - proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.ControllerGetCapabilitiesResponse") - proto.RegisterType((*ControllerServiceCapability)(nil), "csi.ControllerServiceCapability") - proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.ControllerServiceCapability.RPC") - proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.NodePublishVolumeRequest") - proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.NodePublishVolumeResponse") - proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.NodeUnpublishVolumeRequest") - proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.NodeUnpublishVolumeResponse") - 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") - proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.NodeGetCapabilitiesResponse") - proto.RegisterType((*NodeServiceCapability)(nil), "csi.NodeServiceCapability") - proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.NodeServiceCapability.RPC") - proto.RegisterEnum("csi.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) - proto.RegisterEnum("csi.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) - proto.RegisterEnum("csi.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) - proto.RegisterEnum("csi.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) + proto.RegisterType((*GetSupportedVersionsRequest)(nil), "csi.v1.GetSupportedVersionsRequest") + proto.RegisterType((*GetSupportedVersionsResponse)(nil), "csi.v1.GetSupportedVersionsResponse") + proto.RegisterType((*Version)(nil), "csi.v1.Version") + proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.v1.GetPluginInfoRequest") + proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.v1.GetPluginInfoResponse") + proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.v1.GetPluginCapabilitiesRequest") + proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.v1.GetPluginCapabilitiesResponse") + proto.RegisterType((*PluginCapability)(nil), "csi.v1.PluginCapability") + proto.RegisterType((*PluginCapability_Service)(nil), "csi.v1.PluginCapability.Service") + proto.RegisterType((*CreateVolumeRequest)(nil), "csi.v1.CreateVolumeRequest") + proto.RegisterType((*CreateVolumeResponse)(nil), "csi.v1.CreateVolumeResponse") + proto.RegisterType((*VolumeCapability)(nil), "csi.v1.VolumeCapability") + proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.v1.VolumeCapability.BlockVolume") + proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.v1.VolumeCapability.MountVolume") + proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.v1.VolumeCapability.AccessMode") + proto.RegisterType((*CapacityRange)(nil), "csi.v1.CapacityRange") + proto.RegisterType((*Volume)(nil), "csi.v1.Volume") + proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.v1.DeleteVolumeRequest") + proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.v1.DeleteVolumeResponse") + proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.v1.ControllerPublishVolumeRequest") + proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.v1.ControllerPublishVolumeResponse") + proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.v1.ControllerUnpublishVolumeRequest") + proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.v1.ControllerUnpublishVolumeResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse") + proto.RegisterType((*ListVolumesRequest)(nil), "csi.v1.ListVolumesRequest") + proto.RegisterType((*ListVolumesResponse)(nil), "csi.v1.ListVolumesResponse") + proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.v1.ListVolumesResponse.Entry") + proto.RegisterType((*GetCapacityRequest)(nil), "csi.v1.GetCapacityRequest") + proto.RegisterType((*GetCapacityResponse)(nil), "csi.v1.GetCapacityResponse") + proto.RegisterType((*ControllerProbeRequest)(nil), "csi.v1.ControllerProbeRequest") + proto.RegisterType((*ControllerProbeResponse)(nil), "csi.v1.ControllerProbeResponse") + proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.v1.ControllerGetCapabilitiesRequest") + proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.v1.ControllerGetCapabilitiesResponse") + proto.RegisterType((*ControllerServiceCapability)(nil), "csi.v1.ControllerServiceCapability") + proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.v1.ControllerServiceCapability.RPC") + proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.v1.NodePublishVolumeRequest") + proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.v1.NodePublishVolumeResponse") + proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.v1.NodeUnpublishVolumeRequest") + proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.v1.NodeUnpublishVolumeResponse") + proto.RegisterType((*NodeGetIdRequest)(nil), "csi.v1.NodeGetIdRequest") + proto.RegisterType((*NodeGetIdResponse)(nil), "csi.v1.NodeGetIdResponse") + proto.RegisterType((*NodeProbeRequest)(nil), "csi.v1.NodeProbeRequest") + proto.RegisterType((*NodeProbeResponse)(nil), "csi.v1.NodeProbeResponse") + proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.v1.NodeGetCapabilitiesRequest") + proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.v1.NodeGetCapabilitiesResponse") + proto.RegisterType((*NodeServiceCapability)(nil), "csi.v1.NodeServiceCapability") + proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.v1.NodeServiceCapability.RPC") + proto.RegisterEnum("csi.v1.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) + proto.RegisterEnum("csi.v1.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) + proto.RegisterEnum("csi.v1.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) + proto.RegisterEnum("csi.v1.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) } // Reference imports to suppress errors if they are not otherwise used. @@ -1981,7 +1981,7 @@ func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { func (c *identityClient) GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) { out := new(GetSupportedVersionsResponse) - err := grpc.Invoke(ctx, "/csi.Identity/GetSupportedVersions", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Identity/GetSupportedVersions", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1990,7 +1990,7 @@ func (c *identityClient) GetSupportedVersions(ctx context.Context, in *GetSuppor func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { out := new(GetPluginInfoResponse) - err := grpc.Invoke(ctx, "/csi.Identity/GetPluginInfo", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Identity/GetPluginInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1999,7 +1999,7 @@ func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoReq func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) { out := new(GetPluginCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Identity/GetPluginCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Identity/GetPluginCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2028,7 +2028,7 @@ func _Identity_GetSupportedVersions_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Identity/GetSupportedVersions", + FullMethod: "/csi.v1.Identity/GetSupportedVersions", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(IdentityServer).GetSupportedVersions(ctx, req.(*GetSupportedVersionsRequest)) @@ -2046,7 +2046,7 @@ func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Identity/GetPluginInfo", + FullMethod: "/csi.v1.Identity/GetPluginInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(IdentityServer).GetPluginInfo(ctx, req.(*GetPluginInfoRequest)) @@ -2064,7 +2064,7 @@ func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Identity/GetPluginCapabilities", + FullMethod: "/csi.v1.Identity/GetPluginCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(IdentityServer).GetPluginCapabilities(ctx, req.(*GetPluginCapabilitiesRequest)) @@ -2073,7 +2073,7 @@ func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Contex } var _Identity_serviceDesc = grpc.ServiceDesc{ - ServiceName: "csi.Identity", + ServiceName: "csi.v1.Identity", HandlerType: (*IdentityServer)(nil), Methods: []grpc.MethodDesc{ { @@ -2117,7 +2117,7 @@ func NewControllerClient(cc *grpc.ClientConn) ControllerClient { func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { out := new(CreateVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/CreateVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/CreateVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2126,7 +2126,7 @@ func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeReq func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) { out := new(DeleteVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/DeleteVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/DeleteVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2135,7 +2135,7 @@ func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeReq func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) { out := new(ControllerPublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerPublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/ControllerPublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2144,7 +2144,7 @@ func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *Cont func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) { out := new(ControllerUnpublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerUnpublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/ControllerUnpublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2153,7 +2153,7 @@ func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *Co func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) { out := new(ValidateVolumeCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ValidateVolumeCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/ValidateVolumeCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2162,7 +2162,7 @@ func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *V func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { out := new(ListVolumesResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ListVolumes", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/ListVolumes", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2171,7 +2171,7 @@ func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesReque func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) { out := new(GetCapacityResponse) - err := grpc.Invoke(ctx, "/csi.Controller/GetCapacity", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/GetCapacity", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2180,7 +2180,7 @@ func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityReque func (c *controllerClient) ControllerProbe(ctx context.Context, in *ControllerProbeRequest, opts ...grpc.CallOption) (*ControllerProbeResponse, error) { out := new(ControllerProbeResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerProbe", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/ControllerProbe", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2189,7 +2189,7 @@ func (c *controllerClient) ControllerProbe(ctx context.Context, in *ControllerPr func (c *controllerClient) ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) { out := new(ControllerGetCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Controller/ControllerGetCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Controller/ControllerGetCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2224,7 +2224,7 @@ func _Controller_CreateVolume_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/CreateVolume", + FullMethod: "/csi.v1.Controller/CreateVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) @@ -2242,7 +2242,7 @@ func _Controller_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/DeleteVolume", + FullMethod: "/csi.v1.Controller/DeleteVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) @@ -2260,7 +2260,7 @@ func _Controller_ControllerPublishVolume_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerPublishVolume", + FullMethod: "/csi.v1.Controller/ControllerPublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerPublishVolume(ctx, req.(*ControllerPublishVolumeRequest)) @@ -2278,7 +2278,7 @@ func _Controller_ControllerUnpublishVolume_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerUnpublishVolume", + FullMethod: "/csi.v1.Controller/ControllerUnpublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerUnpublishVolume(ctx, req.(*ControllerUnpublishVolumeRequest)) @@ -2296,7 +2296,7 @@ func _Controller_ValidateVolumeCapabilities_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ValidateVolumeCapabilities", + FullMethod: "/csi.v1.Controller/ValidateVolumeCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, req.(*ValidateVolumeCapabilitiesRequest)) @@ -2314,7 +2314,7 @@ func _Controller_ListVolumes_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ListVolumes", + FullMethod: "/csi.v1.Controller/ListVolumes", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ListVolumes(ctx, req.(*ListVolumesRequest)) @@ -2332,7 +2332,7 @@ func _Controller_GetCapacity_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/GetCapacity", + FullMethod: "/csi.v1.Controller/GetCapacity", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).GetCapacity(ctx, req.(*GetCapacityRequest)) @@ -2350,7 +2350,7 @@ func _Controller_ControllerProbe_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerProbe", + FullMethod: "/csi.v1.Controller/ControllerProbe", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerProbe(ctx, req.(*ControllerProbeRequest)) @@ -2368,7 +2368,7 @@ func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Controller/ControllerGetCapabilities", + FullMethod: "/csi.v1.Controller/ControllerGetCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControllerServer).ControllerGetCapabilities(ctx, req.(*ControllerGetCapabilitiesRequest)) @@ -2377,7 +2377,7 @@ func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context. } var _Controller_serviceDesc = grpc.ServiceDesc{ - ServiceName: "csi.Controller", + ServiceName: "csi.v1.Controller", HandlerType: (*ControllerServer)(nil), Methods: []grpc.MethodDesc{ { @@ -2441,7 +2441,7 @@ func NewNodeClient(cc *grpc.ClientConn) NodeClient { func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) { out := new(NodePublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodePublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Node/NodePublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2450,7 +2450,7 @@ func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolum func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) { out := new(NodeUnpublishVolumeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeUnpublishVolume", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Node/NodeUnpublishVolume", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2459,7 +2459,7 @@ func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishV 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...) + err := grpc.Invoke(ctx, "/csi.v1.Node/NodeGetId", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2468,7 +2468,7 @@ func (c *nodeClient) NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts . func (c *nodeClient) NodeProbe(ctx context.Context, in *NodeProbeRequest, opts ...grpc.CallOption) (*NodeProbeResponse, error) { out := new(NodeProbeResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeProbe", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Node/NodeProbe", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2477,7 +2477,7 @@ func (c *nodeClient) NodeProbe(ctx context.Context, in *NodeProbeRequest, opts . func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) { out := new(NodeGetCapabilitiesResponse) - err := grpc.Invoke(ctx, "/csi.Node/NodeGetCapabilities", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/csi.v1.Node/NodeGetCapabilities", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -2508,7 +2508,7 @@ func _Node_NodePublishVolume_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodePublishVolume", + FullMethod: "/csi.v1.Node/NodePublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodePublishVolume(ctx, req.(*NodePublishVolumeRequest)) @@ -2526,7 +2526,7 @@ func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeUnpublishVolume", + FullMethod: "/csi.v1.Node/NodeUnpublishVolume", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeUnpublishVolume(ctx, req.(*NodeUnpublishVolumeRequest)) @@ -2544,7 +2544,7 @@ func _Node_NodeGetId_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeGetId", + FullMethod: "/csi.v1.Node/NodeGetId", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeGetId(ctx, req.(*NodeGetIdRequest)) @@ -2562,7 +2562,7 @@ func _Node_NodeProbe_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeProbe", + FullMethod: "/csi.v1.Node/NodeProbe", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeProbe(ctx, req.(*NodeProbeRequest)) @@ -2580,7 +2580,7 @@ func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/csi.Node/NodeGetCapabilities", + FullMethod: "/csi.v1.Node/NodeGetCapabilities", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NodeServer).NodeGetCapabilities(ctx, req.(*NodeGetCapabilitiesRequest)) @@ -2589,7 +2589,7 @@ func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec } var _Node_serviceDesc = grpc.ServiceDesc{ - ServiceName: "csi.Node", + ServiceName: "csi.v1.Node", HandlerType: (*NodeServer)(nil), Methods: []grpc.MethodDesc{ { @@ -2620,142 +2620,143 @@ var _Node_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("csi.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 2177 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x3a, 0xcd, 0x6f, 0xdb, 0xc8, - 0xf5, 0xa2, 0x3e, 0x2c, 0xfb, 0xc9, 0xce, 0x2a, 0xe3, 0x2f, 0x99, 0xfe, 0x88, 0x4c, 0x6f, 0xb2, - 0xf9, 0xe1, 0xb7, 0xd5, 0xc1, 0x8b, 0xb6, 0xf1, 0x66, 0x13, 0xd4, 0x96, 0x19, 0x5b, 0x8d, 0x2c, - 0x7b, 0x69, 0xd9, 0xe9, 0x6e, 0xbb, 0xe0, 0xd2, 0xd2, 0xd8, 0x61, 0x23, 0x91, 0x5a, 0x92, 0x32, - 0x22, 0x14, 0xbd, 0xf5, 0xd6, 0x16, 0x28, 0x50, 0x14, 0xbd, 0x14, 0xed, 0xb1, 0x2d, 0xd0, 0x6b, - 0x4f, 0xfb, 0x2f, 0xf4, 0xda, 0x4b, 0x4f, 0xbd, 0x6e, 0xff, 0x8a, 0x82, 0x33, 0x43, 0x6a, 0x48, - 0x0d, 0x65, 0x2b, 0x69, 0xf6, 0x64, 0xcd, 0xfb, 0x9e, 0xf7, 0xde, 0xbc, 0xf7, 0x66, 0x68, 0x98, - 0x69, 0xb9, 0x66, 0xa5, 0xe7, 0xd8, 0x9e, 0x8d, 0x32, 0x2d, 0xd7, 0x54, 0xd6, 0x61, 0xf5, 0x00, - 0x7b, 0xa7, 0xfd, 0x5e, 0xcf, 0x76, 0x3c, 0xdc, 0x3e, 0xc7, 0x8e, 0x6b, 0xda, 0x96, 0xab, 0xe1, - 0xaf, 0xfa, 0xd8, 0xf5, 0x94, 0x1f, 0xc3, 0x9a, 0x18, 0xed, 0xf6, 0x6c, 0xcb, 0xc5, 0xe8, 0x31, - 0x20, 0x37, 0x40, 0xea, 0xd7, 0x0c, 0x5b, 0x92, 0xca, 0x99, 0x87, 0x85, 0xed, 0xd9, 0x8a, 0xaf, - 0x8b, 0xb1, 0x68, 0x77, 0xdd, 0xb8, 0x10, 0xe5, 0x39, 0xe4, 0xd9, 0x6f, 0xb4, 0x00, 0xb9, 0xae, - 0xf1, 0x53, 0xdb, 0x29, 0x49, 0x65, 0xe9, 0x61, 0x4e, 0xa3, 0x0b, 0x02, 0x35, 0x2d, 0xdb, 0x29, - 0xa5, 0x19, 0xd4, 0x5f, 0xf8, 0xd0, 0x9e, 0xe1, 0xb5, 0x5e, 0x96, 0x32, 0x14, 0x4a, 0x16, 0xca, - 0x53, 0x58, 0x38, 0xc0, 0xde, 0x49, 0xa7, 0x7f, 0x65, 0x5a, 0x35, 0xeb, 0xd2, 0x66, 0x3b, 0x40, - 0x0f, 0x20, 0xcf, 0xec, 0x22, 0xb2, 0xe3, 0x66, 0x05, 0x48, 0xe5, 0x9f, 0x12, 0x2c, 0xc6, 0x04, - 0xb0, 0x3d, 0x22, 0xc8, 0x5a, 0x46, 0x17, 0x13, 0xf6, 0x19, 0x8d, 0xfc, 0x46, 0xf7, 0xe1, 0xce, - 0x35, 0xb6, 0xda, 0xb6, 0x13, 0x6c, 0x9a, 0x98, 0x38, 0xa3, 0xcd, 0x51, 0x68, 0xb0, 0xad, 0x7d, - 0x98, 0xee, 0x1a, 0x96, 0x79, 0x89, 0x5d, 0xaf, 0x94, 0x21, 0x4e, 0x79, 0x48, 0xb4, 0x0b, 0x15, - 0x55, 0x8e, 0x18, 0xa9, 0x6a, 0x79, 0xce, 0x40, 0x0b, 0x39, 0xe5, 0xc7, 0x30, 0x17, 0x41, 0xa1, - 0x22, 0x64, 0x5e, 0xe1, 0x01, 0x33, 0xc8, 0xff, 0xe9, 0xfb, 0xe4, 0xda, 0xe8, 0xf4, 0x31, 0x33, - 0x83, 0x2e, 0x3e, 0x4e, 0x3f, 0x92, 0x94, 0x67, 0x24, 0x82, 0x54, 0x5b, 0xd5, 0xe8, 0x19, 0x17, - 0x66, 0xc7, 0xf4, 0x4c, 0xec, 0x4e, 0xea, 0x9f, 0xcf, 0x61, 0x3d, 0x41, 0x0e, 0x73, 0xd3, 0x0e, - 0xcc, 0xb6, 0x38, 0x78, 0x29, 0x4d, 0xf6, 0xbb, 0x48, 0xa4, 0xc5, 0xd8, 0x06, 0x5a, 0x84, 0x54, - 0xf9, 0xb5, 0x04, 0xc5, 0x38, 0x09, 0xda, 0x81, 0xbc, 0x8b, 0x9d, 0x6b, 0xb3, 0x85, 0x99, 0x61, - 0xeb, 0x42, 0x51, 0x95, 0x53, 0x4a, 0x74, 0x98, 0xd2, 0x02, 0x7a, 0xf9, 0x7b, 0x90, 0x67, 0x50, - 0xe5, 0xff, 0x21, 0xdb, 0x1c, 0xf4, 0x30, 0x2a, 0x40, 0xfe, 0xac, 0xf1, 0xbc, 0x71, 0xfc, 0xa2, - 0x51, 0x4c, 0xa1, 0x25, 0x40, 0xd5, 0xe3, 0x46, 0x53, 0x3b, 0xae, 0xd7, 0x55, 0x4d, 0x3f, 0x55, - 0xb5, 0xf3, 0x5a, 0x55, 0x2d, 0x4a, 0x7b, 0x53, 0x90, 0xf5, 0x06, 0x3d, 0xac, 0xfc, 0x2d, 0x0b, - 0xf3, 0x55, 0x07, 0x1b, 0x1e, 0x3e, 0xb7, 0x3b, 0xfd, 0x2e, 0x9e, 0xd0, 0x57, 0x61, 0xc6, 0xa4, - 0xb9, 0x8c, 0xd9, 0x81, 0x3b, 0xfe, 0x9e, 0x5b, 0xa6, 0x37, 0xd0, 0x1d, 0xc3, 0xba, 0xc2, 0x24, - 0x7d, 0x0b, 0xdb, 0x88, 0x88, 0xa8, 0x32, 0x94, 0xe6, 0x63, 0xb4, 0xb9, 0x16, 0xbf, 0x44, 0xcf, - 0x60, 0xfe, 0x9a, 0xd8, 0xa1, 0x47, 0x1c, 0x9c, 0xe5, 0x1c, 0x4c, 0xed, 0xe4, 0x1c, 0x8c, 0xae, - 0xa3, 0x10, 0x13, 0xbb, 0xe8, 0x10, 0xa0, 0x67, 0x38, 0x46, 0x17, 0x7b, 0xd8, 0x71, 0x4b, 0x39, - 0x2e, 0x1f, 0x05, 0x9b, 0xad, 0x9c, 0x84, 0xa4, 0x34, 0x1f, 0x39, 0x5e, 0xf4, 0x73, 0x58, 0x6f, - 0xd9, 0x96, 0xe7, 0xd8, 0x9d, 0x0e, 0x76, 0xf4, 0x16, 0xe1, 0xf6, 0xff, 0xb4, 0xb1, 0xe5, 0x99, - 0x46, 0xc7, 0x2d, 0x4d, 0x11, 0xe1, 0x3b, 0x89, 0xc2, 0xab, 0x21, 0x37, 0xc5, 0x56, 0x87, 0xbc, - 0x54, 0xdb, 0x6a, 0x2b, 0x99, 0x42, 0x7e, 0x02, 0xef, 0xc5, 0xac, 0x9b, 0xe4, 0x48, 0xc8, 0x0d, - 0x28, 0xdf, 0xa4, 0x7f, 0xa2, 0x23, 0xf6, 0x18, 0x16, 0xa2, 0x7b, 0x64, 0x27, 0x62, 0x0b, 0xa6, - 0x68, 0x14, 0x58, 0xb6, 0x14, 0xb8, 0x50, 0x69, 0x0c, 0xa5, 0xfc, 0x31, 0x0b, 0xc5, 0x78, 0xf4, - 0xd0, 0x0e, 0xe4, 0x2e, 0x3a, 0x76, 0xeb, 0x15, 0x63, 0xdc, 0x14, 0xc6, 0xb8, 0xb2, 0xe7, 0x93, - 0x50, 0xe8, 0x61, 0x4a, 0xa3, 0x1c, 0x3e, 0x6b, 0xd7, 0xee, 0x5b, 0x1e, 0x31, 0x33, 0x91, 0xf5, - 0xc8, 0x27, 0x19, 0xb2, 0x12, 0x0e, 0xb4, 0x0b, 0x05, 0xa3, 0xd5, 0xc2, 0xae, 0xab, 0x77, 0xed, - 0x76, 0x90, 0x9f, 0x65, 0xb1, 0x80, 0x5d, 0x42, 0x78, 0x64, 0xb7, 0xb1, 0x06, 0x46, 0xf8, 0x5b, - 0x9e, 0x83, 0x02, 0x67, 0x95, 0x7c, 0x00, 0x05, 0x4e, 0x13, 0x5a, 0x86, 0xfc, 0xa5, 0xab, 0xfb, - 0x47, 0x8c, 0x39, 0x76, 0xea, 0xd2, 0x25, 0xa7, 0xf3, 0x1e, 0x14, 0x88, 0x09, 0xfa, 0x65, 0xc7, - 0xb8, 0xa2, 0xa5, 0x63, 0x46, 0x03, 0x02, 0x7a, 0xe6, 0x43, 0xe4, 0x6f, 0x24, 0x80, 0xa1, 0x4a, - 0xb4, 0x03, 0x59, 0x62, 0xa2, 0x2f, 0xe5, 0xce, 0xf6, 0xfd, 0x9b, 0x4c, 0xac, 0x10, 0x3b, 0x09, - 0x8b, 0xf2, 0x27, 0x09, 0xb2, 0x44, 0x46, 0xbc, 0x22, 0x9c, 0xd6, 0x1a, 0x07, 0x75, 0x55, 0x6f, - 0x1c, 0xef, 0xab, 0xfa, 0x0b, 0xad, 0xd6, 0x54, 0xb5, 0xa2, 0x84, 0x56, 0x61, 0x99, 0x87, 0x6b, - 0xea, 0xee, 0xbe, 0xaa, 0xe9, 0xc7, 0x8d, 0xfa, 0x67, 0xc5, 0x34, 0x92, 0x61, 0xe9, 0xe8, 0xac, - 0xde, 0xac, 0x8d, 0xe2, 0x32, 0x68, 0x0d, 0x4a, 0x1c, 0x8e, 0xc9, 0x60, 0x62, 0xb3, 0xbe, 0x58, - 0x0e, 0x4b, 0x7f, 0x32, 0x64, 0x6e, 0x6f, 0x2e, 0x0c, 0x03, 0x29, 0x46, 0x2f, 0x60, 0x2e, 0x52, - 0x1d, 0xfc, 0xde, 0xe3, 0xe0, 0xaf, 0xfa, 0xa6, 0x83, 0xdb, 0xfa, 0xc5, 0xc0, 0xc3, 0x2e, 0x71, - 0x43, 0x46, 0x9b, 0x0b, 0xa0, 0x7b, 0x3e, 0xd0, 0xf7, 0x69, 0xc7, 0xec, 0x9a, 0x1e, 0xa3, 0x49, - 0x13, 0x1a, 0x20, 0x20, 0x42, 0xa0, 0x7c, 0x2d, 0xc1, 0x14, 0x0b, 0xcc, 0x7d, 0xae, 0x38, 0x45, - 0x44, 0x06, 0x50, 0x2a, 0xf2, 0x0e, 0xa4, 0xcd, 0x36, 0xcb, 0xff, 0xb4, 0xd9, 0x46, 0x8f, 0x01, - 0x0c, 0xcf, 0x73, 0xcc, 0x8b, 0xbe, 0xcf, 0x42, 0x1b, 0xdc, 0x2a, 0x17, 0x8c, 0xca, 0x6e, 0x88, - 0x65, 0x35, 0x64, 0x48, 0xee, 0x1f, 0xe2, 0x18, 0x7a, 0xa2, 0x43, 0xf7, 0xd7, 0x34, 0xcc, 0xef, - 0xe3, 0x0e, 0x7e, 0xd3, 0x1a, 0xbd, 0x0a, 0x33, 0xac, 0xa8, 0x86, 0x5b, 0x9a, 0xa6, 0x80, 0x5a, - 0x3b, 0x56, 0xdf, 0xda, 0x44, 0x4d, 0xa4, 0xbe, 0x65, 0xb8, 0xfa, 0x26, 0xb0, 0x82, 0xab, 0x6f, - 0x14, 0x3b, 0xae, 0xbe, 0x8d, 0x50, 0x44, 0x0b, 0x94, 0x58, 0xc0, 0x44, 0xbe, 0x5a, 0x82, 0x85, - 0xa8, 0x91, 0xb4, 0x40, 0x29, 0xff, 0xc9, 0xc2, 0xc6, 0x50, 0xd1, 0x49, 0xff, 0xa2, 0x63, 0xba, - 0x2f, 0xdf, 0x81, 0x3b, 0x97, 0x21, 0x6f, 0xd9, 0x6d, 0x82, 0xca, 0xd0, 0x73, 0xef, 0x2f, 0x6b, - 0x6d, 0xb4, 0x07, 0x77, 0xe3, 0x9d, 0x6d, 0x50, 0xca, 0x12, 0x3d, 0x09, 0x7d, 0xad, 0x78, 0x1d, - 0xaf, 0x95, 0x32, 0x4c, 0x3b, 0xd8, 0x68, 0xdb, 0x56, 0x67, 0x50, 0xca, 0x95, 0xa5, 0x87, 0xd3, - 0x5a, 0xb8, 0x46, 0xbf, 0x94, 0x60, 0x83, 0x0b, 0x64, 0x8f, 0xee, 0x50, 0xd0, 0xa9, 0x54, 0xda, - 0xa9, 0xc6, 0xfa, 0x62, 0x14, 0x3d, 0x12, 0xd5, 0xb5, 0xd6, 0x18, 0x12, 0x74, 0x19, 0xee, 0x96, - 0x3b, 0x35, 0x79, 0xbe, 0x53, 0x8e, 0xd7, 0x4f, 0x57, 0xf1, 0x33, 0xc5, 0x3c, 0x32, 0x04, 0xcb, - 0xc7, 0xb0, 0x79, 0xa3, 0xa9, 0x13, 0x35, 0xcc, 0x2a, 0x2c, 0x0a, 0x75, 0x4f, 0x94, 0x84, 0x5f, - 0x4b, 0x70, 0x2f, 0x71, 0x83, 0xac, 0x63, 0xfe, 0x08, 0x66, 0x83, 0x18, 0x99, 0xd6, 0xa5, 0xcd, - 0x2e, 0x12, 0xdf, 0x1d, 0xef, 0x1c, 0x36, 0x3d, 0x33, 0xa8, 0x3f, 0x51, 0x53, 0xc7, 0x14, 0x7a, - 0x43, 0x88, 0xfc, 0x14, 0x8a, 0x71, 0x82, 0x89, 0xac, 0xff, 0x26, 0xcd, 0x9f, 0xc9, 0x33, 0xab, - 0xf7, 0xed, 0x1f, 0x96, 0xdf, 0x4a, 0x50, 0xe6, 0x92, 0xb9, 0x6f, 0x89, 0xd2, 0x99, 0x0e, 0x85, - 0xb5, 0x98, 0xc7, 0xc4, 0xf6, 0x8a, 0x08, 0x46, 0x52, 0x9a, 0x3b, 0x3f, 0x22, 0x22, 0xf9, 0x53, - 0xd8, 0xba, 0x85, 0x98, 0x89, 0x7c, 0xbd, 0xc5, 0xe7, 0xef, 0x88, 0xe9, 0xac, 0x76, 0xfd, 0x3b, - 0x0d, 0x9b, 0xe7, 0x46, 0xc7, 0x6c, 0x87, 0x73, 0xd7, 0x5b, 0xdc, 0x6e, 0xc6, 0x47, 0x24, 0x61, - 0xfe, 0xce, 0x4c, 0x3a, 0x7f, 0x9b, 0xa2, 0xf3, 0x4f, 0x03, 0xf6, 0x09, 0x95, 0x72, 0xd3, 0x7e, - 0x6e, 0x5d, 0x02, 0xfe, 0x27, 0x27, 0xf6, 0x27, 0xa0, 0x8c, 0xb3, 0x88, 0x9d, 0xd9, 0x35, 0x98, - 0x09, 0xaf, 0xf6, 0x44, 0xee, 0xb4, 0x36, 0x04, 0xa0, 0x12, 0xe4, 0xbb, 0xd8, 0x75, 0x8d, 0xab, - 0x40, 0x7e, 0xb0, 0x54, 0x7e, 0x21, 0x01, 0xaa, 0x9b, 0x2e, 0x9b, 0x0d, 0x27, 0x8e, 0x98, 0x3f, - 0x32, 0x1a, 0xaf, 0x75, 0x6c, 0x79, 0x8e, 0xc9, 0xc6, 0x9b, 0x9c, 0x06, 0x5d, 0xe3, 0xb5, 0x4a, - 0x21, 0xfe, 0x4c, 0xe3, 0x7a, 0x86, 0xe3, 0x99, 0xd6, 0x95, 0xee, 0xd9, 0xaf, 0xb0, 0xc5, 0x8e, - 0xd3, 0x5c, 0x00, 0x6d, 0xfa, 0x40, 0xe5, 0x0f, 0x12, 0xcc, 0x47, 0xcc, 0x60, 0xdb, 0x7a, 0x04, - 0xf9, 0x40, 0x36, 0xad, 0x42, 0x1b, 0xc4, 0x0e, 0x01, 0x69, 0x85, 0x06, 0x21, 0x20, 0x47, 0xeb, - 0x00, 0x16, 0x7e, 0xed, 0x31, 0xa5, 0x74, 0xd7, 0x33, 0x3e, 0x84, 0x28, 0x94, 0x3f, 0x84, 0x1c, - 0x0d, 0xc5, 0xad, 0xae, 0x07, 0xbf, 0x4a, 0x03, 0x3a, 0xc0, 0x5e, 0x38, 0x01, 0x4e, 0xe8, 0xa5, - 0x84, 0xd4, 0x4d, 0x4f, 0x9a, 0xba, 0x07, 0x91, 0xab, 0x23, 0xcd, 0xfc, 0x0f, 0x82, 0xa7, 0x8c, - 0x98, 0x71, 0xe3, 0x6e, 0x8e, 0x6f, 0x79, 0x75, 0x53, 0xf6, 0x61, 0x3e, 0xa2, 0x90, 0x05, 0xeb, - 0x3b, 0x80, 0x8c, 0x6b, 0xc3, 0xec, 0x18, 0x17, 0x1d, 0xba, 0x53, 0x1f, 0xcb, 0x66, 0xd8, 0xbb, - 0x21, 0x26, 0x60, 0x53, 0x7e, 0x00, 0x4b, 0x5c, 0x37, 0x71, 0xec, 0x8b, 0x49, 0x2b, 0xb8, 0xb2, - 0x02, 0xcb, 0x23, 0x12, 0x58, 0x61, 0xfa, 0x21, 0xdf, 0x28, 0x98, 0xb1, 0x6f, 0xfa, 0xe8, 0x62, - 0xf2, 0x95, 0x70, 0x44, 0x16, 0xdb, 0xfc, 0xbe, 0xf0, 0xe1, 0xa5, 0x1c, 0x6b, 0x01, 0xec, 0x41, - 0x24, 0xf1, 0x0d, 0xe6, 0xf7, 0x69, 0x58, 0x1d, 0x43, 0x8d, 0x1e, 0x41, 0xc6, 0xe9, 0xb5, 0x98, - 0xb9, 0xef, 0xdf, 0x24, 0xbc, 0xa2, 0x9d, 0x54, 0x0f, 0x53, 0x9a, 0xcf, 0x22, 0xff, 0x5d, 0x82, - 0x8c, 0x76, 0x52, 0x45, 0x4f, 0xe8, 0xeb, 0x0a, 0xbb, 0xb4, 0xfd, 0xdf, 0x6d, 0x44, 0x54, 0xfc, - 0xdb, 0xa1, 0x46, 0x1f, 0x65, 0x6c, 0xd1, 0x4b, 0x4e, 0x09, 0x16, 0xaa, 0x9a, 0xba, 0xdb, 0x54, - 0xf5, 0x7d, 0xb5, 0xae, 0x36, 0x55, 0xfd, 0xfc, 0xb8, 0x7e, 0x76, 0xa4, 0x16, 0x25, 0xff, 0x02, - 0x76, 0x72, 0xb6, 0x57, 0xaf, 0x9d, 0x1e, 0xea, 0x67, 0x8d, 0xe0, 0x17, 0xc3, 0xa6, 0x51, 0x11, - 0x66, 0xeb, 0xb5, 0xd3, 0x26, 0x03, 0x9c, 0x16, 0x33, 0x3e, 0xe4, 0x40, 0x6d, 0xea, 0xd5, 0xdd, - 0x93, 0xdd, 0x6a, 0xad, 0xf9, 0x59, 0x31, 0x1b, 0xbe, 0x06, 0xfd, 0x2b, 0x07, 0xa5, 0x86, 0xdd, - 0xc6, 0xef, 0x6e, 0x3e, 0xfe, 0x34, 0x36, 0xf6, 0xd0, 0xf3, 0x55, 0x21, 0x92, 0x92, 0x34, 0x8f, - 0x9f, 0x77, 0xfc, 0xf2, 0xe8, 0x19, 0xce, 0x15, 0xf6, 0xf4, 0x9e, 0xe1, 0xbd, 0x24, 0x33, 0xf5, - 0x8c, 0x06, 0x14, 0x74, 0x62, 0x78, 0x2f, 0xc5, 0xa3, 0x77, 0xee, 0xcd, 0x47, 0xef, 0xa9, 0xd8, - 0xe8, 0xed, 0x42, 0x89, 0x8c, 0x31, 0xa2, 0x21, 0x85, 0x9f, 0x79, 0x13, 0xf7, 0xc7, 0x21, 0x46, - 0x86, 0x92, 0x25, 0x4b, 0x88, 0x44, 0x5f, 0x8a, 0x3a, 0xec, 0x34, 0xd1, 0xf6, 0xd1, 0x78, 0x6d, - 0xb7, 0x6d, 0xac, 0x6f, 0x39, 0x47, 0xca, 0x35, 0x58, 0x1d, 0xb3, 0xb1, 0x6f, 0x7f, 0x2a, 0x5f, - 0x85, 0x15, 0x81, 0x4f, 0x58, 0x29, 0xfb, 0x47, 0x1a, 0x64, 0x1f, 0xfb, 0x2e, 0xc7, 0xdd, 0x58, - 0xa2, 0x66, 0x46, 0x12, 0xf5, 0x67, 0x20, 0x93, 0x44, 0x1a, 0x37, 0xef, 0x3e, 0x09, 0x83, 0x9b, - 0x30, 0xe9, 0x46, 0x50, 0x23, 0xe9, 0x44, 0x32, 0x55, 0x38, 0xdd, 0x3e, 0x87, 0xf5, 0xb1, 0xac, - 0x13, 0xf9, 0x7a, 0x9d, 0xc6, 0x3e, 0x69, 0xa2, 0xfd, 0x18, 0x8a, 0x3e, 0xfa, 0x00, 0x7b, 0xb5, - 0xf6, 0xa4, 0x8d, 0xe2, 0x43, 0xb8, 0xcb, 0xf1, 0xb2, 0xc6, 0xc0, 0xdd, 0x24, 0x24, 0xfe, 0x26, - 0x11, 0x68, 0x7a, 0xa3, 0xce, 0x37, 0x4f, 0x35, 0x45, 0x7b, 0xde, 0x3e, 0xcd, 0x93, 0xb7, 0xec, - 0x76, 0x5f, 0x50, 0xff, 0x24, 0xf5, 0xb9, 0xa7, 0xb1, 0x3e, 0x47, 0xc7, 0x32, 0x39, 0x0c, 0xfd, - 0x4d, 0x1d, 0xee, 0x2f, 0x12, 0x2c, 0x0a, 0xe9, 0xd0, 0x36, 0xdf, 0xdb, 0x36, 0x92, 0x05, 0xf2, - 0x5d, 0xed, 0x94, 0x36, 0xb5, 0xef, 0x47, 0x9a, 0xda, 0xd6, 0x78, 0x5e, 0xbe, 0x9d, 0xcd, 0x0b, - 0xda, 0x59, 0xd0, 0x72, 0xb6, 0x7f, 0x97, 0x86, 0xe9, 0x1a, 0x49, 0x34, 0x6f, 0x80, 0xbe, 0x20, - 0x5f, 0xb6, 0x46, 0xbe, 0xc1, 0xa1, 0x72, 0x30, 0x7f, 0x25, 0x7d, 0xbd, 0x93, 0x37, 0xc7, 0x50, - 0xb0, 0xc8, 0xa5, 0xd0, 0x21, 0xcc, 0x45, 0x3e, 0x47, 0xa1, 0x15, 0xd1, 0x27, 0x2a, 0x2a, 0x50, - 0x4e, 0xfe, 0x7a, 0xa5, 0xa4, 0xd0, 0x97, 0xdc, 0x17, 0xb4, 0xc8, 0xf4, 0xb8, 0x19, 0x65, 0x13, - 0xe4, 0x88, 0xac, 0x8c, 0x23, 0x09, 0x34, 0x6c, 0xff, 0x79, 0x0a, 0x60, 0x38, 0x32, 0x20, 0x15, - 0x66, 0xf9, 0x87, 0x77, 0x54, 0x4a, 0xfa, 0xde, 0x20, 0xaf, 0x08, 0x30, 0xa1, 0xdd, 0x2a, 0xcc, - 0xf2, 0xcf, 0x63, 0x4c, 0x8c, 0xe0, 0x59, 0x8f, 0x89, 0x11, 0xbe, 0xa5, 0xa5, 0xd0, 0x65, 0x64, - 0x26, 0xe4, 0x8f, 0x38, 0xda, 0xba, 0xc5, 0xf3, 0x8e, 0xfc, 0xfe, 0x6d, 0x9e, 0x39, 0x94, 0x14, - 0xea, 0xc0, 0x4a, 0xe2, 0xf5, 0x18, 0xdd, 0xbf, 0xd5, 0xcd, 0x5f, 0x7e, 0x70, 0x13, 0x59, 0xa8, - 0xcd, 0x06, 0x39, 0xf9, 0x12, 0x88, 0x1e, 0xdc, 0xee, 0xde, 0x2a, 0x7f, 0x70, 0x23, 0x5d, 0xa8, - 0x70, 0x0f, 0x0a, 0xdc, 0x25, 0x0b, 0x2d, 0x8f, 0x5e, 0xbb, 0xa8, 0xc8, 0x52, 0xd2, 0x7d, 0x8c, - 0xca, 0xe0, 0xae, 0x09, 0x4c, 0xc6, 0xe8, 0x4d, 0x85, 0xc9, 0x10, 0xdc, 0x28, 0x94, 0x14, 0x6a, - 0xc0, 0x7b, 0xb1, 0x11, 0x1f, 0xad, 0xc6, 0x23, 0xc4, 0x15, 0x50, 0x79, 0x4d, 0x8c, 0x14, 0x87, - 0x2d, 0x56, 0xe3, 0x46, 0xc2, 0x26, 0xae, 0xa4, 0x23, 0x61, 0x4b, 0x28, 0x95, 0x4a, 0x6a, 0xfb, - 0x37, 0x19, 0xc8, 0xfa, 0x75, 0x08, 0x35, 0x59, 0xbd, 0x8e, 0x64, 0xc9, 0xfa, 0xd8, 0x61, 0x48, - 0xde, 0x48, 0x42, 0x87, 0x9b, 0xf9, 0x1c, 0xe6, 0x05, 0xad, 0x0c, 0xdd, 0xbb, 0xa1, 0x0f, 0xcb, - 0xe5, 0x64, 0x82, 0x50, 0xf6, 0x27, 0x30, 0x13, 0xf6, 0x32, 0xb4, 0x18, 0x32, 0xf0, 0x7d, 0x51, - 0x5e, 0x8a, 0x83, 0xe3, 0xdc, 0x34, 0x60, 0x43, 0xee, 0x48, 0xa8, 0x96, 0xe2, 0xe0, 0xf8, 0xbe, - 0xe2, 0xe1, 0xb9, 0xc7, 0xab, 0x13, 0x05, 0xa6, 0x9c, 0x4c, 0x10, 0xc8, 0xbe, 0x98, 0x22, 0xff, - 0x76, 0xf1, 0xd1, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x17, 0xdf, 0x29, 0xbf, 0x83, 0x21, 0x00, - 0x00, + // 2198 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x1a, 0x4d, 0x6f, 0xdb, 0xc8, + 0x55, 0xd4, 0x87, 0x65, 0x3f, 0xc7, 0x89, 0x32, 0x4e, 0x1c, 0x99, 0xb6, 0x13, 0x9b, 0x4e, 0xb2, + 0xce, 0xee, 0x56, 0xc5, 0xba, 0xe8, 0x62, 0xb1, 0xf1, 0xa6, 0x6b, 0xcb, 0xaa, 0xac, 0x5a, 0x96, + 0x5d, 0x5a, 0x76, 0xb0, 0xdb, 0x0f, 0x2d, 0x2d, 0x8d, 0x1d, 0x36, 0x12, 0xa9, 0x25, 0x29, 0x21, + 0xba, 0x14, 0xbd, 0xf5, 0x56, 0xf4, 0xd2, 0xde, 0x8a, 0x02, 0xbd, 0x14, 0xe8, 0x61, 0xd1, 0x63, + 0x0f, 0xc5, 0xfe, 0x88, 0x9e, 0x7a, 0xe9, 0x0f, 0x58, 0xa0, 0x40, 0x6f, 0x3d, 0x17, 0x9c, 0x19, + 0x52, 0x43, 0x6a, 0x48, 0x49, 0x76, 0xd3, 0x9e, 0x2c, 0xbe, 0xef, 0x79, 0xef, 0xcd, 0x7b, 0x6f, + 0x66, 0x0c, 0x73, 0x4d, 0x5b, 0x2f, 0x74, 0x2d, 0xd3, 0x31, 0xd1, 0x8c, 0xfb, 0xb3, 0xff, 0x81, + 0xb2, 0x06, 0x2b, 0x65, 0xec, 0x9c, 0xf6, 0xba, 0x5d, 0xd3, 0x72, 0x70, 0xeb, 0x1c, 0x5b, 0xb6, + 0x6e, 0x1a, 0xb6, 0x8a, 0xbf, 0xec, 0x61, 0xdb, 0x51, 0x7e, 0x0a, 0xab, 0x62, 0xb4, 0xdd, 0x35, + 0x0d, 0x1b, 0xa3, 0x17, 0x80, 0x6c, 0x0f, 0xd9, 0xe8, 0x33, 0x6c, 0x5e, 0x5a, 0x4f, 0x6d, 0xcd, + 0x6f, 0xdf, 0x29, 0x50, 0x1d, 0x05, 0xc6, 0xa5, 0xde, 0xb5, 0xc3, 0x72, 0x94, 0x43, 0xc8, 0xb2, + 0xdf, 0xe8, 0x1e, 0x64, 0x3a, 0xda, 0xcf, 0x4c, 0x2b, 0x2f, 0xad, 0x4b, 0x5b, 0x19, 0x95, 0x7e, + 0x10, 0xa8, 0x6e, 0x98, 0x56, 0x3e, 0xc9, 0xa0, 0xee, 0x87, 0x0b, 0xed, 0x6a, 0x4e, 0xf3, 0x55, + 0x3e, 0x45, 0xa1, 0xe4, 0x43, 0xd9, 0x85, 0x7b, 0x65, 0xec, 0x9c, 0xb4, 0x7b, 0x57, 0xba, 0x51, + 0x31, 0x2e, 0x4d, 0xb6, 0x08, 0xf4, 0x0c, 0xb2, 0xcc, 0x34, 0x22, 0x5b, 0x60, 0x99, 0x87, 0x57, + 0xfe, 0x2e, 0xc1, 0xfd, 0x90, 0x0c, 0xb6, 0x52, 0x04, 0x69, 0x43, 0xeb, 0x60, 0x22, 0x61, 0x4e, + 0x25, 0xbf, 0xd1, 0x13, 0xb8, 0xdd, 0xc7, 0x46, 0xcb, 0xb4, 0xbc, 0xa5, 0x13, 0x2b, 0xe7, 0xd4, + 0x05, 0x0a, 0xf5, 0x56, 0x56, 0x86, 0xd9, 0x8e, 0x66, 0xe8, 0x97, 0xd8, 0x76, 0xf2, 0x29, 0xe2, + 0x9a, 0xf7, 0x3c, 0x03, 0x84, 0xba, 0x0a, 0x47, 0x8c, 0xba, 0x64, 0x38, 0xd6, 0x40, 0xf5, 0x99, + 0xe5, 0xe7, 0xb0, 0x10, 0x40, 0xa1, 0x1c, 0xa4, 0x5e, 0xe3, 0x01, 0xb3, 0xc9, 0xfd, 0xe9, 0x7a, + 0xa6, 0xaf, 0xb5, 0x7b, 0x98, 0x59, 0x42, 0x3f, 0x3e, 0x4e, 0x7e, 0x24, 0x29, 0x15, 0x12, 0x4a, + 0xaa, 0xad, 0xa8, 0x75, 0xb5, 0x0b, 0xbd, 0xad, 0x3b, 0x3a, 0xb6, 0xaf, 0xe1, 0xa5, 0x9f, 0xc0, + 0x5a, 0x84, 0x28, 0xe6, 0xac, 0x1d, 0xb8, 0xd5, 0xe4, 0xe0, 0xf9, 0x24, 0x59, 0x75, 0xde, 0x13, + 0x18, 0xe2, 0x1c, 0xa8, 0x01, 0x6a, 0xe5, 0xd7, 0x12, 0xe4, 0xc2, 0x24, 0x68, 0x07, 0xb2, 0x36, + 0xb6, 0xfa, 0x7a, 0x13, 0x33, 0xf3, 0xd6, 0xa3, 0xa4, 0x15, 0x4e, 0x29, 0xdd, 0x41, 0x42, 0xf5, + 0x58, 0xe4, 0x0f, 0x21, 0xcb, 0xa0, 0xca, 0x7b, 0x90, 0xae, 0x0f, 0xba, 0x18, 0xcd, 0x43, 0xf6, + 0xac, 0x76, 0x58, 0x3b, 0x7e, 0x59, 0xcb, 0x25, 0xd0, 0x12, 0xa0, 0xe2, 0x71, 0xad, 0xae, 0x1e, + 0x57, 0xab, 0x25, 0xb5, 0x71, 0x5a, 0x52, 0xcf, 0x2b, 0xc5, 0x52, 0x4e, 0xda, 0x9b, 0x81, 0xb4, + 0x33, 0xe8, 0x62, 0xe5, 0xaf, 0x69, 0x58, 0x2c, 0x5a, 0x58, 0x73, 0xf0, 0xb9, 0xd9, 0xee, 0x75, + 0xf0, 0xf4, 0x4e, 0xf3, 0x13, 0x28, 0xc9, 0x25, 0xd0, 0x0e, 0xdc, 0x76, 0x57, 0xde, 0xd4, 0x9d, + 0x41, 0xc3, 0xd2, 0x8c, 0x2b, 0x4c, 0x12, 0x7a, 0x7e, 0xfb, 0xbe, 0x27, 0xa5, 0xc8, 0xb0, 0xaa, + 0x8b, 0x54, 0x17, 0x9a, 0xfc, 0x27, 0xaa, 0xc0, 0x62, 0x9f, 0x58, 0xd3, 0x08, 0x38, 0x3b, 0x1d, + 0x74, 0x36, 0x35, 0x98, 0x73, 0x36, 0xea, 0x07, 0x21, 0x3a, 0xb6, 0xd1, 0x21, 0x40, 0x57, 0xb3, + 0xb4, 0x0e, 0x76, 0xb0, 0x65, 0xe7, 0x33, 0xc1, 0x24, 0x15, 0x2c, 0xbc, 0x70, 0xe2, 0x53, 0xd3, + 0x24, 0xe5, 0xd8, 0xd1, 0x2f, 0x24, 0x58, 0x6b, 0x9a, 0x86, 0x63, 0x99, 0xed, 0x36, 0xb6, 0x1a, + 0x4d, 0xc2, 0xee, 0xfe, 0x69, 0x61, 0xc3, 0xd1, 0xb5, 0xb6, 0x9d, 0x9f, 0x21, 0x0a, 0x76, 0xe2, + 0x14, 0x14, 0x7d, 0x01, 0x14, 0x5b, 0x1c, 0xb2, 0x53, 0x8d, 0x2b, 0xcd, 0x68, 0x0a, 0xf9, 0x13, + 0xb8, 0x13, 0xb2, 0x70, 0x9a, 0xbd, 0x22, 0xd7, 0x60, 0x7d, 0x9c, 0xfe, 0xa9, 0xf6, 0xde, 0x0b, + 0xb8, 0x17, 0x5c, 0x23, 0xdb, 0x27, 0x4f, 0x61, 0x86, 0x06, 0x83, 0x65, 0xcf, 0xed, 0x60, 0xd0, + 0x54, 0x86, 0x55, 0xfe, 0x94, 0x86, 0x5c, 0x38, 0x8e, 0x68, 0x07, 0x32, 0x17, 0x6d, 0xb3, 0xf9, + 0x9a, 0xf1, 0x3e, 0x8e, 0x0a, 0x78, 0x61, 0xcf, 0xa5, 0xa2, 0xd0, 0x83, 0x84, 0x4a, 0x99, 0x5c, + 0xee, 0x8e, 0xd9, 0x33, 0x1c, 0x62, 0x6c, 0x1c, 0xf7, 0x91, 0x4b, 0x35, 0xe4, 0x26, 0x4c, 0x68, + 0x1f, 0xe6, 0xb5, 0x66, 0x13, 0xdb, 0x76, 0xa3, 0x63, 0xb6, 0xbc, 0xac, 0xdd, 0x8c, 0x94, 0xb1, + 0x4b, 0x68, 0x8f, 0xcc, 0x16, 0x56, 0x41, 0xf3, 0x7f, 0xcb, 0x0b, 0x30, 0xcf, 0xd9, 0x26, 0x97, + 0x61, 0x9e, 0x53, 0x86, 0x1e, 0x40, 0xf6, 0xd2, 0x6e, 0xb8, 0xdb, 0x8f, 0x39, 0x79, 0xe6, 0xd2, + 0x26, 0x3b, 0xf7, 0x11, 0xcc, 0x13, 0x2b, 0x1a, 0x97, 0x6d, 0xed, 0x8a, 0x16, 0x97, 0x39, 0x15, + 0x08, 0xe8, 0xfb, 0x2e, 0x44, 0xfe, 0xa7, 0x04, 0x30, 0x54, 0x89, 0x76, 0x20, 0x4d, 0xac, 0x74, + 0xa5, 0xdc, 0xde, 0xde, 0x9a, 0xc0, 0xca, 0x02, 0x31, 0x95, 0x70, 0x29, 0xbf, 0x97, 0x20, 0x4d, + 0xc4, 0x84, 0x0b, 0xc6, 0x69, 0xa5, 0x56, 0xae, 0x96, 0x1a, 0xb5, 0xe3, 0xfd, 0x52, 0xe3, 0xa5, + 0x5a, 0xa9, 0x97, 0xd4, 0x9c, 0x84, 0x56, 0xe0, 0x01, 0x0f, 0x57, 0x4b, 0xbb, 0xfb, 0x25, 0xb5, + 0x71, 0x5c, 0xab, 0x7e, 0x96, 0x4b, 0x22, 0x19, 0x96, 0x8e, 0xce, 0xaa, 0xf5, 0xca, 0x28, 0x2e, + 0x85, 0x56, 0x21, 0xcf, 0xe1, 0x98, 0x0c, 0x26, 0x36, 0xed, 0x8a, 0xe5, 0xb0, 0xf4, 0x27, 0x43, + 0x66, 0xf6, 0x16, 0xfc, 0x60, 0x90, 0x5a, 0xf5, 0x12, 0x16, 0x02, 0x65, 0xc3, 0x6d, 0x53, 0x16, + 0xfe, 0xb2, 0xa7, 0x5b, 0xb8, 0xd5, 0xb8, 0x18, 0x38, 0xd8, 0x26, 0x9e, 0x48, 0xa9, 0x0b, 0x1e, + 0x74, 0xcf, 0x05, 0xba, 0x6e, 0x6d, 0xeb, 0x1d, 0xdd, 0x61, 0x34, 0x49, 0x42, 0x03, 0x04, 0x44, + 0x08, 0x94, 0xaf, 0x25, 0x98, 0x61, 0xb1, 0x79, 0xc2, 0x15, 0xae, 0x80, 0x48, 0x0f, 0x4a, 0x45, + 0xde, 0x86, 0xa4, 0xde, 0x62, 0xdb, 0x21, 0xa9, 0xb7, 0xd0, 0x0b, 0x00, 0xcd, 0x71, 0x2c, 0xfd, + 0xa2, 0xe7, 0xb2, 0xd0, 0x5e, 0xf8, 0x30, 0x18, 0x8f, 0xc2, 0xae, 0x4f, 0xc0, 0x2a, 0xcb, 0x90, + 0xc3, 0xdd, 0xd6, 0x21, 0xf4, 0x54, 0xdb, 0xf0, 0xcf, 0x49, 0x58, 0xdc, 0xc7, 0x6d, 0x7c, 0x83, + 0x2a, 0xbe, 0x02, 0x73, 0xac, 0xe6, 0xfa, 0x0b, 0x9b, 0xa5, 0x80, 0x4a, 0x2b, 0x5c, 0xf8, 0x5a, + 0x44, 0x55, 0xa0, 0xf0, 0xa5, 0x82, 0x85, 0x4f, 0x60, 0x0c, 0x57, 0xf8, 0x28, 0x36, 0xae, 0xf0, + 0x8d, 0x50, 0x04, 0x2b, 0x97, 0x58, 0xc0, 0x54, 0x2e, 0x5b, 0x82, 0x7b, 0x41, 0x23, 0x69, 0xe5, + 0x52, 0xfe, 0x9d, 0x86, 0x87, 0x43, 0x45, 0x27, 0xbd, 0x8b, 0xb6, 0x6e, 0xbf, 0x7a, 0x3b, 0x5e, + 0x7d, 0x00, 0x59, 0xc3, 0x6c, 0x11, 0x54, 0x8a, 0xd6, 0x01, 0xf7, 0xb3, 0xd2, 0x42, 0x25, 0xb8, + 0x1b, 0xee, 0x7f, 0x83, 0x7c, 0x9a, 0xa8, 0x8a, 0xee, 0x7e, 0xb9, 0x7e, 0xb8, 0x8e, 0xca, 0x30, + 0x6b, 0x61, 0xad, 0x65, 0x1a, 0xed, 0x41, 0x3e, 0xb3, 0x2e, 0x6d, 0xcd, 0xaa, 0xfe, 0x37, 0xfa, + 0x95, 0x04, 0x0f, 0xb9, 0x88, 0x76, 0xe9, 0x3a, 0x05, 0xbd, 0xec, 0xc0, 0xef, 0x65, 0xb1, 0x4e, + 0x19, 0x45, 0x8f, 0x84, 0x77, 0xb5, 0x19, 0x43, 0x82, 0x74, 0x7f, 0xcd, 0xdc, 0x46, 0xca, 0x86, + 0xda, 0x69, 0xbc, 0x09, 0xf4, 0x2b, 0xbc, 0xcd, 0x98, 0x5f, 0x86, 0x60, 0xf9, 0x18, 0x36, 0xc6, + 0x5a, 0x3b, 0x55, 0x57, 0x2d, 0xc2, 0x7d, 0xa1, 0xee, 0xa9, 0x12, 0xf2, 0x6b, 0x09, 0x1e, 0x45, + 0x2e, 0x90, 0xb5, 0xd5, 0x1f, 0xc1, 0x2d, 0x2f, 0x52, 0xba, 0x71, 0x69, 0xb2, 0xf3, 0xc8, 0x47, + 0x63, 0xfd, 0xc3, 0xc6, 0x6f, 0x06, 0x75, 0x47, 0x72, 0xea, 0x9b, 0xf9, 0xee, 0x10, 0x22, 0xbf, + 0x80, 0x5c, 0x98, 0x60, 0xaa, 0x05, 0xfc, 0x2b, 0xc9, 0x6f, 0xd1, 0x33, 0xa3, 0xfb, 0x7f, 0xd9, + 0x3b, 0xbf, 0x95, 0x60, 0x9d, 0x4b, 0xec, 0x9e, 0x21, 0x4a, 0x6d, 0x3a, 0x49, 0x56, 0x47, 0xfd, + 0x26, 0xb6, 0x5a, 0x44, 0x30, 0x92, 0xde, 0xdc, 0x76, 0x12, 0x11, 0xc9, 0x3f, 0x84, 0xcd, 0x09, + 0xc4, 0x4c, 0xe5, 0xf1, 0x4d, 0x3e, 0x91, 0x47, 0x4c, 0x67, 0x05, 0xed, 0x9b, 0x24, 0x6c, 0x9c, + 0x6b, 0x6d, 0xbd, 0xe5, 0x4f, 0x69, 0x37, 0x3b, 0x24, 0xc5, 0xc7, 0x25, 0x62, 0x74, 0x4f, 0x5d, + 0x63, 0x74, 0x6f, 0x8b, 0x2a, 0x02, 0x8d, 0xdc, 0xf7, 0x7c, 0x41, 0xe3, 0x16, 0x36, 0x71, 0x51, + 0xf8, 0xaf, 0xec, 0xe1, 0x1f, 0x83, 0x12, 0x67, 0x11, 0xdb, 0xc5, 0xab, 0x30, 0xe7, 0x5f, 0x18, + 0x10, 0xb9, 0xb3, 0xea, 0x10, 0x80, 0xf2, 0x90, 0xed, 0x60, 0xdb, 0xd6, 0xae, 0x3c, 0xf9, 0xde, + 0xa7, 0xf2, 0x4b, 0x09, 0x50, 0x55, 0xb7, 0xd9, 0x18, 0x79, 0x9d, 0xd0, 0xb9, 0x03, 0xa6, 0xf6, + 0xa6, 0x81, 0x0d, 0xc7, 0xd2, 0xd9, 0x24, 0x94, 0x51, 0xa1, 0xa3, 0xbd, 0x29, 0x51, 0x88, 0x3b, + 0xfe, 0xd8, 0x8e, 0x66, 0x39, 0xba, 0x71, 0xd5, 0x70, 0xcc, 0xd7, 0xd8, 0x60, 0xbb, 0x6b, 0xc1, + 0x83, 0xd6, 0x5d, 0xa0, 0xf2, 0x07, 0x09, 0x16, 0x03, 0x96, 0xb0, 0x95, 0x3d, 0x87, 0xac, 0x27, + 0x9b, 0x96, 0xa6, 0x0d, 0xcf, 0x14, 0x01, 0x75, 0x81, 0x86, 0xc2, 0xe3, 0x40, 0x6b, 0x00, 0x06, + 0x7e, 0xe3, 0x30, 0xbd, 0x74, 0xed, 0x73, 0x2e, 0x84, 0xe8, 0x94, 0xbf, 0x0d, 0x19, 0x1a, 0x90, + 0x49, 0xcf, 0x16, 0xbf, 0x49, 0x02, 0x2a, 0x63, 0xc7, 0x1f, 0x19, 0xa7, 0x77, 0x57, 0x44, 0x32, + 0x27, 0xaf, 0x91, 0xcc, 0x3f, 0x08, 0x9c, 0x43, 0xe9, 0x76, 0x78, 0x97, 0xbb, 0x2c, 0x09, 0x59, + 0x19, 0x77, 0x0c, 0xbd, 0xe1, 0x19, 0x50, 0xd9, 0x87, 0xc5, 0x80, 0x42, 0x16, 0xbb, 0x6f, 0x01, + 0xd2, 0xfa, 0x9a, 0xde, 0xd6, 0x2e, 0xda, 0x74, 0xbd, 0x2e, 0x96, 0x4d, 0xbf, 0x77, 0x7d, 0x8c, + 0xc7, 0xa6, 0x14, 0x61, 0x89, 0x6b, 0x37, 0x96, 0x79, 0x71, 0x8d, 0x12, 0xaf, 0x2c, 0xc3, 0x83, + 0x11, 0x21, 0xac, 0x6c, 0x1d, 0xf1, 0xcd, 0x84, 0xd9, 0x7b, 0x83, 0x9b, 0x9d, 0x36, 0x5f, 0x2a, + 0x47, 0xc4, 0x31, 0x17, 0x94, 0x85, 0xb7, 0x3b, 0x9b, 0xa3, 0x6d, 0x82, 0x5d, 0xb9, 0x44, 0x5e, + 0xf4, 0xfc, 0x2e, 0x09, 0x2b, 0x31, 0xd4, 0xe8, 0x39, 0xa4, 0xac, 0x6e, 0x93, 0x19, 0xfd, 0xce, + 0x04, 0xf2, 0x0b, 0xea, 0x49, 0xf1, 0x20, 0xa1, 0xba, 0x5c, 0xf2, 0x5f, 0x24, 0x48, 0xa9, 0x27, + 0x45, 0xf4, 0x29, 0xbd, 0xc2, 0x61, 0xa7, 0xbf, 0xf7, 0x27, 0x94, 0x52, 0x70, 0x4f, 0x9a, 0x2a, + 0xbd, 0xfc, 0x31, 0x45, 0x37, 0x46, 0x79, 0xb8, 0x57, 0x54, 0x4b, 0xbb, 0xf5, 0x52, 0x63, 0xbf, + 0x54, 0x2d, 0xd5, 0x4b, 0x8d, 0xf3, 0xe3, 0xea, 0xd9, 0x51, 0x29, 0x27, 0xb9, 0x27, 0xb9, 0x93, + 0xb3, 0xbd, 0x6a, 0xe5, 0xf4, 0xa0, 0x71, 0x56, 0xf3, 0x7e, 0x31, 0x6c, 0x12, 0xe5, 0xe0, 0x56, + 0xb5, 0x72, 0x5a, 0x67, 0x80, 0xd3, 0x5c, 0xca, 0x85, 0x94, 0x4b, 0xf5, 0x46, 0x71, 0xf7, 0x64, + 0xb7, 0x58, 0xa9, 0x7f, 0x96, 0x4b, 0xfb, 0xb7, 0x4e, 0xdf, 0x64, 0x20, 0x5f, 0x33, 0x5b, 0xf8, + 0xad, 0x8e, 0xd7, 0xf5, 0xd0, 0xb0, 0x44, 0x37, 0xdd, 0x07, 0x9e, 0xb0, 0x28, 0xfd, 0xf1, 0x53, + 0x92, 0x5b, 0x42, 0x1d, 0xcd, 0xba, 0xc2, 0x4e, 0xa3, 0xab, 0x39, 0xaf, 0xc8, 0x54, 0x3e, 0xa7, + 0x02, 0x05, 0x9d, 0x68, 0xce, 0x2b, 0xf1, 0xf0, 0x9e, 0xb9, 0xd1, 0xf0, 0x3e, 0x13, 0x1a, 0xde, + 0xfb, 0x90, 0x27, 0xc3, 0x8f, 0x68, 0xb4, 0x09, 0x8d, 0xcc, 0x91, 0xab, 0xe4, 0x10, 0x23, 0xa3, + 0xcc, 0x92, 0x21, 0x44, 0xa2, 0xa6, 0xa8, 0x23, 0xcf, 0x12, 0x85, 0x1f, 0x8e, 0x55, 0x38, 0x69, + 0x23, 0xbe, 0xe1, 0x18, 0x2a, 0x57, 0x60, 0x25, 0x66, 0x6d, 0xff, 0xfb, 0xb9, 0x7e, 0x05, 0x96, + 0x05, 0x3e, 0x61, 0x55, 0xee, 0x6f, 0x49, 0x90, 0x5d, 0xec, 0x5b, 0x9e, 0x96, 0x43, 0x49, 0x9b, + 0x1a, 0x49, 0xda, 0x9f, 0x83, 0x4c, 0x32, 0x2a, 0x6e, 0x5c, 0xfe, 0x94, 0x0f, 0x71, 0xc4, 0xa0, + 0x1c, 0x40, 0x8d, 0xe4, 0x15, 0xc9, 0x5a, 0xe1, 0x70, 0x7c, 0x08, 0x6b, 0xb1, 0xac, 0x53, 0x79, + 0x7c, 0x8d, 0x66, 0x40, 0xd4, 0x40, 0xfc, 0x09, 0xe4, 0x5c, 0x74, 0x19, 0x3b, 0x95, 0xd6, 0x35, + 0x3a, 0xc9, 0xfb, 0x70, 0x97, 0x63, 0x67, 0x9d, 0x83, 0x3b, 0x8e, 0x48, 0xfc, 0x71, 0xc4, 0x53, + 0x76, 0xdd, 0x06, 0xb9, 0x48, 0x95, 0x05, 0x5b, 0x63, 0x99, 0xe6, 0xcc, 0xcd, 0x9b, 0xe2, 0x17, + 0xd4, 0x51, 0x51, 0xed, 0x70, 0x37, 0xd4, 0x0e, 0xe9, 0x48, 0xb7, 0xc6, 0xa7, 0xc1, 0xb8, 0x46, + 0xf8, 0x95, 0x04, 0xf7, 0x85, 0x74, 0xe8, 0xbb, 0x7c, 0x0b, 0xdc, 0x88, 0x95, 0xc9, 0x37, 0xbf, + 0x73, 0xda, 0xfb, 0x3e, 0x0e, 0xf4, 0xbe, 0xa7, 0x63, 0xd9, 0xf9, 0xae, 0xb7, 0x28, 0xe8, 0x7a, + 0x5e, 0x67, 0xda, 0xfe, 0x63, 0x12, 0x66, 0x2b, 0x24, 0xf5, 0x9c, 0x01, 0x6a, 0x92, 0x77, 0xb7, + 0x91, 0x47, 0x42, 0xb4, 0xc9, 0x0d, 0x6e, 0x51, 0x2f, 0x8c, 0xf2, 0xe3, 0x78, 0x22, 0x16, 0xcb, + 0x04, 0xaa, 0xc1, 0x42, 0xe0, 0xb1, 0x0c, 0xad, 0x46, 0xbc, 0xa1, 0x51, 0xb1, 0x6b, 0xb1, 0x2f, + 0x6c, 0x4a, 0x02, 0x5d, 0x72, 0x0f, 0x7d, 0x81, 0x11, 0xf4, 0xf1, 0x08, 0xa7, 0x20, 0x7d, 0xe4, + 0x27, 0x63, 0xa8, 0x3c, 0x3d, 0xdb, 0xff, 0x98, 0x01, 0x18, 0xce, 0x1a, 0xe8, 0x10, 0x6e, 0xf1, + 0x2f, 0x01, 0x68, 0x25, 0xe6, 0x0d, 0x44, 0x5e, 0x15, 0x23, 0xfd, 0x35, 0x1c, 0xc2, 0x2d, 0xfe, + 0x72, 0x6e, 0x28, 0x4c, 0x70, 0xaf, 0x38, 0x14, 0x26, 0xbc, 0xcf, 0x4b, 0xa0, 0x76, 0x60, 0xc8, + 0xe4, 0x4b, 0x02, 0x7a, 0x3a, 0xd9, 0xcd, 0x92, 0xfc, 0xce, 0x84, 0x37, 0x2c, 0x4a, 0x02, 0x59, + 0xb0, 0x1c, 0x79, 0x26, 0x47, 0x5b, 0x93, 0xde, 0x38, 0xc8, 0xcf, 0x26, 0xa0, 0xf4, 0x75, 0xf6, + 0x40, 0x8e, 0x3e, 0x76, 0xa2, 0x67, 0x13, 0x1f, 0x96, 0xe5, 0x77, 0x27, 0x21, 0xf5, 0xd5, 0x1e, + 0xc0, 0x3c, 0x77, 0xac, 0x43, 0xb2, 0xf0, 0xac, 0x47, 0x05, 0xaf, 0xc4, 0x9c, 0x03, 0xa9, 0x24, + 0xee, 0x48, 0x32, 0x94, 0x34, 0x7a, 0x30, 0x1a, 0x4a, 0x12, 0x9c, 0x61, 0x94, 0x04, 0xaa, 0xc3, + 0x9d, 0xd0, 0x89, 0x02, 0x3d, 0x14, 0x04, 0x8f, 0x2b, 0xc7, 0xf2, 0xa3, 0x48, 0xbc, 0x38, 0xa8, + 0xa1, 0x72, 0x29, 0x0a, 0xaa, 0xb8, 0x34, 0x8b, 0x82, 0x1a, 0x51, 0x7b, 0x95, 0xc4, 0xf6, 0x57, + 0x29, 0x48, 0xbb, 0xf5, 0x0c, 0x7d, 0xce, 0x7a, 0x40, 0x20, 0x93, 0xd6, 0xc7, 0xcd, 0x5b, 0xf2, + 0x46, 0x0c, 0x85, 0xbf, 0xb0, 0x2f, 0x60, 0x51, 0xd0, 0x2a, 0x91, 0x32, 0xbe, 0xd5, 0xcb, 0x9b, + 0xb1, 0x34, 0xbe, 0x86, 0x3d, 0x98, 0xf3, 0xdb, 0x25, 0xca, 0xf3, 0x3c, 0x7c, 0x03, 0x96, 0x97, + 0x05, 0x98, 0xb0, 0x0c, 0x1a, 0xce, 0x80, 0x8c, 0x40, 0x20, 0x97, 0x05, 0x98, 0xf0, 0x4a, 0xc3, + 0xc1, 0x53, 0x42, 0x7a, 0x45, 0x61, 0xdb, 0x8c, 0xa5, 0xf1, 0x34, 0xec, 0x65, 0x3e, 0x4f, 0x35, + 0x6d, 0xfd, 0x62, 0x86, 0xfc, 0x1f, 0xca, 0x77, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xe8, + 0x69, 0x0c, 0x94, 0x22, 0x00, 0x00, } From ef3f61c49885c7d6c946b4a44bee47af0bd4faee Mon Sep 17 00:00:00 2001 From: James DeFelice Date: Fri, 16 Feb 2018 12:06:48 +0000 Subject: [PATCH 3/6] git: ignore .build for the whole project --- .gitignore | 1 + lib/go/.gitignore | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 83250da7..ce0d4443 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /csi.proto.tmp .DS_Store +.build diff --git a/lib/go/.gitignore b/lib/go/.gitignore index 13f0dc28..e1128ce8 100644 --- a/lib/go/.gitignore +++ b/lib/go/.gitignore @@ -1,4 +1,3 @@ /protoc /protoc-gen-go /csi.a -/csi/.build/ From 06856c927ad0f189f192651409d98a2dc5ddb152 Mon Sep 17 00:00:00 2001 From: James DeFelice Date: Thu, 22 Feb 2018 16:11:03 +0000 Subject: [PATCH 4/6] git: ignore all .tmp files --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ce0d4443..4f7ede45 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/csi.proto.tmp +*.tmp .DS_Store .build From a26766ef9bcd58059d5dd7e58e6dd46f2b8a0f88 Mon Sep 17 00:00:00 2001 From: James DeFelice Date: Thu, 22 Feb 2018 16:19:35 +0000 Subject: [PATCH 5/6] make: generate and build multiple protos from a single spec --- Makefile | 19 ++++++++++++------- lib/go/Makefile | 15 +++++++++------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index fa69d61d..cf601e62 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,21 @@ all: build CSI_SPEC := spec.md + CSI_PROTO := csi.proto +VERSIONED_PROTO := versioned.proto + +PROTOS := $(CSI_PROTO) $(VERSIONED_PROTO) + +.SUFFIXES: +.SUFFIXES: .proto .tmp # This is the target for building the temporary CSI protobuf file. # # The temporary file is not versioned, and thus will always be # built on Travis-CI. -$(CSI_PROTO).tmp: $(CSI_SPEC) - cat $? | \ - sed -n -e '/```protobuf$$/,/```$$/ p' | \ - sed -e 's@^```.*$$@////////@g' > $@ +$(PROTOS:.proto=.tmp): $(CSI_SPEC) + cat $? | sed -n -e '/```protobuf$$/,/^```$$/ { /^\/\/csi:file=$*.proto$$/,/^```$$/ { /^\(\/\/\|```$$\)/!p } }' > $@ # This is the target for building the CSI protobuf file. # @@ -21,7 +26,7 @@ $(CSI_PROTO).tmp: $(CSI_SPEC) # will fail. # # Locally the temp file is simply copied over the real file. -$(CSI_PROTO): $(CSI_PROTO).tmp +.tmp.proto: ifeq (true,$(TRAVIS)) diff "$@" "$?" else @@ -41,10 +46,10 @@ endif clean: clobber: clean - rm -f $(CSI_PROTO) $(CSI_PROTO).tmp + rm -f $(PROTOS) $(PROTOS:.proto=.tmp) # check generated files for violation of standards -check: $(CSI_PROTO) +check: $(PROTOS) awk '{ if (length > 72) print NR, $$0 }' $? | diff - /dev/null .PHONY: clean clobber check diff --git a/lib/go/Makefile b/lib/go/Makefile index 3af5de2b..b427d097 100644 --- a/lib/go/Makefile +++ b/lib/go/Makefile @@ -76,26 +76,29 @@ export PATH := $(shell pwd):$(PATH) ######################################################################## ## BUILD ## ######################################################################## +CSI_PROTOS := ../../csi.proto ../../versioned.proto CSI_PROTO := ../../csi.proto CSI_PKG := $(shell cat $(CSI_PROTO) | sed -n -e 's/^package.\([^;]*\);$$/\1/p'|tr '.' '/') -CSI_GO := $(CSI_PKG)/csi.pb.go +CSI_GO := $(CSI_PKG)/csi.pb.go $(CSI_PKG)/versioned.pb.go CSI_A := csi.a -CSI_GO_TMP := $(CSI_PKG)/.build/csi.pb.go +CSI_GO_TMP := $(CSI_PKG)/.build/csi.pb.go $(CSI_PKG)/.build/versioned.pb.go + +../../versioned.proto: # This recipe generates the go language bindings to a temp area. -$(CSI_GO_TMP): $(CSI_PROTO) | $(PROTOC) $(PROTOC_GEN_GO) +$(CSI_GO_TMP): $(CSI_PROTOS) | $(PROTOC) $(PROTOC_GEN_GO) @mkdir -p "$(@D)" - $(PROTOC) -I "$( /dev/null 2>&1 || cp -f "$?" "$@" + diff "$@" "$( /dev/null 2>&1 || cp -f "$( Date: Thu, 22 Feb 2018 16:22:49 +0000 Subject: [PATCH 6/6] spec: introduce Versioned service * Versioned service presents RPC to discover CSI version. - GetSupportedVersions is now an unversioned RPC of Versioned. - Version is now an unversioned message. * Identity is no longer responsible for version negotiation. * Versioned is a mandatory service, like Identity. --- csi.proto | 70 +---- lib/go/csi/v1/csi.pb.go | 534 ++++++++++++---------------------- lib/go/csi/v1/versioned.pb.go | 176 +++++++++++ spec.md | 120 +++++--- versioned.proto | 24 ++ 5 files changed, 469 insertions(+), 455 deletions(-) create mode 100644 lib/go/csi/v1/versioned.pb.go create mode 100644 versioned.proto diff --git a/csi.proto b/csi.proto index 3fc23d0a..15d502e1 100644 --- a/csi.proto +++ b/csi.proto @@ -1,14 +1,10 @@ -//////// syntax = "proto3"; +import "versioned.proto"; package csi.v1; option go_package = "csi"; -//////// -//////// -service Identity { - rpc GetSupportedVersions (GetSupportedVersionsRequest) - returns (GetSupportedVersionsResponse) {} +service Identity { rpc GetPluginInfo(GetPluginInfoRequest) returns (GetPluginInfoResponse) {} @@ -61,29 +57,6 @@ service Node { rpc NodeGetCapabilities (NodeGetCapabilitiesRequest) returns (NodeGetCapabilitiesResponse) {} } -//////// -//////// -message GetSupportedVersionsRequest { -} - -message GetSupportedVersionsResponse { - // All the CSI versions that the Plugin supports. This field is - // REQUIRED. - repeated Version supported_versions = 1; -} - -// Specifies a version in Semantic Version 2.0 format. -// (http://semver.org/spec/v2.0.0.html) -message Version { - // 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. -} -//////// -//////// message GetPluginInfoRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -105,8 +78,6 @@ message GetPluginInfoResponse { // This field is OPTIONAL. Values are opaque to the CO. map manifest = 3; } -//////// -//////// message GetPluginCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -118,7 +89,6 @@ message GetPluginCapabilitiesResponse { repeated PluginCapability capabilities = 2; } -// Specifies a capability of the plugin. message PluginCapability { message Service { enum Type { @@ -141,8 +111,6 @@ message PluginCapability { Service service = 1; } } -//////// -//////// message CreateVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -205,7 +173,6 @@ message CreateVolumeResponse { Volume volume = 1; } -// Specify a capability of a volume. message VolumeCapability { // Indicate that the volume will be accessed via the block device API. message BlockVolume { @@ -266,9 +233,6 @@ message VolumeCapability { AccessMode access_mode = 3; } -// The capacity of the storage space in bytes. To specify an exact size, -// `required_bytes` and `limit_bytes` can be set to the same value. At -// least one of the these fields MUST be specified. message CapacityRange { // Volume must be at least this big. This field is OPTIONAL. // A value of 0 is equal to an unspecified field value. @@ -281,7 +245,6 @@ message CapacityRange { int64 limit_bytes = 2; } -// The information about a provisioned volume. 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 @@ -304,8 +267,6 @@ message Volume { // be passed to volume validation and publishing calls. map attributes = 3; } -//////// -//////// message DeleteVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -329,8 +290,6 @@ message DeleteVolumeRequest { } message DeleteVolumeResponse {} -//////// -//////// message ControllerPublishVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -376,8 +335,6 @@ message ControllerPublishVolumeResponse { // This information is opaque to the CO. This field is OPTIONAL. map publish_info = 1; } -//////// -//////// message ControllerUnpublishVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -407,8 +364,6 @@ message ControllerUnpublishVolumeRequest { } message ControllerUnpublishVolumeResponse {} -//////// -//////// message ValidateVolumeCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -436,8 +391,6 @@ message ValidateVolumeCapabilitiesResponse { // An empty string is equal to an unspecified field value. string message = 2; } -//////// -//////// message ListVolumesRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -474,8 +427,6 @@ message ListVolumesResponse { // An empty string is equal to an unspecified field value. string next_token = 2; } -//////// -//////// message GetCapacityRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -503,16 +454,12 @@ message GetCapacityResponse { // The value of this field MUST NOT be negative. int64 available_capacity = 1; } -//////// -//////// message ControllerProbeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; } message ControllerProbeResponse {} -//////// -//////// message ControllerGetCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -524,7 +471,6 @@ message ControllerGetCapabilitiesResponse { repeated ControllerServiceCapability capabilities = 2; } -// Specifies a capability of the controller service. message ControllerServiceCapability { message RPC { enum Type { @@ -543,8 +489,6 @@ message ControllerServiceCapability { RPC rpc = 1; } } -//////// -//////// message NodePublishVolumeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -595,8 +539,6 @@ message NodePublishVolumeRequest { } message NodePublishVolumeResponse {} -//////// -//////// message NodeUnpublishVolumeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -624,8 +566,6 @@ message NodeUnpublishVolumeRequest { } message NodeUnpublishVolumeResponse {} -//////// -//////// message NodeGetIdRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -637,16 +577,12 @@ message NodeGetIdResponse { // This is a REQUIRED field. string node_id = 1; } -//////// -//////// message NodeProbeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; } message NodeProbeResponse {} -//////// -//////// message NodeGetCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -658,7 +594,6 @@ message NodeGetCapabilitiesResponse { repeated NodeServiceCapability capabilities = 1; } -// Specifies a capability of the node service. message NodeServiceCapability { message RPC { enum Type { @@ -673,4 +608,3 @@ message NodeServiceCapability { RPC rpc = 1; } } -//////// diff --git a/lib/go/csi/v1/csi.pb.go b/lib/go/csi/v1/csi.pb.go index dde41171..e0a4d739 100644 --- a/lib/go/csi/v1/csi.pb.go +++ b/lib/go/csi/v1/csi.pb.go @@ -6,11 +6,9 @@ Package csi is a generated protocol buffer package. It is generated from these files: csi.proto + versioned.proto It has these top-level messages: - GetSupportedVersionsRequest - GetSupportedVersionsResponse - Version GetPluginInfoRequest GetPluginInfoResponse GetPluginCapabilitiesRequest @@ -49,6 +47,9 @@ It has these top-level messages: NodeGetCapabilitiesRequest NodeGetCapabilitiesResponse NodeServiceCapability + GetSupportedVersionsRequest + GetSupportedVersionsResponse + Version */ package csi @@ -100,7 +101,7 @@ func (x PluginCapability_Service_Type) String() string { return proto.EnumName(PluginCapability_Service_Type_name, int32(x)) } func (PluginCapability_Service_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{7, 0, 0} + return fileDescriptor0, []int{4, 0, 0} } type VolumeCapability_AccessMode_Mode int32 @@ -144,7 +145,7 @@ func (x VolumeCapability_AccessMode_Mode) String() string { return proto.EnumName(VolumeCapability_AccessMode_Mode_name, int32(x)) } func (VolumeCapability_AccessMode_Mode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{10, 2, 0} + return fileDescriptor0, []int{7, 2, 0} } type ControllerServiceCapability_RPC_Type int32 @@ -176,7 +177,7 @@ func (x ControllerServiceCapability_RPC_Type) String() string { return proto.EnumName(ControllerServiceCapability_RPC_Type_name, int32(x)) } func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{29, 0, 0} + return fileDescriptor0, []int{26, 0, 0} } type NodeServiceCapability_RPC_Type int32 @@ -196,76 +197,9 @@ func (x NodeServiceCapability_RPC_Type) String() string { return proto.EnumName(NodeServiceCapability_RPC_Type_name, int32(x)) } func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{40, 0, 0} -} - -// ////// -// ////// -type GetSupportedVersionsRequest struct { -} - -func (m *GetSupportedVersionsRequest) Reset() { *m = GetSupportedVersionsRequest{} } -func (m *GetSupportedVersionsRequest) String() string { return proto.CompactTextString(m) } -func (*GetSupportedVersionsRequest) ProtoMessage() {} -func (*GetSupportedVersionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } - -type GetSupportedVersionsResponse struct { - // All the CSI versions that the Plugin supports. This field is - // REQUIRED. - SupportedVersions []*Version `protobuf:"bytes,1,rep,name=supported_versions,json=supportedVersions" json:"supported_versions,omitempty"` -} - -func (m *GetSupportedVersionsResponse) Reset() { *m = GetSupportedVersionsResponse{} } -func (m *GetSupportedVersionsResponse) String() string { return proto.CompactTextString(m) } -func (*GetSupportedVersionsResponse) ProtoMessage() {} -func (*GetSupportedVersionsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } - -func (m *GetSupportedVersionsResponse) GetSupportedVersions() []*Version { - if m != nil { - return m.SupportedVersions - } - return nil -} - -// Specifies a version in Semantic Version 2.0 format. -// (http://semver.org/spec/v2.0.0.html) -type Version struct { - // 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{} } -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() int32 { - if m != nil { - return m.Major - } - return 0 -} - -func (m *Version) GetMinor() int32 { - if m != nil { - return m.Minor - } - return 0 + return fileDescriptor0, []int{37, 0, 0} } -func (m *Version) GetPatch() int32 { - if m != nil { - return m.Patch - } - return 0 -} - -// ////// -// ////// type GetPluginInfoRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -274,7 +208,7 @@ type GetPluginInfoRequest struct { func (m *GetPluginInfoRequest) Reset() { *m = GetPluginInfoRequest{} } func (m *GetPluginInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetPluginInfoRequest) ProtoMessage() {} -func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *GetPluginInfoRequest) GetVersion() *Version { if m != nil { @@ -301,7 +235,7 @@ type GetPluginInfoResponse struct { func (m *GetPluginInfoResponse) Reset() { *m = GetPluginInfoResponse{} } func (m *GetPluginInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetPluginInfoResponse) ProtoMessage() {} -func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } func (m *GetPluginInfoResponse) GetName() string { if m != nil { @@ -324,8 +258,6 @@ func (m *GetPluginInfoResponse) GetManifest() map[string]string { return nil } -// ////// -// ////// type GetPluginCapabilitiesRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -334,7 +266,7 @@ type GetPluginCapabilitiesRequest struct { func (m *GetPluginCapabilitiesRequest) Reset() { *m = GetPluginCapabilitiesRequest{} } func (m *GetPluginCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*GetPluginCapabilitiesRequest) ProtoMessage() {} -func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } func (m *GetPluginCapabilitiesRequest) GetVersion() *Version { if m != nil { @@ -352,7 +284,7 @@ type GetPluginCapabilitiesResponse struct { func (m *GetPluginCapabilitiesResponse) Reset() { *m = GetPluginCapabilitiesResponse{} } func (m *GetPluginCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*GetPluginCapabilitiesResponse) ProtoMessage() {} -func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { if m != nil { @@ -361,7 +293,6 @@ func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { return nil } -// Specifies a capability of the plugin. type PluginCapability struct { // Types that are valid to be assigned to Type: // *PluginCapability_Service_ @@ -371,7 +302,7 @@ type PluginCapability struct { func (m *PluginCapability) Reset() { *m = PluginCapability{} } func (m *PluginCapability) String() string { return proto.CompactTextString(m) } func (*PluginCapability) ProtoMessage() {} -func (*PluginCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (*PluginCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } type isPluginCapability_Type interface { isPluginCapability_Type() @@ -458,10 +389,8 @@ type PluginCapability_Service struct { func (m *PluginCapability_Service) Reset() { *m = PluginCapability_Service{} } func (m *PluginCapability_Service) String() string { return proto.CompactTextString(m) } func (*PluginCapability_Service) ProtoMessage() {} -func (*PluginCapability_Service) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} } +func (*PluginCapability_Service) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} } -// ////// -// ////// type CreateVolumeRequest struct { // The API version assumed by the CO. This field is REQUIRED. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -515,7 +444,7 @@ type CreateVolumeRequest struct { func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } func (*CreateVolumeRequest) ProtoMessage() {} -func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } func (m *CreateVolumeRequest) GetVersion() *Version { if m != nil { @@ -569,7 +498,7 @@ type CreateVolumeResponse struct { func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } func (*CreateVolumeResponse) ProtoMessage() {} -func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } func (m *CreateVolumeResponse) GetVolume() *Volume { if m != nil { @@ -578,7 +507,6 @@ func (m *CreateVolumeResponse) GetVolume() *Volume { return nil } -// Specify a capability of a volume. type VolumeCapability struct { // Specifies what API the volume will be accessed using. One of the // following fields MUST be specified. @@ -594,7 +522,7 @@ type VolumeCapability struct { func (m *VolumeCapability) Reset() { *m = VolumeCapability{} } func (m *VolumeCapability) String() string { return proto.CompactTextString(m) } func (*VolumeCapability) ProtoMessage() {} -func (*VolumeCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } +func (*VolumeCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } type isVolumeCapability_AccessType interface { isVolumeCapability_AccessType() @@ -716,12 +644,10 @@ func _VolumeCapability_OneofSizer(msg proto.Message) (n int) { type VolumeCapability_BlockVolume struct { } -func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } -func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } -func (*VolumeCapability_BlockVolume) ProtoMessage() {} -func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{10, 0} -} +func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } +func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_BlockVolume) ProtoMessage() {} +func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} } // Indicate that the volume will be accessed via the filesystem API. type VolumeCapability_MountVolume struct { @@ -736,12 +662,10 @@ type VolumeCapability_MountVolume struct { MountFlags []string `protobuf:"bytes,2,rep,name=mount_flags,json=mountFlags" json:"mount_flags,omitempty"` } -func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } -func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } -func (*VolumeCapability_MountVolume) ProtoMessage() {} -func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{10, 1} -} +func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } +func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_MountVolume) ProtoMessage() {} +func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 1} } func (m *VolumeCapability_MountVolume) GetFsType() string { if m != nil { @@ -766,7 +690,7 @@ type VolumeCapability_AccessMode struct { func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } func (m *VolumeCapability_AccessMode) String() string { return proto.CompactTextString(m) } func (*VolumeCapability_AccessMode) ProtoMessage() {} -func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 2} } +func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 2} } func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode { if m != nil { @@ -775,9 +699,6 @@ func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode return VolumeCapability_AccessMode_UNKNOWN } -// The capacity of the storage space in bytes. To specify an exact size, -// `required_bytes` and `limit_bytes` can be set to the same value. At -// least one of the these fields MUST be specified. 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. @@ -792,7 +713,7 @@ type CapacityRange struct { func (m *CapacityRange) Reset() { *m = CapacityRange{} } func (m *CapacityRange) String() string { return proto.CompactTextString(m) } func (*CapacityRange) ProtoMessage() {} -func (*CapacityRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (*CapacityRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } func (m *CapacityRange) GetRequiredBytes() int64 { if m != nil { @@ -808,7 +729,6 @@ func (m *CapacityRange) GetLimitBytes() int64 { return 0 } -// The information about a provisioned volume. 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 @@ -833,7 +753,7 @@ type Volume struct { 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{12} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } func (m *Volume) GetCapacityBytes() int64 { if m != nil { @@ -856,8 +776,6 @@ func (m *Volume) GetAttributes() map[string]string { return nil } -// ////// -// ////// type DeleteVolumeRequest struct { // The API version assumed by the CO. This field is REQUIRED. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -881,7 +799,7 @@ type DeleteVolumeRequest struct { func (m *DeleteVolumeRequest) Reset() { *m = DeleteVolumeRequest{} } func (m *DeleteVolumeRequest) String() string { return proto.CompactTextString(m) } func (*DeleteVolumeRequest) ProtoMessage() {} -func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } func (m *DeleteVolumeRequest) GetVersion() *Version { if m != nil { @@ -910,10 +828,8 @@ type DeleteVolumeResponse struct { func (m *DeleteVolumeResponse) Reset() { *m = DeleteVolumeResponse{} } func (m *DeleteVolumeResponse) String() string { return proto.CompactTextString(m) } func (*DeleteVolumeResponse) ProtoMessage() {} -func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } +func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } -// ////// -// ////// type ControllerPublishVolumeRequest struct { // The API version assumed by the CO. This field is REQUIRED. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -950,7 +866,7 @@ type ControllerPublishVolumeRequest struct { func (m *ControllerPublishVolumeRequest) Reset() { *m = ControllerPublishVolumeRequest{} } func (m *ControllerPublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*ControllerPublishVolumeRequest) ProtoMessage() {} -func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } +func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } func (m *ControllerPublishVolumeRequest) GetVersion() *Version { if m != nil { @@ -1012,7 +928,7 @@ func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPubli func (m *ControllerPublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*ControllerPublishVolumeResponse) ProtoMessage() {} func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{16} + return fileDescriptor0, []int{13} } func (m *ControllerPublishVolumeResponse) GetPublishInfo() map[string]string { @@ -1022,8 +938,6 @@ func (m *ControllerPublishVolumeResponse) GetPublishInfo() map[string]string { return nil } -// ////// -// ////// type ControllerUnpublishVolumeRequest struct { // The API version assumed by the CO. This field is REQUIRED. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1053,7 +967,7 @@ func (m *ControllerUnpublishVolumeRequest) Reset() { *m = ControllerUnpu func (m *ControllerUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*ControllerUnpublishVolumeRequest) ProtoMessage() {} func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{17} + return fileDescriptor0, []int{14} } func (m *ControllerUnpublishVolumeRequest) GetVersion() *Version { @@ -1091,11 +1005,9 @@ func (m *ControllerUnpublishVolumeResponse) Reset() { *m = ControllerUnp func (m *ControllerUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*ControllerUnpublishVolumeResponse) ProtoMessage() {} func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{18} + return fileDescriptor0, []int{15} } -// ////// -// ////// type ValidateVolumeCapabilitiesRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1114,7 +1026,7 @@ func (m *ValidateVolumeCapabilitiesRequest) Reset() { *m = ValidateVolum func (m *ValidateVolumeCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*ValidateVolumeCapabilitiesRequest) ProtoMessage() {} func (*ValidateVolumeCapabilitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{19} + return fileDescriptor0, []int{16} } func (m *ValidateVolumeCapabilitiesRequest) GetVersion() *Version { @@ -1159,7 +1071,7 @@ func (m *ValidateVolumeCapabilitiesResponse) Reset() { *m = ValidateVolu func (m *ValidateVolumeCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*ValidateVolumeCapabilitiesResponse) ProtoMessage() {} func (*ValidateVolumeCapabilitiesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{20} + return fileDescriptor0, []int{17} } func (m *ValidateVolumeCapabilitiesResponse) GetSupported() bool { @@ -1176,8 +1088,6 @@ func (m *ValidateVolumeCapabilitiesResponse) GetMessage() string { return "" } -// ////// -// ////// type ListVolumesRequest struct { // The API version assumed by the CO. This field is REQUIRED. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1200,7 +1110,7 @@ type ListVolumesRequest struct { func (m *ListVolumesRequest) Reset() { *m = ListVolumesRequest{} } func (m *ListVolumesRequest) String() string { return proto.CompactTextString(m) } func (*ListVolumesRequest) ProtoMessage() {} -func (*ListVolumesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } func (m *ListVolumesRequest) GetVersion() *Version { if m != nil { @@ -1237,7 +1147,7 @@ type ListVolumesResponse struct { func (m *ListVolumesResponse) Reset() { *m = ListVolumesResponse{} } func (m *ListVolumesResponse) String() string { return proto.CompactTextString(m) } func (*ListVolumesResponse) ProtoMessage() {} -func (*ListVolumesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } func (m *ListVolumesResponse) GetEntries() []*ListVolumesResponse_Entry { if m != nil { @@ -1260,7 +1170,7 @@ type ListVolumesResponse_Entry struct { func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } func (m *ListVolumesResponse_Entry) String() string { return proto.CompactTextString(m) } func (*ListVolumesResponse_Entry) ProtoMessage() {} -func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 0} } +func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } func (m *ListVolumesResponse_Entry) GetVolume() *Volume { if m != nil { @@ -1269,8 +1179,6 @@ func (m *ListVolumesResponse_Entry) GetVolume() *Volume { return nil } -// ////// -// ////// type GetCapacityRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1290,7 +1198,7 @@ type GetCapacityRequest struct { func (m *GetCapacityRequest) Reset() { *m = GetCapacityRequest{} } func (m *GetCapacityRequest) String() string { return proto.CompactTextString(m) } func (*GetCapacityRequest) ProtoMessage() {} -func (*GetCapacityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (*GetCapacityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } func (m *GetCapacityRequest) GetVersion() *Version { if m != nil { @@ -1326,7 +1234,7 @@ type GetCapacityResponse struct { func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } func (m *GetCapacityResponse) String() string { return proto.CompactTextString(m) } func (*GetCapacityResponse) ProtoMessage() {} -func (*GetCapacityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (*GetCapacityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } func (m *GetCapacityResponse) GetAvailableCapacity() int64 { if m != nil { @@ -1335,8 +1243,6 @@ func (m *GetCapacityResponse) GetAvailableCapacity() int64 { return 0 } -// ////// -// ////// type ControllerProbeRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1345,7 +1251,7 @@ type ControllerProbeRequest struct { func (m *ControllerProbeRequest) Reset() { *m = ControllerProbeRequest{} } func (m *ControllerProbeRequest) String() string { return proto.CompactTextString(m) } func (*ControllerProbeRequest) ProtoMessage() {} -func (*ControllerProbeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +func (*ControllerProbeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } func (m *ControllerProbeRequest) GetVersion() *Version { if m != nil { @@ -1360,10 +1266,8 @@ type ControllerProbeResponse struct { func (m *ControllerProbeResponse) Reset() { *m = ControllerProbeResponse{} } func (m *ControllerProbeResponse) String() string { return proto.CompactTextString(m) } func (*ControllerProbeResponse) ProtoMessage() {} -func (*ControllerProbeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*ControllerProbeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } -// ////// -// ////// type ControllerGetCapabilitiesRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1373,7 +1277,7 @@ func (m *ControllerGetCapabilitiesRequest) Reset() { *m = ControllerGetC func (m *ControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*ControllerGetCapabilitiesRequest) ProtoMessage() {} func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{27} + return fileDescriptor0, []int{24} } func (m *ControllerGetCapabilitiesRequest) GetVersion() *Version { @@ -1393,7 +1297,7 @@ func (m *ControllerGetCapabilitiesResponse) Reset() { *m = ControllerGet func (m *ControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*ControllerGetCapabilitiesResponse) ProtoMessage() {} func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{28} + return fileDescriptor0, []int{25} } func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServiceCapability { @@ -1403,7 +1307,6 @@ func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServi return nil } -// Specifies a capability of the controller service. type ControllerServiceCapability struct { // Types that are valid to be assigned to Type: // *ControllerServiceCapability_Rpc @@ -1413,7 +1316,7 @@ type ControllerServiceCapability struct { func (m *ControllerServiceCapability) Reset() { *m = ControllerServiceCapability{} } func (m *ControllerServiceCapability) String() string { return proto.CompactTextString(m) } func (*ControllerServiceCapability) ProtoMessage() {} -func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } type isControllerServiceCapability_Type interface { isControllerServiceCapability_Type() @@ -1502,7 +1405,7 @@ func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServi func (m *ControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } func (*ControllerServiceCapability_RPC) ProtoMessage() {} func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{29, 0} + return fileDescriptor0, []int{26, 0} } func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_RPC_Type { @@ -1512,8 +1415,6 @@ func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_ return ControllerServiceCapability_RPC_UNKNOWN } -// ////// -// ////// type NodePublishVolumeRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1559,7 +1460,7 @@ type NodePublishVolumeRequest struct { func (m *NodePublishVolumeRequest) Reset() { *m = NodePublishVolumeRequest{} } func (m *NodePublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*NodePublishVolumeRequest) ProtoMessage() {} -func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } +func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *NodePublishVolumeRequest) GetVersion() *Version { if m != nil { @@ -1623,10 +1524,8 @@ type NodePublishVolumeResponse struct { func (m *NodePublishVolumeResponse) Reset() { *m = NodePublishVolumeResponse{} } func (m *NodePublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*NodePublishVolumeResponse) ProtoMessage() {} -func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } -// ////// -// ////// type NodeUnpublishVolumeRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1653,7 +1552,7 @@ type NodeUnpublishVolumeRequest struct { func (m *NodeUnpublishVolumeRequest) Reset() { *m = NodeUnpublishVolumeRequest{} } func (m *NodeUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } func (*NodeUnpublishVolumeRequest) ProtoMessage() {} -func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } func (m *NodeUnpublishVolumeRequest) GetVersion() *Version { if m != nil { @@ -1689,10 +1588,8 @@ type NodeUnpublishVolumeResponse struct { func (m *NodeUnpublishVolumeResponse) Reset() { *m = NodeUnpublishVolumeResponse{} } func (m *NodeUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } func (*NodeUnpublishVolumeResponse) ProtoMessage() {} -func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } -// ////// -// ////// 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"` @@ -1701,7 +1598,7 @@ type NodeGetIdRequest struct { 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{34} } +func (*NodeGetIdRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } func (m *NodeGetIdRequest) GetVersion() *Version { if m != nil { @@ -1720,7 +1617,7 @@ type NodeGetIdResponse struct { 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{35} } +func (*NodeGetIdResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } func (m *NodeGetIdResponse) GetNodeId() string { if m != nil { @@ -1729,8 +1626,6 @@ func (m *NodeGetIdResponse) GetNodeId() string { return "" } -// ////// -// ////// type NodeProbeRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1739,7 +1634,7 @@ type NodeProbeRequest struct { func (m *NodeProbeRequest) Reset() { *m = NodeProbeRequest{} } func (m *NodeProbeRequest) String() string { return proto.CompactTextString(m) } func (*NodeProbeRequest) ProtoMessage() {} -func (*NodeProbeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } +func (*NodeProbeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } func (m *NodeProbeRequest) GetVersion() *Version { if m != nil { @@ -1754,10 +1649,8 @@ type NodeProbeResponse struct { func (m *NodeProbeResponse) Reset() { *m = NodeProbeResponse{} } func (m *NodeProbeResponse) String() string { return proto.CompactTextString(m) } func (*NodeProbeResponse) ProtoMessage() {} -func (*NodeProbeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +func (*NodeProbeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } -// ////// -// ////// type NodeGetCapabilitiesRequest struct { // The API version assumed by the CO. This is a REQUIRED field. Version *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` @@ -1766,7 +1659,7 @@ type NodeGetCapabilitiesRequest struct { func (m *NodeGetCapabilitiesRequest) Reset() { *m = NodeGetCapabilitiesRequest{} } func (m *NodeGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*NodeGetCapabilitiesRequest) ProtoMessage() {} -func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } func (m *NodeGetCapabilitiesRequest) GetVersion() *Version { if m != nil { @@ -1784,7 +1677,7 @@ type NodeGetCapabilitiesResponse struct { func (m *NodeGetCapabilitiesResponse) Reset() { *m = NodeGetCapabilitiesResponse{} } func (m *NodeGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*NodeGetCapabilitiesResponse) ProtoMessage() {} -func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } +func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability { if m != nil { @@ -1793,7 +1686,6 @@ func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability return nil } -// Specifies a capability of the node service. type NodeServiceCapability struct { // Types that are valid to be assigned to Type: // *NodeServiceCapability_Rpc @@ -1803,7 +1695,7 @@ type NodeServiceCapability struct { func (m *NodeServiceCapability) Reset() { *m = NodeServiceCapability{} } func (m *NodeServiceCapability) String() string { return proto.CompactTextString(m) } func (*NodeServiceCapability) ProtoMessage() {} -func (*NodeServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } +func (*NodeServiceCapability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } type isNodeServiceCapability_Type interface { isNodeServiceCapability_Type() @@ -1891,7 +1783,7 @@ type NodeServiceCapability_RPC struct { func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } func (m *NodeServiceCapability_RPC) String() string { return proto.CompactTextString(m) } func (*NodeServiceCapability_RPC) ProtoMessage() {} -func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40, 0} } +func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37, 0} } func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { if m != nil { @@ -1901,9 +1793,6 @@ func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { } func init() { - proto.RegisterType((*GetSupportedVersionsRequest)(nil), "csi.v1.GetSupportedVersionsRequest") - proto.RegisterType((*GetSupportedVersionsResponse)(nil), "csi.v1.GetSupportedVersionsResponse") - proto.RegisterType((*Version)(nil), "csi.v1.Version") proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.v1.GetPluginInfoRequest") proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.v1.GetPluginInfoResponse") proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.v1.GetPluginCapabilitiesRequest") @@ -1966,7 +1855,6 @@ const _ = grpc.SupportPackageIsVersion4 // Client API for Identity service type IdentityClient interface { - GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) } @@ -1979,15 +1867,6 @@ func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { return &identityClient{cc} } -func (c *identityClient) GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) { - out := new(GetSupportedVersionsResponse) - err := grpc.Invoke(ctx, "/csi.v1.Identity/GetSupportedVersions", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { out := new(GetPluginInfoResponse) err := grpc.Invoke(ctx, "/csi.v1.Identity/GetPluginInfo", in, out, c.cc, opts...) @@ -2009,7 +1888,6 @@ func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPlugi // Server API for Identity service type IdentityServer interface { - GetSupportedVersions(context.Context, *GetSupportedVersionsRequest) (*GetSupportedVersionsResponse, error) GetPluginInfo(context.Context, *GetPluginInfoRequest) (*GetPluginInfoResponse, error) GetPluginCapabilities(context.Context, *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) } @@ -2018,24 +1896,6 @@ func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { s.RegisterService(&_Identity_serviceDesc, srv) } -func _Identity_GetSupportedVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetSupportedVersionsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(IdentityServer).GetSupportedVersions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/csi.v1.Identity/GetSupportedVersions", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(IdentityServer).GetSupportedVersions(ctx, req.(*GetSupportedVersionsRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPluginInfoRequest) if err := dec(in); err != nil { @@ -2076,10 +1936,6 @@ var _Identity_serviceDesc = grpc.ServiceDesc{ ServiceName: "csi.v1.Identity", HandlerType: (*IdentityServer)(nil), Methods: []grpc.MethodDesc{ - { - MethodName: "GetSupportedVersions", - Handler: _Identity_GetSupportedVersions_Handler, - }, { MethodName: "GetPluginInfo", Handler: _Identity_GetPluginInfo_Handler, @@ -2620,143 +2476,137 @@ var _Node_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("csi.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 2198 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x1a, 0x4d, 0x6f, 0xdb, 0xc8, - 0x55, 0xd4, 0x87, 0x65, 0x3f, 0xc7, 0x89, 0x32, 0x4e, 0x1c, 0x99, 0xb6, 0x13, 0x9b, 0x4e, 0xb2, - 0xce, 0xee, 0x56, 0xc5, 0xba, 0xe8, 0x62, 0xb1, 0xf1, 0xa6, 0x6b, 0xcb, 0xaa, 0xac, 0x5a, 0x96, - 0x5d, 0x5a, 0x76, 0xb0, 0xdb, 0x0f, 0x2d, 0x2d, 0x8d, 0x1d, 0x36, 0x12, 0xa9, 0x25, 0x29, 0x21, - 0xba, 0x14, 0xbd, 0xf5, 0x56, 0xf4, 0xd2, 0xde, 0x8a, 0x02, 0xbd, 0x14, 0xe8, 0x61, 0xd1, 0x63, - 0x0f, 0xc5, 0xfe, 0x88, 0x9e, 0x7a, 0xe9, 0x0f, 0x58, 0xa0, 0x40, 0x6f, 0x3d, 0x17, 0x9c, 0x19, - 0x52, 0x43, 0x6a, 0x48, 0x49, 0x76, 0xd3, 0x9e, 0x2c, 0xbe, 0xef, 0x79, 0xef, 0xcd, 0x7b, 0x6f, - 0x66, 0x0c, 0x73, 0x4d, 0x5b, 0x2f, 0x74, 0x2d, 0xd3, 0x31, 0xd1, 0x8c, 0xfb, 0xb3, 0xff, 0x81, - 0xb2, 0x06, 0x2b, 0x65, 0xec, 0x9c, 0xf6, 0xba, 0x5d, 0xd3, 0x72, 0x70, 0xeb, 0x1c, 0x5b, 0xb6, - 0x6e, 0x1a, 0xb6, 0x8a, 0xbf, 0xec, 0x61, 0xdb, 0x51, 0x7e, 0x0a, 0xab, 0x62, 0xb4, 0xdd, 0x35, - 0x0d, 0x1b, 0xa3, 0x17, 0x80, 0x6c, 0x0f, 0xd9, 0xe8, 0x33, 0x6c, 0x5e, 0x5a, 0x4f, 0x6d, 0xcd, - 0x6f, 0xdf, 0x29, 0x50, 0x1d, 0x05, 0xc6, 0xa5, 0xde, 0xb5, 0xc3, 0x72, 0x94, 0x43, 0xc8, 0xb2, - 0xdf, 0xe8, 0x1e, 0x64, 0x3a, 0xda, 0xcf, 0x4c, 0x2b, 0x2f, 0xad, 0x4b, 0x5b, 0x19, 0x95, 0x7e, - 0x10, 0xa8, 0x6e, 0x98, 0x56, 0x3e, 0xc9, 0xa0, 0xee, 0x87, 0x0b, 0xed, 0x6a, 0x4e, 0xf3, 0x55, - 0x3e, 0x45, 0xa1, 0xe4, 0x43, 0xd9, 0x85, 0x7b, 0x65, 0xec, 0x9c, 0xb4, 0x7b, 0x57, 0xba, 0x51, - 0x31, 0x2e, 0x4d, 0xb6, 0x08, 0xf4, 0x0c, 0xb2, 0xcc, 0x34, 0x22, 0x5b, 0x60, 0x99, 0x87, 0x57, - 0xfe, 0x2e, 0xc1, 0xfd, 0x90, 0x0c, 0xb6, 0x52, 0x04, 0x69, 0x43, 0xeb, 0x60, 0x22, 0x61, 0x4e, - 0x25, 0xbf, 0xd1, 0x13, 0xb8, 0xdd, 0xc7, 0x46, 0xcb, 0xb4, 0xbc, 0xa5, 0x13, 0x2b, 0xe7, 0xd4, - 0x05, 0x0a, 0xf5, 0x56, 0x56, 0x86, 0xd9, 0x8e, 0x66, 0xe8, 0x97, 0xd8, 0x76, 0xf2, 0x29, 0xe2, - 0x9a, 0xf7, 0x3c, 0x03, 0x84, 0xba, 0x0a, 0x47, 0x8c, 0xba, 0x64, 0x38, 0xd6, 0x40, 0xf5, 0x99, - 0xe5, 0xe7, 0xb0, 0x10, 0x40, 0xa1, 0x1c, 0xa4, 0x5e, 0xe3, 0x01, 0xb3, 0xc9, 0xfd, 0xe9, 0x7a, - 0xa6, 0xaf, 0xb5, 0x7b, 0x98, 0x59, 0x42, 0x3f, 0x3e, 0x4e, 0x7e, 0x24, 0x29, 0x15, 0x12, 0x4a, - 0xaa, 0xad, 0xa8, 0x75, 0xb5, 0x0b, 0xbd, 0xad, 0x3b, 0x3a, 0xb6, 0xaf, 0xe1, 0xa5, 0x9f, 0xc0, - 0x5a, 0x84, 0x28, 0xe6, 0xac, 0x1d, 0xb8, 0xd5, 0xe4, 0xe0, 0xf9, 0x24, 0x59, 0x75, 0xde, 0x13, - 0x18, 0xe2, 0x1c, 0xa8, 0x01, 0x6a, 0xe5, 0xd7, 0x12, 0xe4, 0xc2, 0x24, 0x68, 0x07, 0xb2, 0x36, - 0xb6, 0xfa, 0x7a, 0x13, 0x33, 0xf3, 0xd6, 0xa3, 0xa4, 0x15, 0x4e, 0x29, 0xdd, 0x41, 0x42, 0xf5, - 0x58, 0xe4, 0x0f, 0x21, 0xcb, 0xa0, 0xca, 0x7b, 0x90, 0xae, 0x0f, 0xba, 0x18, 0xcd, 0x43, 0xf6, - 0xac, 0x76, 0x58, 0x3b, 0x7e, 0x59, 0xcb, 0x25, 0xd0, 0x12, 0xa0, 0xe2, 0x71, 0xad, 0xae, 0x1e, - 0x57, 0xab, 0x25, 0xb5, 0x71, 0x5a, 0x52, 0xcf, 0x2b, 0xc5, 0x52, 0x4e, 0xda, 0x9b, 0x81, 0xb4, - 0x33, 0xe8, 0x62, 0xe5, 0xaf, 0x69, 0x58, 0x2c, 0x5a, 0x58, 0x73, 0xf0, 0xb9, 0xd9, 0xee, 0x75, - 0xf0, 0xf4, 0x4e, 0xf3, 0x13, 0x28, 0xc9, 0x25, 0xd0, 0x0e, 0xdc, 0x76, 0x57, 0xde, 0xd4, 0x9d, - 0x41, 0xc3, 0xd2, 0x8c, 0x2b, 0x4c, 0x12, 0x7a, 0x7e, 0xfb, 0xbe, 0x27, 0xa5, 0xc8, 0xb0, 0xaa, - 0x8b, 0x54, 0x17, 0x9a, 0xfc, 0x27, 0xaa, 0xc0, 0x62, 0x9f, 0x58, 0xd3, 0x08, 0x38, 0x3b, 0x1d, - 0x74, 0x36, 0x35, 0x98, 0x73, 0x36, 0xea, 0x07, 0x21, 0x3a, 0xb6, 0xd1, 0x21, 0x40, 0x57, 0xb3, - 0xb4, 0x0e, 0x76, 0xb0, 0x65, 0xe7, 0x33, 0xc1, 0x24, 0x15, 0x2c, 0xbc, 0x70, 0xe2, 0x53, 0xd3, - 0x24, 0xe5, 0xd8, 0xd1, 0x2f, 0x24, 0x58, 0x6b, 0x9a, 0x86, 0x63, 0x99, 0xed, 0x36, 0xb6, 0x1a, - 0x4d, 0xc2, 0xee, 0xfe, 0x69, 0x61, 0xc3, 0xd1, 0xb5, 0xb6, 0x9d, 0x9f, 0x21, 0x0a, 0x76, 0xe2, - 0x14, 0x14, 0x7d, 0x01, 0x14, 0x5b, 0x1c, 0xb2, 0x53, 0x8d, 0x2b, 0xcd, 0x68, 0x0a, 0xf9, 0x13, - 0xb8, 0x13, 0xb2, 0x70, 0x9a, 0xbd, 0x22, 0xd7, 0x60, 0x7d, 0x9c, 0xfe, 0xa9, 0xf6, 0xde, 0x0b, - 0xb8, 0x17, 0x5c, 0x23, 0xdb, 0x27, 0x4f, 0x61, 0x86, 0x06, 0x83, 0x65, 0xcf, 0xed, 0x60, 0xd0, - 0x54, 0x86, 0x55, 0xfe, 0x94, 0x86, 0x5c, 0x38, 0x8e, 0x68, 0x07, 0x32, 0x17, 0x6d, 0xb3, 0xf9, - 0x9a, 0xf1, 0x3e, 0x8e, 0x0a, 0x78, 0x61, 0xcf, 0xa5, 0xa2, 0xd0, 0x83, 0x84, 0x4a, 0x99, 0x5c, - 0xee, 0x8e, 0xd9, 0x33, 0x1c, 0x62, 0x6c, 0x1c, 0xf7, 0x91, 0x4b, 0x35, 0xe4, 0x26, 0x4c, 0x68, - 0x1f, 0xe6, 0xb5, 0x66, 0x13, 0xdb, 0x76, 0xa3, 0x63, 0xb6, 0xbc, 0xac, 0xdd, 0x8c, 0x94, 0xb1, - 0x4b, 0x68, 0x8f, 0xcc, 0x16, 0x56, 0x41, 0xf3, 0x7f, 0xcb, 0x0b, 0x30, 0xcf, 0xd9, 0x26, 0x97, - 0x61, 0x9e, 0x53, 0x86, 0x1e, 0x40, 0xf6, 0xd2, 0x6e, 0xb8, 0xdb, 0x8f, 0x39, 0x79, 0xe6, 0xd2, - 0x26, 0x3b, 0xf7, 0x11, 0xcc, 0x13, 0x2b, 0x1a, 0x97, 0x6d, 0xed, 0x8a, 0x16, 0x97, 0x39, 0x15, - 0x08, 0xe8, 0xfb, 0x2e, 0x44, 0xfe, 0xa7, 0x04, 0x30, 0x54, 0x89, 0x76, 0x20, 0x4d, 0xac, 0x74, - 0xa5, 0xdc, 0xde, 0xde, 0x9a, 0xc0, 0xca, 0x02, 0x31, 0x95, 0x70, 0x29, 0xbf, 0x97, 0x20, 0x4d, - 0xc4, 0x84, 0x0b, 0xc6, 0x69, 0xa5, 0x56, 0xae, 0x96, 0x1a, 0xb5, 0xe3, 0xfd, 0x52, 0xe3, 0xa5, - 0x5a, 0xa9, 0x97, 0xd4, 0x9c, 0x84, 0x56, 0xe0, 0x01, 0x0f, 0x57, 0x4b, 0xbb, 0xfb, 0x25, 0xb5, - 0x71, 0x5c, 0xab, 0x7e, 0x96, 0x4b, 0x22, 0x19, 0x96, 0x8e, 0xce, 0xaa, 0xf5, 0xca, 0x28, 0x2e, - 0x85, 0x56, 0x21, 0xcf, 0xe1, 0x98, 0x0c, 0x26, 0x36, 0xed, 0x8a, 0xe5, 0xb0, 0xf4, 0x27, 0x43, - 0x66, 0xf6, 0x16, 0xfc, 0x60, 0x90, 0x5a, 0xf5, 0x12, 0x16, 0x02, 0x65, 0xc3, 0x6d, 0x53, 0x16, - 0xfe, 0xb2, 0xa7, 0x5b, 0xb8, 0xd5, 0xb8, 0x18, 0x38, 0xd8, 0x26, 0x9e, 0x48, 0xa9, 0x0b, 0x1e, - 0x74, 0xcf, 0x05, 0xba, 0x6e, 0x6d, 0xeb, 0x1d, 0xdd, 0x61, 0x34, 0x49, 0x42, 0x03, 0x04, 0x44, - 0x08, 0x94, 0xaf, 0x25, 0x98, 0x61, 0xb1, 0x79, 0xc2, 0x15, 0xae, 0x80, 0x48, 0x0f, 0x4a, 0x45, - 0xde, 0x86, 0xa4, 0xde, 0x62, 0xdb, 0x21, 0xa9, 0xb7, 0xd0, 0x0b, 0x00, 0xcd, 0x71, 0x2c, 0xfd, - 0xa2, 0xe7, 0xb2, 0xd0, 0x5e, 0xf8, 0x30, 0x18, 0x8f, 0xc2, 0xae, 0x4f, 0xc0, 0x2a, 0xcb, 0x90, - 0xc3, 0xdd, 0xd6, 0x21, 0xf4, 0x54, 0xdb, 0xf0, 0xcf, 0x49, 0x58, 0xdc, 0xc7, 0x6d, 0x7c, 0x83, - 0x2a, 0xbe, 0x02, 0x73, 0xac, 0xe6, 0xfa, 0x0b, 0x9b, 0xa5, 0x80, 0x4a, 0x2b, 0x5c, 0xf8, 0x5a, - 0x44, 0x55, 0xa0, 0xf0, 0xa5, 0x82, 0x85, 0x4f, 0x60, 0x0c, 0x57, 0xf8, 0x28, 0x36, 0xae, 0xf0, - 0x8d, 0x50, 0x04, 0x2b, 0x97, 0x58, 0xc0, 0x54, 0x2e, 0x5b, 0x82, 0x7b, 0x41, 0x23, 0x69, 0xe5, - 0x52, 0xfe, 0x9d, 0x86, 0x87, 0x43, 0x45, 0x27, 0xbd, 0x8b, 0xb6, 0x6e, 0xbf, 0x7a, 0x3b, 0x5e, - 0x7d, 0x00, 0x59, 0xc3, 0x6c, 0x11, 0x54, 0x8a, 0xd6, 0x01, 0xf7, 0xb3, 0xd2, 0x42, 0x25, 0xb8, - 0x1b, 0xee, 0x7f, 0x83, 0x7c, 0x9a, 0xa8, 0x8a, 0xee, 0x7e, 0xb9, 0x7e, 0xb8, 0x8e, 0xca, 0x30, - 0x6b, 0x61, 0xad, 0x65, 0x1a, 0xed, 0x41, 0x3e, 0xb3, 0x2e, 0x6d, 0xcd, 0xaa, 0xfe, 0x37, 0xfa, - 0x95, 0x04, 0x0f, 0xb9, 0x88, 0x76, 0xe9, 0x3a, 0x05, 0xbd, 0xec, 0xc0, 0xef, 0x65, 0xb1, 0x4e, - 0x19, 0x45, 0x8f, 0x84, 0x77, 0xb5, 0x19, 0x43, 0x82, 0x74, 0x7f, 0xcd, 0xdc, 0x46, 0xca, 0x86, - 0xda, 0x69, 0xbc, 0x09, 0xf4, 0x2b, 0xbc, 0xcd, 0x98, 0x5f, 0x86, 0x60, 0xf9, 0x18, 0x36, 0xc6, - 0x5a, 0x3b, 0x55, 0x57, 0x2d, 0xc2, 0x7d, 0xa1, 0xee, 0xa9, 0x12, 0xf2, 0x6b, 0x09, 0x1e, 0x45, - 0x2e, 0x90, 0xb5, 0xd5, 0x1f, 0xc1, 0x2d, 0x2f, 0x52, 0xba, 0x71, 0x69, 0xb2, 0xf3, 0xc8, 0x47, - 0x63, 0xfd, 0xc3, 0xc6, 0x6f, 0x06, 0x75, 0x47, 0x72, 0xea, 0x9b, 0xf9, 0xee, 0x10, 0x22, 0xbf, - 0x80, 0x5c, 0x98, 0x60, 0xaa, 0x05, 0xfc, 0x2b, 0xc9, 0x6f, 0xd1, 0x33, 0xa3, 0xfb, 0x7f, 0xd9, - 0x3b, 0xbf, 0x95, 0x60, 0x9d, 0x4b, 0xec, 0x9e, 0x21, 0x4a, 0x6d, 0x3a, 0x49, 0x56, 0x47, 0xfd, - 0x26, 0xb6, 0x5a, 0x44, 0x30, 0x92, 0xde, 0xdc, 0x76, 0x12, 0x11, 0xc9, 0x3f, 0x84, 0xcd, 0x09, - 0xc4, 0x4c, 0xe5, 0xf1, 0x4d, 0x3e, 0x91, 0x47, 0x4c, 0x67, 0x05, 0xed, 0x9b, 0x24, 0x6c, 0x9c, - 0x6b, 0x6d, 0xbd, 0xe5, 0x4f, 0x69, 0x37, 0x3b, 0x24, 0xc5, 0xc7, 0x25, 0x62, 0x74, 0x4f, 0x5d, - 0x63, 0x74, 0x6f, 0x8b, 0x2a, 0x02, 0x8d, 0xdc, 0xf7, 0x7c, 0x41, 0xe3, 0x16, 0x36, 0x71, 0x51, - 0xf8, 0xaf, 0xec, 0xe1, 0x1f, 0x83, 0x12, 0x67, 0x11, 0xdb, 0xc5, 0xab, 0x30, 0xe7, 0x5f, 0x18, - 0x10, 0xb9, 0xb3, 0xea, 0x10, 0x80, 0xf2, 0x90, 0xed, 0x60, 0xdb, 0xd6, 0xae, 0x3c, 0xf9, 0xde, - 0xa7, 0xf2, 0x4b, 0x09, 0x50, 0x55, 0xb7, 0xd9, 0x18, 0x79, 0x9d, 0xd0, 0xb9, 0x03, 0xa6, 0xf6, - 0xa6, 0x81, 0x0d, 0xc7, 0xd2, 0xd9, 0x24, 0x94, 0x51, 0xa1, 0xa3, 0xbd, 0x29, 0x51, 0x88, 0x3b, - 0xfe, 0xd8, 0x8e, 0x66, 0x39, 0xba, 0x71, 0xd5, 0x70, 0xcc, 0xd7, 0xd8, 0x60, 0xbb, 0x6b, 0xc1, - 0x83, 0xd6, 0x5d, 0xa0, 0xf2, 0x07, 0x09, 0x16, 0x03, 0x96, 0xb0, 0x95, 0x3d, 0x87, 0xac, 0x27, - 0x9b, 0x96, 0xa6, 0x0d, 0xcf, 0x14, 0x01, 0x75, 0x81, 0x86, 0xc2, 0xe3, 0x40, 0x6b, 0x00, 0x06, - 0x7e, 0xe3, 0x30, 0xbd, 0x74, 0xed, 0x73, 0x2e, 0x84, 0xe8, 0x94, 0xbf, 0x0d, 0x19, 0x1a, 0x90, - 0x49, 0xcf, 0x16, 0xbf, 0x49, 0x02, 0x2a, 0x63, 0xc7, 0x1f, 0x19, 0xa7, 0x77, 0x57, 0x44, 0x32, - 0x27, 0xaf, 0x91, 0xcc, 0x3f, 0x08, 0x9c, 0x43, 0xe9, 0x76, 0x78, 0x97, 0xbb, 0x2c, 0x09, 0x59, - 0x19, 0x77, 0x0c, 0xbd, 0xe1, 0x19, 0x50, 0xd9, 0x87, 0xc5, 0x80, 0x42, 0x16, 0xbb, 0x6f, 0x01, - 0xd2, 0xfa, 0x9a, 0xde, 0xd6, 0x2e, 0xda, 0x74, 0xbd, 0x2e, 0x96, 0x4d, 0xbf, 0x77, 0x7d, 0x8c, - 0xc7, 0xa6, 0x14, 0x61, 0x89, 0x6b, 0x37, 0x96, 0x79, 0x71, 0x8d, 0x12, 0xaf, 0x2c, 0xc3, 0x83, - 0x11, 0x21, 0xac, 0x6c, 0x1d, 0xf1, 0xcd, 0x84, 0xd9, 0x7b, 0x83, 0x9b, 0x9d, 0x36, 0x5f, 0x2a, - 0x47, 0xc4, 0x31, 0x17, 0x94, 0x85, 0xb7, 0x3b, 0x9b, 0xa3, 0x6d, 0x82, 0x5d, 0xb9, 0x44, 0x5e, - 0xf4, 0xfc, 0x2e, 0x09, 0x2b, 0x31, 0xd4, 0xe8, 0x39, 0xa4, 0xac, 0x6e, 0x93, 0x19, 0xfd, 0xce, - 0x04, 0xf2, 0x0b, 0xea, 0x49, 0xf1, 0x20, 0xa1, 0xba, 0x5c, 0xf2, 0x5f, 0x24, 0x48, 0xa9, 0x27, - 0x45, 0xf4, 0x29, 0xbd, 0xc2, 0x61, 0xa7, 0xbf, 0xf7, 0x27, 0x94, 0x52, 0x70, 0x4f, 0x9a, 0x2a, - 0xbd, 0xfc, 0x31, 0x45, 0x37, 0x46, 0x79, 0xb8, 0x57, 0x54, 0x4b, 0xbb, 0xf5, 0x52, 0x63, 0xbf, - 0x54, 0x2d, 0xd5, 0x4b, 0x8d, 0xf3, 0xe3, 0xea, 0xd9, 0x51, 0x29, 0x27, 0xb9, 0x27, 0xb9, 0x93, - 0xb3, 0xbd, 0x6a, 0xe5, 0xf4, 0xa0, 0x71, 0x56, 0xf3, 0x7e, 0x31, 0x6c, 0x12, 0xe5, 0xe0, 0x56, - 0xb5, 0x72, 0x5a, 0x67, 0x80, 0xd3, 0x5c, 0xca, 0x85, 0x94, 0x4b, 0xf5, 0x46, 0x71, 0xf7, 0x64, - 0xb7, 0x58, 0xa9, 0x7f, 0x96, 0x4b, 0xfb, 0xb7, 0x4e, 0xdf, 0x64, 0x20, 0x5f, 0x33, 0x5b, 0xf8, - 0xad, 0x8e, 0xd7, 0xf5, 0xd0, 0xb0, 0x44, 0x37, 0xdd, 0x07, 0x9e, 0xb0, 0x28, 0xfd, 0xf1, 0x53, - 0x92, 0x5b, 0x42, 0x1d, 0xcd, 0xba, 0xc2, 0x4e, 0xa3, 0xab, 0x39, 0xaf, 0xc8, 0x54, 0x3e, 0xa7, - 0x02, 0x05, 0x9d, 0x68, 0xce, 0x2b, 0xf1, 0xf0, 0x9e, 0xb9, 0xd1, 0xf0, 0x3e, 0x13, 0x1a, 0xde, - 0xfb, 0x90, 0x27, 0xc3, 0x8f, 0x68, 0xb4, 0x09, 0x8d, 0xcc, 0x91, 0xab, 0xe4, 0x10, 0x23, 0xa3, - 0xcc, 0x92, 0x21, 0x44, 0xa2, 0xa6, 0xa8, 0x23, 0xcf, 0x12, 0x85, 0x1f, 0x8e, 0x55, 0x38, 0x69, - 0x23, 0xbe, 0xe1, 0x18, 0x2a, 0x57, 0x60, 0x25, 0x66, 0x6d, 0xff, 0xfb, 0xb9, 0x7e, 0x05, 0x96, - 0x05, 0x3e, 0x61, 0x55, 0xee, 0x6f, 0x49, 0x90, 0x5d, 0xec, 0x5b, 0x9e, 0x96, 0x43, 0x49, 0x9b, - 0x1a, 0x49, 0xda, 0x9f, 0x83, 0x4c, 0x32, 0x2a, 0x6e, 0x5c, 0xfe, 0x94, 0x0f, 0x71, 0xc4, 0xa0, - 0x1c, 0x40, 0x8d, 0xe4, 0x15, 0xc9, 0x5a, 0xe1, 0x70, 0x7c, 0x08, 0x6b, 0xb1, 0xac, 0x53, 0x79, - 0x7c, 0x8d, 0x66, 0x40, 0xd4, 0x40, 0xfc, 0x09, 0xe4, 0x5c, 0x74, 0x19, 0x3b, 0x95, 0xd6, 0x35, - 0x3a, 0xc9, 0xfb, 0x70, 0x97, 0x63, 0x67, 0x9d, 0x83, 0x3b, 0x8e, 0x48, 0xfc, 0x71, 0xc4, 0x53, - 0x76, 0xdd, 0x06, 0xb9, 0x48, 0x95, 0x05, 0x5b, 0x63, 0x99, 0xe6, 0xcc, 0xcd, 0x9b, 0xe2, 0x17, - 0xd4, 0x51, 0x51, 0xed, 0x70, 0x37, 0xd4, 0x0e, 0xe9, 0x48, 0xb7, 0xc6, 0xa7, 0xc1, 0xb8, 0x46, - 0xf8, 0x95, 0x04, 0xf7, 0x85, 0x74, 0xe8, 0xbb, 0x7c, 0x0b, 0xdc, 0x88, 0x95, 0xc9, 0x37, 0xbf, - 0x73, 0xda, 0xfb, 0x3e, 0x0e, 0xf4, 0xbe, 0xa7, 0x63, 0xd9, 0xf9, 0xae, 0xb7, 0x28, 0xe8, 0x7a, - 0x5e, 0x67, 0xda, 0xfe, 0x63, 0x12, 0x66, 0x2b, 0x24, 0xf5, 0x9c, 0x01, 0x6a, 0x92, 0x77, 0xb7, - 0x91, 0x47, 0x42, 0xb4, 0xc9, 0x0d, 0x6e, 0x51, 0x2f, 0x8c, 0xf2, 0xe3, 0x78, 0x22, 0x16, 0xcb, - 0x04, 0xaa, 0xc1, 0x42, 0xe0, 0xb1, 0x0c, 0xad, 0x46, 0xbc, 0xa1, 0x51, 0xb1, 0x6b, 0xb1, 0x2f, - 0x6c, 0x4a, 0x02, 0x5d, 0x72, 0x0f, 0x7d, 0x81, 0x11, 0xf4, 0xf1, 0x08, 0xa7, 0x20, 0x7d, 0xe4, - 0x27, 0x63, 0xa8, 0x3c, 0x3d, 0xdb, 0xff, 0x98, 0x01, 0x18, 0xce, 0x1a, 0xe8, 0x10, 0x6e, 0xf1, - 0x2f, 0x01, 0x68, 0x25, 0xe6, 0x0d, 0x44, 0x5e, 0x15, 0x23, 0xfd, 0x35, 0x1c, 0xc2, 0x2d, 0xfe, - 0x72, 0x6e, 0x28, 0x4c, 0x70, 0xaf, 0x38, 0x14, 0x26, 0xbc, 0xcf, 0x4b, 0xa0, 0x76, 0x60, 0xc8, - 0xe4, 0x4b, 0x02, 0x7a, 0x3a, 0xd9, 0xcd, 0x92, 0xfc, 0xce, 0x84, 0x37, 0x2c, 0x4a, 0x02, 0x59, - 0xb0, 0x1c, 0x79, 0x26, 0x47, 0x5b, 0x93, 0xde, 0x38, 0xc8, 0xcf, 0x26, 0xa0, 0xf4, 0x75, 0xf6, - 0x40, 0x8e, 0x3e, 0x76, 0xa2, 0x67, 0x13, 0x1f, 0x96, 0xe5, 0x77, 0x27, 0x21, 0xf5, 0xd5, 0x1e, - 0xc0, 0x3c, 0x77, 0xac, 0x43, 0xb2, 0xf0, 0xac, 0x47, 0x05, 0xaf, 0xc4, 0x9c, 0x03, 0xa9, 0x24, - 0xee, 0x48, 0x32, 0x94, 0x34, 0x7a, 0x30, 0x1a, 0x4a, 0x12, 0x9c, 0x61, 0x94, 0x04, 0xaa, 0xc3, - 0x9d, 0xd0, 0x89, 0x02, 0x3d, 0x14, 0x04, 0x8f, 0x2b, 0xc7, 0xf2, 0xa3, 0x48, 0xbc, 0x38, 0xa8, - 0xa1, 0x72, 0x29, 0x0a, 0xaa, 0xb8, 0x34, 0x8b, 0x82, 0x1a, 0x51, 0x7b, 0x95, 0xc4, 0xf6, 0x57, - 0x29, 0x48, 0xbb, 0xf5, 0x0c, 0x7d, 0xce, 0x7a, 0x40, 0x20, 0x93, 0xd6, 0xc7, 0xcd, 0x5b, 0xf2, - 0x46, 0x0c, 0x85, 0xbf, 0xb0, 0x2f, 0x60, 0x51, 0xd0, 0x2a, 0x91, 0x32, 0xbe, 0xd5, 0xcb, 0x9b, - 0xb1, 0x34, 0xbe, 0x86, 0x3d, 0x98, 0xf3, 0xdb, 0x25, 0xca, 0xf3, 0x3c, 0x7c, 0x03, 0x96, 0x97, - 0x05, 0x98, 0xb0, 0x0c, 0x1a, 0xce, 0x80, 0x8c, 0x40, 0x20, 0x97, 0x05, 0x98, 0xf0, 0x4a, 0xc3, - 0xc1, 0x53, 0x42, 0x7a, 0x45, 0x61, 0xdb, 0x8c, 0xa5, 0xf1, 0x34, 0xec, 0x65, 0x3e, 0x4f, 0x35, - 0x6d, 0xfd, 0x62, 0x86, 0xfc, 0x1f, 0xca, 0x77, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xe8, - 0x69, 0x0c, 0x94, 0x22, 0x00, 0x00, + // 2108 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x1a, 0x4b, 0x53, 0xe3, 0xc8, + 0x19, 0xf9, 0xc1, 0xe3, 0x03, 0x66, 0x3c, 0xcd, 0x3c, 0x8c, 0x80, 0x19, 0x10, 0x3b, 0xb3, 0xec, + 0x23, 0x4e, 0x2d, 0xa9, 0x6c, 0x6d, 0xcd, 0x90, 0xc9, 0x80, 0xf1, 0x82, 0x17, 0x63, 0x88, 0x30, + 0x4c, 0xed, 0x26, 0x29, 0xad, 0xb0, 0x1b, 0x46, 0x35, 0x42, 0xf2, 0x4a, 0xb2, 0x6b, 0x7c, 0x49, + 0xe5, 0x90, 0x73, 0x2a, 0x95, 0x43, 0x6e, 0xa9, 0x54, 0xe5, 0x98, 0xaa, 0xec, 0x39, 0xb9, 0xec, + 0x21, 0x7f, 0x20, 0xd7, 0x5c, 0x72, 0xdd, 0xd3, 0xde, 0xf2, 0x07, 0x52, 0xea, 0x6e, 0xc9, 0x2d, + 0xb9, 0x25, 0xdb, 0xb0, 0xb3, 0x27, 0xec, 0xef, 0xfd, 0xea, 0xef, 0xfb, 0xba, 0x0d, 0xcc, 0x34, + 0x5d, 0xa3, 0xd4, 0x76, 0x6c, 0xcf, 0x46, 0x93, 0xfe, 0xc7, 0xee, 0x47, 0xf2, 0xed, 0x2e, 0x76, + 0x5c, 0xc3, 0xb6, 0x70, 0x8b, 0x22, 0x94, 0xe7, 0x70, 0x77, 0x0f, 0x7b, 0xc7, 0x66, 0xe7, 0xd2, + 0xb0, 0xaa, 0xd6, 0x85, 0xad, 0xe2, 0xaf, 0x3a, 0xd8, 0xf5, 0xd0, 0x13, 0x98, 0x62, 0xa4, 0x45, + 0x69, 0x55, 0xda, 0x98, 0xdd, 0x9c, 0x2b, 0xf9, 0x22, 0xce, 0x28, 0x4c, 0x0d, 0x90, 0xca, 0x7f, + 0x24, 0xb8, 0x17, 0x13, 0xe0, 0xb6, 0x6d, 0xcb, 0xc5, 0x08, 0x41, 0xce, 0xd2, 0xaf, 0x30, 0x61, + 0x9f, 0x51, 0xc9, 0x67, 0xf4, 0x18, 0x6e, 0x75, 0xb1, 0xd5, 0xb2, 0x1d, 0x2d, 0x10, 0x9e, 0x21, + 0xd8, 0x79, 0x0a, 0x65, 0xd2, 0xd1, 0x1e, 0x4c, 0x5f, 0xe9, 0x96, 0x71, 0x81, 0x5d, 0xaf, 0x98, + 0x5d, 0xcd, 0x6e, 0xcc, 0x6e, 0x7e, 0x50, 0xa2, 0x0e, 0x94, 0x84, 0xba, 0x4a, 0x87, 0x8c, 0xba, + 0x62, 0x79, 0x4e, 0x4f, 0x0d, 0x99, 0xe5, 0x67, 0x30, 0x1f, 0x41, 0xa1, 0x02, 0x64, 0x5f, 0xe3, + 0x1e, 0xb3, 0xc9, 0xff, 0x88, 0xee, 0x42, 0xbe, 0xab, 0x9b, 0x1d, 0xcc, 0x2c, 0xa1, 0x5f, 0x9e, + 0x66, 0x3e, 0x91, 0x94, 0x4f, 0x61, 0x39, 0xd4, 0x56, 0xd6, 0xdb, 0xfa, 0xb9, 0x61, 0x1a, 0x9e, + 0x81, 0xdd, 0x71, 0x43, 0xf4, 0x6b, 0x58, 0x49, 0x90, 0xc3, 0x22, 0xb5, 0x05, 0x73, 0x4d, 0x0e, + 0x5e, 0xcc, 0x10, 0x97, 0x8b, 0x81, 0xcb, 0x31, 0xce, 0x9e, 0x1a, 0xa1, 0x56, 0xfe, 0x20, 0x41, + 0x21, 0x4e, 0x82, 0xb6, 0x60, 0xca, 0xc5, 0x4e, 0xd7, 0x68, 0x62, 0x66, 0xdb, 0x6a, 0x92, 0xb4, + 0xd2, 0x09, 0xa5, 0xdb, 0x9f, 0x50, 0x03, 0x16, 0xf9, 0x63, 0x98, 0x62, 0x50, 0xe5, 0x03, 0xc8, + 0x35, 0x7a, 0x6d, 0x8c, 0x66, 0x61, 0xea, 0xb4, 0x7e, 0x50, 0x3f, 0x7a, 0x59, 0x2f, 0x4c, 0xa0, + 0xfb, 0x80, 0xca, 0x47, 0xf5, 0x86, 0x7a, 0x54, 0xab, 0x55, 0x54, 0xed, 0xa4, 0xa2, 0x9e, 0x55, + 0xcb, 0x95, 0x82, 0xb4, 0x33, 0x09, 0x39, 0xaf, 0xd7, 0xc6, 0xca, 0x3f, 0x73, 0xb0, 0x50, 0x76, + 0xb0, 0xee, 0xe1, 0x33, 0xdb, 0xec, 0x5c, 0xe1, 0x31, 0x23, 0x16, 0x96, 0x4e, 0x86, 0x2b, 0x9d, + 0x2d, 0xb8, 0xe5, 0xbb, 0xdd, 0x34, 0xbc, 0x9e, 0xe6, 0xe8, 0xd6, 0x25, 0x2e, 0x66, 0x89, 0x88, + 0x7b, 0x81, 0x63, 0x65, 0x86, 0x55, 0x7d, 0xa4, 0x3a, 0xdf, 0xe4, 0xbf, 0xa2, 0x2a, 0x2c, 0x74, + 0x89, 0x29, 0x5a, 0x24, 0xd2, 0xb9, 0x68, 0xa4, 0xa9, 0xb5, 0x5c, 0xa4, 0x51, 0x37, 0x0a, 0x31, + 0xb0, 0x8b, 0x0e, 0x00, 0xda, 0xba, 0xa3, 0x5f, 0x61, 0x0f, 0x3b, 0x6e, 0x31, 0x1f, 0x2d, 0x4f, + 0x81, 0xd7, 0xa5, 0xe3, 0x90, 0x9a, 0x96, 0x27, 0xc7, 0x8e, 0x7e, 0x2b, 0xc1, 0x4a, 0xd3, 0xb6, + 0x3c, 0xc7, 0x36, 0x4d, 0xec, 0x68, 0x4d, 0xc2, 0xee, 0xff, 0x69, 0x61, 0xcb, 0x33, 0x74, 0xd3, + 0x2d, 0x4e, 0x12, 0x05, 0x5b, 0x69, 0x0a, 0xca, 0xa1, 0x00, 0x8a, 0x2d, 0xf7, 0xd9, 0xa9, 0xc6, + 0xa5, 0x66, 0x32, 0x85, 0xfc, 0x33, 0xb8, 0x1d, 0xb3, 0x70, 0x9c, 0x53, 0x22, 0xd7, 0x61, 0x75, + 0x98, 0xfe, 0xb1, 0x4e, 0xdd, 0x73, 0xb8, 0x1b, 0xf5, 0x91, 0x1d, 0x92, 0x27, 0x30, 0x49, 0x93, + 0xc1, 0x4a, 0xe7, 0x56, 0x34, 0x69, 0x2a, 0xc3, 0x2a, 0x7f, 0xcb, 0x41, 0x21, 0x9e, 0x47, 0xb4, + 0x05, 0xf9, 0x73, 0xd3, 0x6e, 0xbe, 0x66, 0xbc, 0xef, 0x24, 0x25, 0xbc, 0xb4, 0xe3, 0x53, 0x51, + 0xe8, 0xfe, 0x84, 0x4a, 0x99, 0x7c, 0xee, 0x2b, 0xbb, 0x63, 0x79, 0xc4, 0xd8, 0x34, 0xee, 0x43, + 0x9f, 0xaa, 0xcf, 0x4d, 0x98, 0xd0, 0x2e, 0xcc, 0xea, 0xcd, 0x26, 0x76, 0x5d, 0xed, 0xca, 0x6e, + 0x05, 0x55, 0xbb, 0x9e, 0x28, 0x63, 0x9b, 0xd0, 0x1e, 0xda, 0x2d, 0xac, 0x82, 0x1e, 0x7e, 0x96, + 0xe7, 0x61, 0x96, 0xb3, 0x4d, 0xde, 0x83, 0x59, 0x4e, 0x19, 0x7a, 0x00, 0x53, 0x17, 0xae, 0xe6, + 0x9f, 0x3d, 0x16, 0xe4, 0xc9, 0x0b, 0x97, 0x1c, 0xdb, 0x47, 0x30, 0x4b, 0xac, 0xd0, 0x2e, 0x4c, + 0xfd, 0x92, 0x76, 0x96, 0x19, 0x15, 0x08, 0xe8, 0x53, 0x1f, 0x22, 0x7f, 0x27, 0x01, 0xf4, 0x55, + 0xa2, 0x2d, 0xc8, 0x11, 0x2b, 0x7d, 0x29, 0xb7, 0x36, 0x37, 0x46, 0xb0, 0xb2, 0x44, 0x4c, 0x25, + 0x5c, 0xca, 0x5f, 0x24, 0xc8, 0x11, 0x31, 0xf1, 0x6e, 0x71, 0x52, 0xad, 0xef, 0xd5, 0x2a, 0x5a, + 0xfd, 0x68, 0xb7, 0xa2, 0xbd, 0x54, 0xab, 0x8d, 0x8a, 0x5a, 0x90, 0xd0, 0x12, 0x3c, 0xe0, 0xe1, + 0x6a, 0x65, 0x7b, 0xb7, 0xa2, 0x6a, 0x47, 0xf5, 0xda, 0xe7, 0x85, 0x0c, 0x92, 0xe1, 0xfe, 0xe1, + 0x69, 0xad, 0x51, 0x1d, 0xc4, 0x65, 0xd1, 0x32, 0x14, 0x39, 0x1c, 0x93, 0xc1, 0xc4, 0xe6, 0x7c, + 0xb1, 0x1c, 0x96, 0x7e, 0x64, 0xc8, 0xfc, 0xce, 0x7c, 0x98, 0x0c, 0xd2, 0xa8, 0x5e, 0xc2, 0x7c, + 0xa4, 0x6d, 0xf8, 0x03, 0xca, 0xc1, 0x5f, 0x75, 0x0c, 0x07, 0xb7, 0xb4, 0xf3, 0x9e, 0x87, 0x5d, + 0x12, 0x89, 0xac, 0x3a, 0x1f, 0x40, 0x77, 0x7c, 0xa0, 0x1f, 0x56, 0xd3, 0xb8, 0x32, 0x3c, 0x46, + 0x93, 0x21, 0x34, 0x40, 0x40, 0x84, 0x40, 0xf9, 0x46, 0x82, 0x49, 0x96, 0x9b, 0xc7, 0x5c, 0xe3, + 0x8a, 0x88, 0x0c, 0xa0, 0x54, 0xe4, 0x2d, 0xc8, 0x18, 0x2d, 0x76, 0x1c, 0x32, 0x46, 0x0b, 0x3d, + 0x07, 0xd0, 0x3d, 0xcf, 0x31, 0xce, 0x3b, 0x3e, 0x0b, 0x9d, 0x82, 0x0f, 0xa3, 0xf9, 0x28, 0x6d, + 0x87, 0x04, 0xac, 0xb3, 0xf4, 0x39, 0xfc, 0x63, 0x1d, 0x43, 0x8f, 0x75, 0x0c, 0xff, 0x9e, 0x81, + 0x85, 0x5d, 0x6c, 0xe2, 0xeb, 0xb6, 0xf0, 0x25, 0x98, 0x61, 0x0d, 0x37, 0xf4, 0x6a, 0x9a, 0x02, + 0xaa, 0xad, 0x78, 0xd7, 0x6b, 0x11, 0x3d, 0x91, 0xae, 0x97, 0x8d, 0x76, 0x3d, 0x81, 0x25, 0x5c, + 0xd7, 0xa3, 0xd8, 0xb4, 0xae, 0x37, 0x40, 0x11, 0x6d, 0x5b, 0x62, 0x01, 0x63, 0xc5, 0xeb, 0x3e, + 0xdc, 0x8d, 0x1a, 0x49, 0xdb, 0x96, 0xf2, 0xbf, 0x1c, 0x3c, 0xec, 0x2b, 0x3a, 0xee, 0x9c, 0x9b, + 0x86, 0xfb, 0xea, 0x2d, 0x84, 0xf4, 0x01, 0x4c, 0x59, 0x76, 0x8b, 0xa0, 0xb2, 0xb4, 0x03, 0xf8, + 0x5f, 0xab, 0x2d, 0x54, 0x81, 0x3b, 0xf1, 0xc9, 0xd7, 0x2b, 0xe6, 0x88, 0x9e, 0xe4, 0xb9, 0x57, + 0xe8, 0xc6, 0x3b, 0xa8, 0x0c, 0xd3, 0x0e, 0xd6, 0x5b, 0xb6, 0x65, 0xf6, 0x8a, 0xf9, 0x55, 0x69, + 0x63, 0x5a, 0x0d, 0xbf, 0xa3, 0xdf, 0x4b, 0xf0, 0x90, 0x4b, 0x67, 0x9b, 0x3a, 0x29, 0x98, 0x62, + 0xfb, 0xe1, 0x14, 0x4b, 0x8d, 0xc8, 0x20, 0x7a, 0x20, 0xb7, 0xcb, 0xcd, 0x14, 0x12, 0x64, 0x84, + 0x3e, 0x73, 0x47, 0x68, 0x2a, 0x36, 0x48, 0xd3, 0x4d, 0xa0, 0xdf, 0xe2, 0x07, 0x8c, 0xc5, 0xa5, + 0x0f, 0x96, 0x8f, 0x60, 0x6d, 0xa8, 0xb5, 0x63, 0xcd, 0xd3, 0x32, 0xdc, 0x13, 0xea, 0x1e, 0xab, + 0x1a, 0xbf, 0x91, 0xe0, 0x51, 0xa2, 0x83, 0x6c, 0xa0, 0xfe, 0x12, 0xe6, 0x82, 0x4c, 0x19, 0xd6, + 0x85, 0x5d, 0x94, 0x48, 0x7c, 0x3e, 0x19, 0x1a, 0x1f, 0xb6, 0x72, 0x33, 0xa8, 0xbf, 0x86, 0xd3, + 0xd8, 0xcc, 0xb6, 0xfb, 0x10, 0xf9, 0x39, 0x14, 0xe2, 0x04, 0x63, 0x39, 0xf0, 0x5d, 0x86, 0x3f, + 0x9f, 0xa7, 0x56, 0xfb, 0x87, 0x3f, 0x38, 0x7f, 0x92, 0x60, 0x95, 0xab, 0xea, 0x8e, 0x25, 0xaa, + 0x6b, 0xba, 0x40, 0xd6, 0x06, 0x83, 0x26, 0x36, 0x59, 0x44, 0x30, 0x50, 0xdb, 0xdc, 0x59, 0x12, + 0x11, 0xc9, 0xbf, 0x80, 0xf5, 0x11, 0xc4, 0x8c, 0x15, 0xee, 0x75, 0xbe, 0x8a, 0x07, 0x4c, 0x67, + 0xad, 0xec, 0xdb, 0x0c, 0xac, 0x9d, 0xe9, 0xa6, 0xd1, 0x0a, 0x97, 0xb3, 0x1b, 0xdc, 0x8a, 0xd2, + 0x93, 0x92, 0xb0, 0xae, 0x67, 0xaf, 0xb1, 0xae, 0x9b, 0xa2, 0x5e, 0x40, 0xd3, 0xf6, 0xf3, 0x50, + 0xd0, 0x30, 0xaf, 0x46, 0x6e, 0x07, 0xdf, 0xcb, 0xe9, 0xfd, 0x15, 0x28, 0x69, 0x16, 0xb1, 0xf3, + 0xbb, 0x0c, 0x33, 0x6e, 0xa7, 0xdd, 0xb6, 0x1d, 0x0f, 0xb7, 0x88, 0xdc, 0x69, 0xb5, 0x0f, 0x40, + 0x45, 0x98, 0xba, 0xc2, 0xae, 0xab, 0x5f, 0x06, 0xf2, 0x83, 0xaf, 0xca, 0xef, 0x24, 0x40, 0x35, + 0xc3, 0x65, 0xab, 0xe3, 0xd8, 0x79, 0xf3, 0x37, 0x4a, 0xfd, 0x8d, 0x86, 0x2d, 0xcf, 0x31, 0xd8, + 0xea, 0x93, 0x57, 0xe1, 0x4a, 0x7f, 0x53, 0xa1, 0x10, 0x7f, 0xdf, 0x71, 0x3d, 0xdd, 0xf1, 0x0c, + 0xeb, 0x52, 0xf3, 0xec, 0xd7, 0xd8, 0x62, 0xe7, 0x6a, 0x3e, 0x80, 0x36, 0x7c, 0xa0, 0xf2, 0x57, + 0x09, 0x16, 0x22, 0x66, 0x30, 0xb7, 0x9e, 0xc1, 0x54, 0x20, 0x9b, 0x76, 0xa4, 0xb5, 0x20, 0x4b, + 0x02, 0xea, 0x12, 0xcd, 0x43, 0xc0, 0x81, 0x56, 0x00, 0x2c, 0xfc, 0xc6, 0x63, 0x7a, 0xa9, 0xe3, + 0x33, 0x3e, 0x84, 0xe8, 0x94, 0x7f, 0x0c, 0x79, 0x9a, 0x8d, 0x51, 0x2f, 0x13, 0x7f, 0xcc, 0x00, + 0xda, 0xc3, 0x5e, 0xb8, 0x23, 0x8e, 0x19, 0xab, 0x84, 0x32, 0xce, 0x5c, 0xa3, 0x8c, 0x3f, 0x8b, + 0xdc, 0x3a, 0xe9, 0x41, 0x78, 0x9f, 0x7b, 0x14, 0x89, 0x99, 0x98, 0x76, 0xe9, 0xbc, 0xe1, 0x8d, + 0x4f, 0xd9, 0x85, 0x85, 0x88, 0x42, 0x96, 0xb8, 0x1f, 0x01, 0xd2, 0xbb, 0xba, 0x61, 0xea, 0xe7, + 0x26, 0xf5, 0xd7, 0xc7, 0xb2, 0x5d, 0xf7, 0x4e, 0x88, 0x09, 0xd8, 0x94, 0x17, 0x70, 0x9f, 0x1b, + 0x31, 0x8e, 0x7d, 0x3e, 0x6e, 0x5b, 0x57, 0x16, 0xe1, 0xc1, 0x80, 0x04, 0xd6, 0xaa, 0x3e, 0xe3, + 0xa7, 0x07, 0x33, 0xf6, 0xba, 0xcf, 0x37, 0x26, 0xdf, 0x1b, 0x07, 0x64, 0x31, 0xe7, 0xf7, 0x84, + 0x4f, 0x38, 0xeb, 0x83, 0x73, 0x81, 0xbd, 0xab, 0x24, 0xbe, 0xe6, 0xfc, 0x39, 0x03, 0x4b, 0x29, + 0xd4, 0xe8, 0x19, 0x64, 0x9d, 0x76, 0x93, 0x59, 0xfc, 0xee, 0x08, 0xf2, 0x4b, 0xea, 0x71, 0x79, + 0x7f, 0x42, 0xf5, 0xb9, 0xe4, 0x7f, 0x48, 0x90, 0x55, 0x8f, 0xcb, 0xe8, 0x05, 0x7d, 0xa7, 0x61, + 0xb7, 0xbc, 0x0f, 0x47, 0x94, 0x52, 0xf2, 0x6f, 0x94, 0x2a, 0x7d, 0xe1, 0xb1, 0x45, 0xcf, 0x42, + 0x45, 0xb8, 0x5b, 0x56, 0x2b, 0xdb, 0x8d, 0x8a, 0xb6, 0x5b, 0xa9, 0x55, 0x1a, 0x15, 0xed, 0xec, + 0xa8, 0x76, 0x7a, 0x58, 0x29, 0x48, 0xfe, 0x8d, 0xed, 0xf8, 0x74, 0xa7, 0x56, 0x3d, 0xd9, 0xd7, + 0x4e, 0xeb, 0xc1, 0x27, 0x86, 0xcd, 0xa0, 0x02, 0xcc, 0xd5, 0xaa, 0x27, 0x0d, 0x06, 0x38, 0x29, + 0x64, 0x7d, 0xc8, 0x5e, 0xa5, 0xa1, 0x95, 0xb7, 0x8f, 0xb7, 0xcb, 0xd5, 0xc6, 0xe7, 0x85, 0x5c, + 0xf8, 0xb4, 0xf4, 0x6d, 0x1e, 0x8a, 0x75, 0xbb, 0x85, 0xdf, 0xde, 0x26, 0xdd, 0x88, 0xed, 0x45, + 0xf4, 0xac, 0x7d, 0x14, 0x04, 0x29, 0x49, 0x79, 0xfa, 0x42, 0xe4, 0xb7, 0x4d, 0x4f, 0x77, 0x2e, + 0xb1, 0xa7, 0xb5, 0x75, 0xef, 0x15, 0x59, 0xc0, 0x67, 0x54, 0xa0, 0xa0, 0x63, 0xdd, 0x7b, 0x25, + 0xde, 0xd3, 0xf3, 0x37, 0xda, 0xd3, 0x27, 0x63, 0x7b, 0x7a, 0x17, 0x8a, 0x64, 0xd5, 0x11, 0x2d, + 0x32, 0xb1, 0xed, 0x38, 0xd1, 0x4b, 0x0e, 0x31, 0xb0, 0xb8, 0xdc, 0xb7, 0x84, 0x48, 0xd4, 0x14, + 0x8d, 0xe0, 0x69, 0xa2, 0xf0, 0xe3, 0xa1, 0x0a, 0x47, 0x9d, 0xbc, 0x37, 0xdc, 0x38, 0xe5, 0x2a, + 0x2c, 0xa5, 0xf8, 0xf6, 0xc3, 0xaf, 0xf0, 0x4b, 0xb0, 0x28, 0x88, 0x09, 0xeb, 0x6f, 0xff, 0xce, + 0x80, 0xec, 0x63, 0xdf, 0xe6, 0x62, 0x1c, 0xab, 0xd8, 0xec, 0x40, 0xc5, 0xfe, 0x06, 0x64, 0x52, + 0x4e, 0x69, 0x9b, 0xf1, 0x0b, 0x3e, 0xbf, 0x09, 0x3b, 0x71, 0x04, 0x35, 0x50, 0x54, 0xa4, 0x64, + 0x85, 0x7b, 0xf0, 0x01, 0xac, 0xa4, 0xb2, 0x8e, 0x15, 0xee, 0x15, 0x9a, 0xfe, 0xa4, 0xdd, 0xf7, + 0x29, 0x14, 0x7c, 0xf4, 0x1e, 0xf6, 0xaa, 0xad, 0x71, 0x07, 0xc8, 0x87, 0x70, 0x87, 0xe3, 0x65, + 0x03, 0x83, 0xbb, 0x76, 0x48, 0xfc, 0xb5, 0x23, 0xd0, 0x74, 0xad, 0x89, 0xb8, 0x40, 0x35, 0x45, + 0x67, 0xe1, 0x2e, 0x2d, 0x95, 0x1b, 0x4e, 0xc1, 0x2f, 0x69, 0x7c, 0x92, 0xe6, 0xdf, 0x76, 0x6c, + 0xfe, 0xd1, 0xd5, 0x6d, 0x85, 0xcf, 0xfe, 0xb0, 0xc9, 0xf7, 0xb5, 0x04, 0xf7, 0x84, 0x74, 0xe8, + 0xa7, 0xfc, 0xcc, 0x5b, 0x4b, 0x95, 0xc9, 0x4f, 0xbb, 0x33, 0x3a, 0xec, 0x9e, 0x46, 0x86, 0xdd, + 0x93, 0xa1, 0xec, 0xfc, 0x98, 0x5b, 0x10, 0x8c, 0xb9, 0x60, 0x14, 0x6d, 0xfe, 0x4b, 0x82, 0xe9, + 0x2a, 0xa9, 0x38, 0xaf, 0x87, 0xea, 0x30, 0x1f, 0xf9, 0x69, 0x0a, 0x2d, 0x27, 0xfc, 0x62, 0x45, + 0xc2, 0x2e, 0xaf, 0xa4, 0xfe, 0x9e, 0xa5, 0x4c, 0xa0, 0x0b, 0xee, 0x67, 0xb5, 0xc8, 0x22, 0xf8, + 0xce, 0x00, 0xa7, 0x20, 0xad, 0xf2, 0xe3, 0x21, 0x54, 0x81, 0x9e, 0xcd, 0xff, 0x4e, 0x02, 0xf4, + 0xe7, 0x3e, 0x3a, 0x80, 0x39, 0xfe, 0xf5, 0x1d, 0x2d, 0xa5, 0xfc, 0xee, 0x20, 0x2f, 0x8b, 0x91, + 0xa1, 0x0f, 0x07, 0x30, 0xc7, 0xbf, 0x89, 0xf5, 0x85, 0x09, 0x9e, 0xf3, 0xfa, 0xc2, 0x84, 0xcf, + 0x68, 0x13, 0xc8, 0x8c, 0x6c, 0x7b, 0xfc, 0x21, 0x45, 0x4f, 0x46, 0x7b, 0xd3, 0x91, 0xdf, 0x1d, + 0xf1, 0x6d, 0x43, 0x99, 0x40, 0x0e, 0x2c, 0x26, 0x5e, 0x88, 0xd1, 0xc6, 0xa8, 0xd7, 0x7d, 0xf9, + 0xbd, 0x11, 0x28, 0x43, 0x9d, 0x1d, 0x90, 0x93, 0xaf, 0x7d, 0xe8, 0xbd, 0x91, 0x2f, 0xab, 0xf2, + 0xfb, 0xa3, 0x90, 0x86, 0x6a, 0xf7, 0x61, 0x96, 0xbb, 0x59, 0x21, 0x59, 0x78, 0xdd, 0xa2, 0x82, + 0x97, 0x52, 0xae, 0x62, 0x54, 0x12, 0x77, 0x31, 0xe8, 0x4b, 0x1a, 0xbc, 0x9e, 0xf4, 0x25, 0x09, + 0x6e, 0x12, 0xca, 0x04, 0x6a, 0xc0, 0xed, 0xd8, 0x6a, 0x8f, 0x1e, 0x0a, 0x92, 0xc7, 0xf5, 0x48, + 0xf9, 0x51, 0x22, 0x5e, 0x9c, 0xd4, 0x58, 0x27, 0x13, 0x25, 0x55, 0xdc, 0x32, 0x45, 0x49, 0x4d, + 0x68, 0x8b, 0xca, 0xc4, 0xe6, 0xd7, 0x59, 0xc8, 0xf9, 0xad, 0x06, 0x7d, 0xc1, 0x7a, 0x73, 0xa4, + 0x92, 0x56, 0x87, 0xad, 0x3f, 0xf2, 0x5a, 0x0a, 0x45, 0xe8, 0xd8, 0x97, 0xb0, 0x20, 0x18, 0x5e, + 0x48, 0x19, 0x3e, 0x7c, 0xe5, 0xf5, 0x54, 0x9a, 0x50, 0xc3, 0x0e, 0xcc, 0x84, 0x33, 0x0c, 0x15, + 0x79, 0x1e, 0x7e, 0x24, 0xca, 0x8b, 0x02, 0x4c, 0x5c, 0x06, 0x4d, 0x67, 0x44, 0x46, 0x24, 0x91, + 0x8b, 0x02, 0x4c, 0xdc, 0xd3, 0x78, 0xf2, 0x94, 0x98, 0x5e, 0x51, 0xda, 0xd6, 0x53, 0x69, 0x02, + 0x0d, 0x3b, 0xf9, 0x2f, 0xb2, 0x4d, 0xd7, 0x38, 0x9f, 0x24, 0xff, 0x1e, 0xf1, 0x93, 0xff, 0x07, + 0x00, 0x00, 0xff, 0xff, 0x60, 0x14, 0x96, 0xd6, 0x44, 0x21, 0x00, 0x00, } diff --git a/lib/go/csi/v1/versioned.pb.go b/lib/go/csi/v1/versioned.pb.go new file mode 100644 index 00000000..ee3bd011 --- /dev/null +++ b/lib/go/csi/v1/versioned.pb.go @@ -0,0 +1,176 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: versioned.proto + +package csi + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +type GetSupportedVersionsRequest struct { +} + +func (m *GetSupportedVersionsRequest) Reset() { *m = GetSupportedVersionsRequest{} } +func (m *GetSupportedVersionsRequest) String() string { return proto.CompactTextString(m) } +func (*GetSupportedVersionsRequest) ProtoMessage() {} +func (*GetSupportedVersionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } + +type GetSupportedVersionsResponse struct { + // All the CSI versions that the Plugin supports. This field is + // REQUIRED. + SupportedVersions []*Version `protobuf:"bytes,1,rep,name=supported_versions,json=supportedVersions" json:"supported_versions,omitempty"` +} + +func (m *GetSupportedVersionsResponse) Reset() { *m = GetSupportedVersionsResponse{} } +func (m *GetSupportedVersionsResponse) String() string { return proto.CompactTextString(m) } +func (*GetSupportedVersionsResponse) ProtoMessage() {} +func (*GetSupportedVersionsResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } + +func (m *GetSupportedVersionsResponse) GetSupportedVersions() []*Version { + if m != nil { + return m.SupportedVersions + } + return nil +} + +type Version struct { + // 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{} } +func (m *Version) String() string { return proto.CompactTextString(m) } +func (*Version) ProtoMessage() {} +func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } + +func (m *Version) GetMajor() int32 { + if m != nil { + return m.Major + } + return 0 +} + +func (m *Version) GetMinor() int32 { + if m != nil { + return m.Minor + } + return 0 +} + +func (m *Version) GetPatch() int32 { + if m != nil { + return m.Patch + } + return 0 +} + +func init() { + proto.RegisterType((*GetSupportedVersionsRequest)(nil), "csi.GetSupportedVersionsRequest") + proto.RegisterType((*GetSupportedVersionsResponse)(nil), "csi.GetSupportedVersionsResponse") + proto.RegisterType((*Version)(nil), "csi.Version") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Versioned service + +type VersionedClient interface { + GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) +} + +type versionedClient struct { + cc *grpc.ClientConn +} + +func NewVersionedClient(cc *grpc.ClientConn) VersionedClient { + return &versionedClient{cc} +} + +func (c *versionedClient) GetSupportedVersions(ctx context.Context, in *GetSupportedVersionsRequest, opts ...grpc.CallOption) (*GetSupportedVersionsResponse, error) { + out := new(GetSupportedVersionsResponse) + err := grpc.Invoke(ctx, "/csi.Versioned/GetSupportedVersions", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Versioned service + +type VersionedServer interface { + GetSupportedVersions(context.Context, *GetSupportedVersionsRequest) (*GetSupportedVersionsResponse, error) +} + +func RegisterVersionedServer(s *grpc.Server, srv VersionedServer) { + s.RegisterService(&_Versioned_serviceDesc, srv) +} + +func _Versioned_GetSupportedVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSupportedVersionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VersionedServer).GetSupportedVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.Versioned/GetSupportedVersions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VersionedServer).GetSupportedVersions(ctx, req.(*GetSupportedVersionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Versioned_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.Versioned", + HandlerType: (*VersionedServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSupportedVersions", + Handler: _Versioned_GetSupportedVersions_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "versioned.proto", +} + +func init() { proto.RegisterFile("versioned.proto", fileDescriptor1) } + +var fileDescriptor1 = []byte{ + // 198 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x4b, 0x2d, 0x2a, + 0xce, 0xcc, 0xcf, 0x4b, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x4e, 0x2e, 0xce, + 0x54, 0x92, 0xe5, 0x92, 0x76, 0x4f, 0x2d, 0x09, 0x2e, 0x2d, 0x28, 0xc8, 0x2f, 0x2a, 0x49, 0x4d, + 0x09, 0x83, 0xa8, 0x29, 0x0e, 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x51, 0x8a, 0xe6, 0x92, 0xc1, + 0x2e, 0x5d, 0x5c, 0x90, 0x9f, 0x57, 0x9c, 0x2a, 0x64, 0xcd, 0x25, 0x54, 0x0c, 0x93, 0x8c, 0x87, + 0x5a, 0x50, 0x2c, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0xc4, 0xa3, 0x97, 0x5c, 0x9c, 0xa9, 0x07, + 0xd5, 0x12, 0x24, 0x58, 0x8c, 0x6e, 0x88, 0x92, 0x37, 0x17, 0x3b, 0x94, 0x2d, 0x24, 0xc2, 0xc5, + 0x9a, 0x9b, 0x98, 0x95, 0x5f, 0x24, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x1a, 0x04, 0xe1, 0x80, 0x45, + 0x33, 0xf3, 0xf2, 0x8b, 0x24, 0x98, 0xa0, 0xa2, 0x20, 0x0e, 0x48, 0xb4, 0x20, 0xb1, 0x24, 0x39, + 0x43, 0x82, 0x19, 0x22, 0x0a, 0xe6, 0x18, 0x65, 0x71, 0x71, 0x86, 0xc1, 0x3c, 0x28, 0x14, 0xcb, + 0x25, 0x82, 0xcd, 0xd9, 0x42, 0x0a, 0x60, 0x27, 0xe1, 0xf1, 0xb0, 0x94, 0x22, 0x1e, 0x15, 0x10, + 0x3f, 0x2b, 0x31, 0x24, 0xb1, 0x81, 0x03, 0xd0, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x6b, + 0x55, 0xc8, 0x53, 0x01, 0x00, 0x00, +} diff --git a/spec.md b/spec.md index 9cc087ba..13a1a7b7 100644 --- a/spec.md +++ b/spec.md @@ -240,24 +240,33 @@ Each SP MUST provide: * **Controller Plugin**: A gRPC endpoint serving CSI RPCs that MAY be run anywhere. * In some circumstances a single gRPC endpoint MAY serve all CSI RPCs (see Figure 3 in [Architecture](#architecture)). -```protobuf -syntax = "proto3"; -package csi.v1; - -option go_package = "csi"; -``` +There are four sets of RPCs: -There are three sets of RPCs: - -* **Identity Service**: Both the Node Plugin and the Controller Plugin MUST implement this sets of RPCs. +* **Versioned Service**: Both the Node Plugin and the Controller Plugin MUST implement this set of RPCs. +* **Identity Service**: Both the Node Plugin and the Controller Plugin MUST implement this set of RPCs. * **Controller Service**: The Controller Plugin MUST implement this sets of RPCs. * **Node Service**: The Node Plugin MUST implement this sets of RPCs. ```protobuf -service Identity { +//csi:file=versioned.proto +syntax = "proto3"; +package csi; + +service Versioned { rpc GetSupportedVersions (GetSupportedVersionsRequest) returns (GetSupportedVersionsResponse) {} +} +``` + +```protobuf +//csi:file=csi.proto +syntax = "proto3"; +import "versioned.proto"; +package csi.v1; +option go_package = "csi"; + +service Identity { rpc GetPluginInfo(GetPluginInfoRequest) returns (GetPluginInfoResponse) {} @@ -352,9 +361,9 @@ This string MAY be surfaced by CO to end users. The status `details` MUST be empty. In the future, this spec may require `details` to return a machine-parsable protobuf message if the status `code` is not `OK` to enable CO's to implement smarter error handling and fault resolution. -### Identity Service RPC +### Versioned Service RPC -Identity service RPCs allow a CO to negotiate an API protocol version that MAY be used for subsequent RPCs across all CSI services with respect to a particular CSI plugin. +Versioned service RPCs allow a CO to negotiate an API protocol version that MAY be used for subsequent RPCs across all CSI services with respect to a particular CSI plugin. The general flow of the success case is as follows (protos illustrated in YAML for brevity): 1. CO queries supported versions via Identity RPC. The CO is expected to gracefully handle, in the manner of its own choosing, the case wherein the returned `supported_versions` from the plugin are not supported by the CO. @@ -372,37 +381,6 @@ The general flow of the success case is as follows (protos illustrated in YAML f patch: 0 ``` -2. CO queries metadata via Identity RPC, using a supported API protocol version (as per the reply from the prior step): the requested `version` MUST match an entry from the aforementioned `supported_versions` array. - -``` - # CO --(GetPluginInfo)--> Plugin - request: - version: - major: 0 - minor: 1 - patch: 0 - response: - name: org.foo.whizbang.super-plugin - vendor_version: blue-green - manifest: - baz: qaz -``` - -3. CO queries available capabilities of the plugin. - -``` - # CO --(GetPluginCapabilities)--> Plugin - request: - version: - major: 0 - minor: 2 - patch: 0 - response: - capabilities: - - service: - type: CONTROLLER_SERVICE -``` - #### `GetSupportedVersions` A Plugin SHALL reply with a list of supported CSI versions. @@ -414,6 +392,7 @@ NOTE: Changes to this RPC should be approached very conservatively since the req Future changes to this RPC MUST **guarantee** backwards compatibility. ```protobuf +//csi:file=versioned.proto message GetSupportedVersionsRequest { } @@ -439,9 +418,45 @@ message Version { If the plugin is unable to complete the GetSupportedVersions call successfully, it MUST return a non-ok gRPC code in the gRPC status. +### Identity Service RPC + +The general flow of the success case is as follows (protos illustrated in YAML for brevity): + +1. CO queries metadata via Identity RPC, using a supported API protocol version (as per the reply from the prior step): the requested `version` MUST match an entry from the aforementioned `supported_versions` array. + +``` + # CO --(GetPluginInfo)--> Plugin + request: + version: + major: 0 + minor: 1 + patch: 0 + response: + name: org.foo.whizbang.super-plugin + vendor_version: blue-green + manifest: + baz: qaz +``` + +2. CO queries available capabilities of the plugin. + +``` + # CO --(GetPluginCapabilities)--> Plugin + request: + version: + major: 0 + minor: 2 + patch: 0 + response: + capabilities: + - service: + type: CONTROLLER_SERVICE +``` + #### `GetPluginInfo` ```protobuf +//csi:file=csi.proto message GetPluginInfoRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -475,6 +490,7 @@ This REQUIRED RPC allows the CO to query the supported capabilities of the Plugi All instances of the same version (see `vendor_version` of `GetPluginInfoResponse`) of the Plugin SHALL return the same set of capabilities, regardless of both: (a) where instances are deployed on the cluster as well as; (b) which RPCs an instance is serving. ```protobuf +//csi:file=csi.proto message GetPluginCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -526,6 +542,7 @@ This operation MUST be idempotent. If a volume corresponding to the specified volume `name` already exists and is compatible with the specified `capacity_range`, `volume_capabilities` and `parameters` in the `CreateVolumeRequest`, the Plugin MUST reply `0 OK` with the corresponding `CreateVolumeResponse`. ```protobuf +//csi:file=csi.proto message CreateVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -713,6 +730,7 @@ This operation MUST be idempotent. If a volume corresponding to the specified `volume_id` does not exist or the artifacts associated with the volume do not exist anymore, the Plugin MUST reply `0 OK`. ```protobuf +//csi:file=csi.proto message DeleteVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -766,6 +784,7 @@ If the operation failed or the CO does not know if the operation has failed or n The CO MAY call this RPC for publishing a volume to multiple nodes if the volume has `MULTI_NODE` capability (i.e., `MULTI_NODE_READER_ONLY`, `MULTI_NODE_SINGLE_WRITER` or `MULTI_NODE_MULTI_WRITER`). ```protobuf +//csi:file=csi.proto message ControllerPublishVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -844,6 +863,7 @@ If the volume corresponding to the `volume_id` is not attached to the node corre If this operation failed, or the CO does not know if the operation failed or not, it can choose to call `ControllerUnpublishVolume` again. ```protobuf +//csi:file=csi.proto message ControllerUnpublishVolumeRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -897,6 +917,7 @@ This RPC call SHALL return `supported` only if all the volume capabilities speci This operation MUST be idempotent. ```protobuf +//csi:file=csi.proto message ValidateVolumeCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -943,6 +964,7 @@ A Controller Plugin MUST implement this RPC call if it has `LIST_VOLUMES` capabi The Plugin SHALL return the information about all the volumes that it knows about. ```protobuf +//csi:file=csi.proto message ListVolumesRequest { // The API version assumed by the CO. This field is REQUIRED. Version version = 1; @@ -998,6 +1020,7 @@ A Controller Plugin MUST implement this RPC call if it has `GET_CAPACITY` contro The RPC allows the CO to query the capacity of the storage pool from which the controller provisions volumes. ```protobuf +//csi:file=csi.proto message GetCapacityRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1039,6 +1062,7 @@ The CO SHALL invoke this RPC prior to any other controller service RPC in order A CO MAY invoke this call multiple times with the understanding that a plugin's implementation MAY NOT be trivial and there MAY be overhead incurred by such repeated calls. ```protobuf +//csi:file=csi.proto message ControllerProbeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1064,6 +1088,7 @@ The CO MUST implement the specified error recovery behavior when it encounters t A Controller Plugin MUST implement this RPC call. This RPC allows the CO to check the supported capabilities of controller service provided by the Plugin. ```protobuf +//csi:file=csi.proto message ControllerGetCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1138,6 +1163,7 @@ The following table shows what the Plugin SHOULD return when receiving a second (`Tn`: target path of the n-th `NodePublishVolume`, `Pn`: other arguments of the n-th `NodePublishVolume` except `node_credentials`) ```protobuf +//csi:file=csi.proto message NodePublishVolumeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1219,6 +1245,7 @@ This operation MUST be idempotent. If this RPC failed, or the CO does not know if it failed or not, it can choose to call `NodeUnpublishVolume` again. ```protobuf +//csi:file=csi.proto message NodeUnpublishVolumeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1268,6 +1295,7 @@ 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 +//csi:file=csi.proto message NodeGetIdRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1301,6 +1329,7 @@ The Plugin SHOULD verify if it has everything it needs (binaries, kernel module, The CO MAY use this RPC to probe which machines can support specific Plugins and schedule workloads accordingly. ```protobuf +//csi:file=csi.proto message NodeProbeRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1327,6 +1356,7 @@ A Node Plugin MUST implement this RPC call. This RPC allows the CO to check the supported capabilities of node service provided by the Plugin. ```protobuf +//csi:file=csi.proto message NodeGetCapabilitiesRequest { // The API version assumed by the CO. This is a REQUIRED field. Version version = 1; @@ -1363,9 +1393,9 @@ If the plugin is unable to complete the NodeGetCapabilities call successfully, i ### Connectivity -* A CO SHALL communicate with a Plugin using gRPC to access the `Identity`, and (optionally) the `Controller` and `Node` services. +* A CO SHALL communicate with a Plugin using gRPC to access the mandatory `Identity` and `Versioned` services, as well as (optionally) the `Controller` and `Node` services. * proto3 SHOULD be used with gRPC, as per the [official recommendations](http://www.grpc.io/docs/guides/#protocol-buffer-versions). - * All Plugins SHALL implement the REQUIRED Identity service RPCs. + * All Plugins SHALL implement the REQUIRED Identity and Versioned service RPCs. Support for OPTIONAL RPCs is reported by the `ControllerGetCapabilities` and `NodeGetCapabilities` RPC calls. * The CO SHALL provide the listen-address for the Plugin by way of the `CSI_ENDPOINT` environment variable. Plugin components SHALL create, bind, and listen for RPCs on the specified listen address. diff --git a/versioned.proto b/versioned.proto new file mode 100644 index 00000000..df3a3e2e --- /dev/null +++ b/versioned.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package csi; + +service Versioned { + rpc GetSupportedVersions (GetSupportedVersionsRequest) + returns (GetSupportedVersionsResponse) {} +} +message GetSupportedVersionsRequest { +} + +message GetSupportedVersionsResponse { + // All the CSI versions that the Plugin supports. This field is + // REQUIRED. + repeated Version supported_versions = 1; +} + +message Version { + // 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. +}