diff --git a/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml b/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml index 3cec53e6e..f0944027e 100644 --- a/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml +++ b/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml @@ -12,7 +12,7 @@ metadata: heritage: {{ .Release.Service }} data: config.json: |- -{{ toJson .Values.csiConfig | indent 4 -}} +{{ toJson .Values.csiConfig | indent 4 }} cluster-mapping.json: |- -{{ toJson .Values.csiMapping | indent 4 -}} +{{ toJson .Values.csiMapping | indent 4 }} {{- end }} diff --git a/cmd/cephcsi.go b/cmd/cephcsi.go index 248a50c12..2d1606c2a 100644 --- a/cmd/cephcsi.go +++ b/cmd/cephcsi.go @@ -128,6 +128,9 @@ func init() { flag.BoolVar(&conf.Version, "version", false, "Print cephcsi version information") flag.BoolVar(&conf.EnableProfiling, "enableprofiling", false, "enable go profiling") + // CSI-Addons configuration + flag.StringVar(&conf.CSIAddonsEndpoint, "csi-addons-endpoint", "unix://tmp/csi-addons.sock", "CSI-Addons endpoint") + klog.InitFlags(nil) if err := flag.Set("logtostderr", "true"); err != nil { klog.Exitf("failed to set logtostderr flag: %v", err) diff --git a/go.mod b/go.mod index 8720afc15..628c4ce53 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ceph/go-ceph v0.12.0 github.com/container-storage-interface/spec v1.5.0 github.com/csi-addons/replication-lib-utils v0.2.0 - github.com/csi-addons/spec v0.1.1 + github.com/csi-addons/spec v0.1.2-0.20211123125058-fd968c478af7 github.com/go-sql-driver/mysql v1.5.0 // indirect github.com/golang/protobuf v1.5.2 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 diff --git a/go.sum b/go.sum index 22f3b4cb6..81c17581a 100644 --- a/go.sum +++ b/go.sum @@ -235,8 +235,8 @@ github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ github.com/csi-addons/replication-lib-utils v0.2.0 h1:tGs42wfjkObbBo/98a3uxTFWEJ1dq5PIMqPWtdLd040= github.com/csi-addons/replication-lib-utils v0.2.0/go.mod h1:ROQlEsc2EerVtc/K/C+6Hx8pqaQ9MVy9xFFpyKfI9lc= github.com/csi-addons/spec v0.1.0/go.mod h1:Mwq4iLiUV4s+K1bszcWU6aMsR5KPsbIYzzszJ6+56vI= -github.com/csi-addons/spec v0.1.1 h1:Bm9ZVCQ+nYMs7Y5PK+izkzCeer262W4rjCyGpuqu9C4= -github.com/csi-addons/spec v0.1.1/go.mod h1:Mwq4iLiUV4s+K1bszcWU6aMsR5KPsbIYzzszJ6+56vI= +github.com/csi-addons/spec v0.1.2-0.20211123125058-fd968c478af7 h1:MW8Xb+AXbPndsaZpjsQxZOzB47DB+CNUo8XzrN0zRdQ= +github.com/csi-addons/spec v0.1.2-0.20211123125058-fd968c478af7/go.mod h1:Mwq4iLiUV4s+K1bszcWU6aMsR5KPsbIYzzszJ6+56vI= github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/dave/dst v0.26.2/go.mod h1:UMDJuIRPfyUCC78eFuB+SV/WI8oDeyFDvM/JR6NI3IU= diff --git a/internal/csi-addons/rbd/identity.go b/internal/csi-addons/rbd/identity.go new file mode 100644 index 000000000..6ba39b571 --- /dev/null +++ b/internal/csi-addons/rbd/identity.go @@ -0,0 +1,111 @@ +/* +Copyright 2021 The Ceph-CSI Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package rbd + +import ( + "context" + + "github.com/csi-addons/spec/lib/go/identity" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/wrapperspb" + + "github.com/ceph/ceph-csi/internal/util" +) + +// IdentityServer struct of rbd CSI driver with supported methods of CSI +// identity server spec. +type IdentityServer struct { + *identity.UnimplementedIdentityServer + + config *util.Config +} + +// NewIdentityServer creates a new IdentityServer which handles the Identity +// Service requests from the CSI-Addons specification. +func NewIdentityServer(config *util.Config) *IdentityServer { + return &IdentityServer{ + config: config, + } +} + +func (is *IdentityServer) RegisterService(server grpc.ServiceRegistrar) { + identity.RegisterIdentityServer(server, is) +} + +// GetIdentity returns available capabilities of the rbd driver. +func (is *IdentityServer) GetIdentity( + ctx context.Context, + req *identity.GetIdentityRequest) (*identity.GetIdentityResponse, error) { + // only include Name and VendorVersion, Manifest is optional + res := &identity.GetIdentityResponse{ + Name: is.config.DriverName, + VendorVersion: util.DriverVersion, + } + + return res, nil +} + +// GetCapabilities returns available capabilities of the rbd driver. +func (is *IdentityServer) GetCapabilities( + ctx context.Context, + req *identity.GetCapabilitiesRequest) (*identity.GetCapabilitiesResponse, error) { + // build the list of capabilities, depending on the config + caps := make([]*identity.Capability, 0) + + if is.config.IsControllerServer { + // we're running as a CSI Controller service + caps = append(caps, + &identity.Capability{ + Type: &identity.Capability_Service_{ + Service: &identity.Capability_Service{ + Type: identity.Capability_Service_CONTROLLER_SERVICE, + }, + }, + }) + } + + if is.config.IsNodeServer { + // we're running as a CSI node-plugin service + caps = append(caps, + &identity.Capability{ + Type: &identity.Capability_Service_{ + Service: &identity.Capability_Service{ + Type: identity.Capability_Service_NODE_SERVICE, + }, + }, + }) + } + + res := &identity.GetCapabilitiesResponse{ + Capabilities: caps, + } + + return res, nil +} + +// Probe is called by the CO plugin to validate that the CSI-Addons Node is +// still healthy. +func (is *IdentityServer) Probe( + ctx context.Context, + req *identity.ProbeRequest) (*identity.ProbeResponse, error) { + // there is nothing that would cause a delay in getting ready + res := &identity.ProbeResponse{ + Ready: &wrapperspb.BoolValue{Value: true}, + } + + return res, nil +} diff --git a/internal/csi-addons/server/server.go b/internal/csi-addons/server/server.go new file mode 100644 index 000000000..62fff0feb --- /dev/null +++ b/internal/csi-addons/server/server.go @@ -0,0 +1,131 @@ +/* +Copyright 2021 The Ceph-CSI Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package server + +import ( + "errors" + "fmt" + "net" + "net/url" + "os" + + "google.golang.org/grpc" + + "github.com/ceph/ceph-csi/internal/util/log" +) + +var ErrNoUDS = errors.New("no UNIX domain socket") + +// CSIAddonsService is the interface that is required to be implemented so that +// the CSIAddonsServer can register the service by calling RegisterService(). +type CSIAddonsService interface { + // RegisterService is called by the CSIAddonsServer to add a CSI-Addons + // service that can handle requests. + RegisterService(server grpc.ServiceRegistrar) +} + +// CSIAddonsServer is the gRPC server that listens on an endpoint (UNIX domain +// socket) where the CSI-Addons requests come in. +type CSIAddonsServer struct { + // URL components to listen on the UNIX domain socket + scheme string + path string + + // state of the CSIAddonsServer + server *grpc.Server + services []CSIAddonsService +} + +// NewCSIAddonsServer create a new CSIAddonsServer on the given endpoint. The +// endpoint should be a URL. Only UNIX domain sockets are supported. +func NewCSIAddonsServer(endpoint string) (*CSIAddonsServer, error) { + cas := &CSIAddonsServer{} + + if cas.services == nil { + cas.services = make([]CSIAddonsService, 0) + } + + u, err := url.Parse(endpoint) + if err != nil { + return nil, err + } + + if u.Scheme != "unix" { + return nil, fmt.Errorf("%w: %s", ErrNoUDS, endpoint) + } + + cas.scheme = u.Scheme + cas.path = u.Path + + return cas, nil +} + +// RegisterService takes the CSIAddonsService and registers it with the +// CSIAddonsServer gRPC server. This function should be called before Start, +// where the services are registered on the internal gRPC server. +func (cas *CSIAddonsServer) RegisterService(svc CSIAddonsService) { + cas.services = append(cas.services, svc) +} + +// Start creates the internal gRPC server, and registers the CSIAddonsServices. +// The internal gRPC server is started in it's own go-routine when no error is +// returned. +func (cas *CSIAddonsServer) Start() error { + // create the gRPC server and register services + cas.server = grpc.NewServer() + + for _, svc := range cas.services { + svc.RegisterService(cas.server) + } + + // setup the UNIX domain socket + if e := os.Remove(cas.path); e != nil && !os.IsNotExist(e) { + return fmt.Errorf("failed to remove %q: %w", cas.path, e) + } + + listener, err := net.Listen(cas.scheme, cas.path) + if err != nil { + return fmt.Errorf("failed to listen on %q: %w", cas.path, err) + } + + go cas.serve(listener) + + return nil +} + +// serve starts the actual process of listening for requests on the gRPC +// server. This is a blocking call, so it should get executed in a go-routine. +func (cas *CSIAddonsServer) serve(listener net.Listener) { + log.DefaultLog("listening for CSI-Addons requests on address: %#v", listener.Addr()) + + // start to serve requests + err := cas.server.Serve(listener) + if err != nil && !errors.Is(err, grpc.ErrServerStopped) { + log.FatalLogMsg("failed to setup CSI-Addons server: %v", err) + } + + log.DefaultLog("the CSI-Addons server at %q has been stopped", listener.Addr()) +} + +// Stop can be used to stop the internal gRPC server. +func (cas *CSIAddonsServer) Stop() { + if cas.server == nil { + return + } + + cas.server.GracefulStop() +} diff --git a/internal/csi-addons/server/server_test.go b/internal/csi-addons/server/server_test.go new file mode 100644 index 000000000..3f31070bd --- /dev/null +++ b/internal/csi-addons/server/server_test.go @@ -0,0 +1,52 @@ +/* +Copyright 2021 The Ceph-CSI Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package server + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestNewCSIAddonsServer(t *testing.T) { + t.Parallel() + + t.Run("valid endpoint", func(t *testing.T) { + t.Parallel() + + cas, err := NewCSIAddonsServer("unix:///tmp/csi-addons.sock") + require.NoError(t, err) + require.NotNil(t, cas) + }) + + t.Run("empty endpoint", func(t *testing.T) { + t.Parallel() + + cas, err := NewCSIAddonsServer("") + require.Error(t, err) + assert.Nil(t, cas) + }) + + t.Run("no UDS endpoint", func(t *testing.T) { + t.Parallel() + + cas, err := NewCSIAddonsServer("endpoint at /tmp/...") + require.Error(t, err) + assert.Nil(t, cas) + }) +} diff --git a/internal/rbd/driver.go b/internal/rbd/driver.go index cdb2ba1e4..1dae0a58c 100644 --- a/internal/rbd/driver.go +++ b/internal/rbd/driver.go @@ -17,6 +17,10 @@ limitations under the License. package rbd import ( + "fmt" + + casrbd "github.com/ceph/ceph-csi/internal/csi-addons/rbd" + csiaddons "github.com/ceph/ceph-csi/internal/csi-addons/server" csicommon "github.com/ceph/ceph-csi/internal/csi-common" "github.com/ceph/ceph-csi/internal/journal" "github.com/ceph/ceph-csi/internal/util" @@ -39,6 +43,9 @@ type Driver struct { ns *NodeServer cs *ControllerServer rs *ReplicationServer + + // cas is the CSIAddonsServer where CSI-Addons services are handled + cas *csiaddons.CSIAddonsServer } var ( @@ -102,6 +109,9 @@ func NewNodeServer(d *csicommon.CSIDriver, t string, topology map[string]string) // Run start a non-blocking grpc controller,node and identityserver for // rbd CSI driver which can serve multiple parallel requests. +// +// This also configures and starts a new CSI-Addons service, by calling +// setupCSIAddonsServer(). func (r *Driver) Run(conf *util.Config) { var err error var topology map[string]string @@ -121,6 +131,12 @@ func (r *Driver) Run(conf *util.Config) { volJournal = journal.NewCSIVolumeJournal(CSIInstanceID) snapJournal = journal.NewCSISnapshotJournal(CSIInstanceID) + // configre CSI-Addons server and components + err = r.setupCSIAddonsServer(conf) + if err != nil { + log.FatalLogMsg(err.Error()) + } + // Initialize default library driver r.cd = csicommon.NewCSIDriver(conf.DriverName, util.DriverVersion, conf.NodeID) if r.cd == nil { @@ -198,13 +214,9 @@ func (r *Driver) Run(conf *util.Config) { log.WarningLogMsg("EnableGRPCMetrics is deprecated") go util.StartMetricsServer(conf) } - if conf.EnableProfiling { - if !conf.EnableGRPCMetrics { - go util.StartMetricsServer(conf) - } - log.DebugLogMsg("Registering profiling handler") - go util.EnableProfiling() - } + + r.startProfiling(conf) + if conf.IsNodeServer { go func() { // TODO: move the healer to csi-addons @@ -216,3 +228,39 @@ func (r *Driver) Run(conf *util.Config) { } s.Wait() } + +// setupCSIAddonsServer creates a new CSI-Addons Server on the given (URL) +// endpoint. The supported CSI-Addons operations get registered as their own +// services. +func (r *Driver) setupCSIAddonsServer(conf *util.Config) error { + var err error + + r.cas, err = csiaddons.NewCSIAddonsServer(conf.CSIAddonsEndpoint) + if err != nil { + return fmt.Errorf("failed to create CSI-Addons server: %w", err) + } + + // register services + is := casrbd.NewIdentityServer(conf) + r.cas.RegisterService(is) + + // start the server, this does not block, it runs a new go-routine + err = r.cas.Start() + if err != nil { + return fmt.Errorf("failed to start CSI-Addons server: %w", err) + } + + return nil +} + +// startProfiling checks which profiling options are enabled in the config and +// starts the required profiling services. +func (r *Driver) startProfiling(conf *util.Config) { + if conf.EnableProfiling { + if !conf.EnableGRPCMetrics { + go util.StartMetricsServer(conf) + } + log.DebugLogMsg("Registering profiling handler") + go util.EnableProfiling() + } +} diff --git a/internal/rbd/driver_test.go b/internal/rbd/driver_test.go new file mode 100644 index 000000000..baabb67ae --- /dev/null +++ b/internal/rbd/driver_test.go @@ -0,0 +1,51 @@ +/* +Copyright 2021 The Ceph-CSI Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package rbd + +import ( + "os" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/ceph/ceph-csi/internal/util" +) + +func TestSetupCSIAddonsServer(t *testing.T) { + t.Parallel() + + // endpoint in a temporary directory + tmpDir := t.TempDir() + endpoint := "unix://" + tmpDir + "/csi-addons.sock" + + config := &util.Config{ + CSIAddonsEndpoint: endpoint, + } + + drv := &Driver{} + err := drv.setupCSIAddonsServer(config) + require.NoError(t, err) + require.NotNil(t, drv.cas) + + // verify the socket file has been created + _, err = os.Stat(tmpDir + "/csi-addons.sock") + assert.NoError(t, err) + + // stop the gRPC server + drv.cas.Stop() +} diff --git a/internal/rbd/rbd_journal.go b/internal/rbd/rbd_journal.go index 5e8cc1f7a..0b798c167 100644 --- a/internal/rbd/rbd_journal.go +++ b/internal/rbd/rbd_journal.go @@ -314,7 +314,7 @@ func (rv *rbdVolume) Exists(ctx context.Context, parentVol *rbdVolume) (bool, er } // TODO: check image needs flattening and completed? - err = rv.repairImageID(ctx, j) + err = rv.repairImageID(ctx, j, false) if err != nil { return false, err } @@ -351,7 +351,13 @@ func (rv *rbdVolume) Exists(ctx context.Context, parentVol *rbdVolume) (bool, er // repairImageID checks if rv.ImageID is already available (if so, it was // fetched from the journal), in case it is missing, the imageID is obtained // and stored in the journal. -func (rv *rbdVolume) repairImageID(ctx context.Context, j *journal.Connection) error { +// if the force is set to true, the latest imageID will get added/updated in OMAP. +func (rv *rbdVolume) repairImageID(ctx context.Context, j *journal.Connection, force bool) error { + if force { + // reset the imageID so that we can fetch latest imageID from ceph cluster. + rv.ImageID = "" + } + if rv.ImageID != "" { return nil } diff --git a/internal/rbd/replicationcontrollerserver.go b/internal/rbd/replicationcontrollerserver.go index 7d6659abc..29f4bc3c4 100644 --- a/internal/rbd/replicationcontrollerserver.go +++ b/internal/rbd/replicationcontrollerserver.go @@ -756,6 +756,11 @@ func (rs *ReplicationServer) ResyncVolume(ctx context.Context, return nil, status.Error(codes.Internal, err.Error()) } + err = repairResyncedImageID(ctx, rbdVol, ready) + if err != nil { + return nil, status.Errorf(codes.Internal, "failed to resync Image ID: %s", err.Error()) + } + resp := &replication.ResyncVolumeResponse{ Ready: ready, } @@ -798,3 +803,23 @@ func resyncRequired(localStatus librbd.SiteMirrorImageStatus) bool { return false } + +// repairResyncedImageID updates the existing image ID with new one. +func repairResyncedImageID(ctx context.Context, rv *rbdVolume, ready bool) error { + // During resync operation the local image will get deleted and a new + // image is recreated by the rbd mirroring. The new image will have a + // new image ID. Once resync is completed update the image ID in the OMAP + // to get the image removed from the trash during DeleteVolume. + + // if the image is not completely resynced skip repairing image ID. + if !ready { + return nil + } + j, err := volJournal.Connect(rv.Monitors, rv.RadosNamespace, rv.conn.Creds) + if err != nil { + return err + } + defer j.Destroy() + // reset the image ID which is stored in the existing OMAP + return rv.repairImageID(ctx, j, true) +} diff --git a/internal/util/util.go b/internal/util/util.go index 18550c6bc..33dd04872 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -118,6 +118,9 @@ type Config struct { // snapshots allowed on rbd image without flattening, once the soft limit is // reached cephcsi will start flattening the older rbd images. MinSnapshotsOnImage uint + + // CSI-Addons endpoint + CSIAddonsEndpoint string } // ValidateDriverName validates the driver name. diff --git a/scripts/minikube.sh b/scripts/minikube.sh index 4a7ca00c6..be7295478 100755 --- a/scripts/minikube.sh +++ b/scripts/minikube.sh @@ -179,6 +179,7 @@ EXTRA_CONFIG="${EXTRA_CONFIG} --extra-config=kubelet.resolv-conf=${RESOLV_CONF}" #extra Rook configuration ROOK_BLOCK_POOL_NAME=${ROOK_BLOCK_POOL_NAME:-"newrbdpool"} +ROOK_BLOCK_EC_POOL_NAME=${ROOK_BLOCK_EC_POOL_NAME:-"ec-pool"} # enable read-only anonymous access to kubelet metrics EXTRA_CONFIG="${EXTRA_CONFIG} --extra-config=kubelet.read-only-port=10255" @@ -241,6 +242,16 @@ delete-block-pool) DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" "$DIR"/rook.sh delete-block-pool ;; +create-block-ec-pool) + echo "creating a erasure coded block pool named $ROOK_BLOCK_EC_POOL_NAME" + DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" + "$DIR"/rook.sh create-block-ec-pool + ;; +delete-block-ec-pool) + echo "deleting erasure coded block pool named $ROOK_BLOCK_EC_POOL_NAME" + DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" + "$DIR"/rook.sh delete-block-ec-pool + ;; cleanup-snapshotter) echo "cleanup snapshot controller" DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" @@ -281,6 +292,8 @@ Available Commands: install-snapshotter Install snapshot controller create-block-pool Creates a rook block pool (named $ROOK_BLOCK_POOL_NAME) delete-block-pool Deletes a rook block pool (named $ROOK_BLOCK_POOL_NAME) + create-block-ec-pool Creates a rook erasure coded block pool (named $ROOK_BLOCK_EC_POOL_NAME) + delete-block-ec-pool Creates a rook erasure coded block pool (named $ROOK_BLOCK_EC_POOL_NAME) cleanup-snapshotter Cleanup snapshot controller teardown-rook Teardown rook from minikube cephcsi Copy built docker images to kubernetes cluster diff --git a/scripts/rook.sh b/scripts/rook.sh index 3a460d6ab..1b0397aa1 100755 --- a/scripts/rook.sh +++ b/scripts/rook.sh @@ -234,6 +234,8 @@ Available Commands: teardown Teardown a rook create-block-pool Create a rook block pool delete-block-pool Delete a rook block pool + create-block-ec-pool Creates a rook erasure coded block pool + delete-block-ec-pool Deletes a rook erasure coded block pool " >&2 ;; esac diff --git a/vendor/github.com/csi-addons/spec/lib/go/identity/identity.pb.go b/vendor/github.com/csi-addons/spec/lib/go/identity/identity.pb.go new file mode 100644 index 000000000..1add70b09 --- /dev/null +++ b/vendor/github.com/csi-addons/spec/lib/go/identity/identity.pb.go @@ -0,0 +1,760 @@ +// Code generated by make; DO NOT EDIT. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.14.0 +// source: identity/identity.proto + +package identity + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// Type describes a CSI Service that CSI-drivers can support. +type Capability_Service_Type int32 + +const ( + // UNKNOWN indicates that the CSI-driver does not neither provide the CSI + // ControllerService or CSI NodeService. The CSI-Addons CO plugin will + // most likely ignore the node providing this Identity Service. + Capability_Service_UNKNOWN Capability_Service_Type = 0 + // CONTROLLER_SERVICE indicates that the CSI-driver provides RPCs for the + // CSI ControllerService. + // The presence of this capability determines whether the CSI-Addons CO + // plugin can invoke RPCs that require access to the storage system, + // similar to the CSI Controller (provisioner). + Capability_Service_CONTROLLER_SERVICE Capability_Service_Type = 1 + // NODE_SERVICE indicates that the CSI-driver provides RPCs for the CSI + // NodeService. + // The presence of this capability determines whether the CSI-Addons CO + // plugin can invoke RPCs that require a volume to be staged/attached to + // the node. + Capability_Service_NODE_SERVICE Capability_Service_Type = 2 +) + +// Enum value maps for Capability_Service_Type. +var ( + Capability_Service_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CONTROLLER_SERVICE", + 2: "NODE_SERVICE", + } + Capability_Service_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CONTROLLER_SERVICE": 1, + "NODE_SERVICE": 2, + } +) + +func (x Capability_Service_Type) Enum() *Capability_Service_Type { + p := new(Capability_Service_Type) + *p = x + return p +} + +func (x Capability_Service_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Capability_Service_Type) Descriptor() protoreflect.EnumDescriptor { + return file_identity_identity_proto_enumTypes[0].Descriptor() +} + +func (Capability_Service_Type) Type() protoreflect.EnumType { + return &file_identity_identity_proto_enumTypes[0] +} + +func (x Capability_Service_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Capability_Service_Type.Descriptor instead. +func (Capability_Service_Type) EnumDescriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{4, 0, 0} +} + +// GetIdentityRequest is sent by the CSI-Addons CO plugin to obtain the +// drivername, version and optional details from the CSI-driver. +type GetIdentityRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetIdentityRequest) Reset() { + *x = GetIdentityRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetIdentityRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIdentityRequest) ProtoMessage() {} + +func (x *GetIdentityRequest) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetIdentityRequest.ProtoReflect.Descriptor instead. +func (*GetIdentityRequest) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{0} +} + +// GetIdentityResponse is returned by the CSI-driver as a response to a +// GetIdentityRequest. +type GetIdentityResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name MUST follow domain name notation format + // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD include + // the CSI-drivers's host company name and the CSI-driver name, to minimize + // the possibility of collisions. It MUST be 63 characters or less, beginning + // and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), + // dots (.), and alphanumerics between. This field is REQUIRED. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is REQUIRED. Value of this field is opaque to the CO. + VendorVersion string `protobuf:"bytes,2,opt,name=vendor_version,json=vendorVersion,proto3" json:"vendor_version,omitempty"` + // This field is OPTIONAL. Values are opaque to the CO. + Manifest map[string]string `protobuf:"bytes,3,rep,name=manifest,proto3" json:"manifest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *GetIdentityResponse) Reset() { + *x = GetIdentityResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetIdentityResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIdentityResponse) ProtoMessage() {} + +func (x *GetIdentityResponse) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetIdentityResponse.ProtoReflect.Descriptor instead. +func (*GetIdentityResponse) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{1} +} + +func (x *GetIdentityResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetIdentityResponse) GetVendorVersion() string { + if x != nil { + return x.VendorVersion + } + return "" +} + +func (x *GetIdentityResponse) GetManifest() map[string]string { + if x != nil { + return x.Manifest + } + return nil +} + +// GetCapabilitiesRequest is sent by the CSI-Addons CO plugin to detect the +// features that a CSI-driver supports. +type GetCapabilitiesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetCapabilitiesRequest) Reset() { + *x = GetCapabilitiesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCapabilitiesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCapabilitiesRequest) ProtoMessage() {} + +func (x *GetCapabilitiesRequest) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCapabilitiesRequest.ProtoReflect.Descriptor instead. +func (*GetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{2} +} + +// GetCapabilitiesResponse is returned by the CSI-driver as a response to a +// GetCapabilitiesRequest. +type GetCapabilitiesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*Capability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` +} + +func (x *GetCapabilitiesResponse) Reset() { + *x = GetCapabilitiesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCapabilitiesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCapabilitiesResponse) ProtoMessage() {} + +func (x *GetCapabilitiesResponse) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCapabilitiesResponse.ProtoReflect.Descriptor instead. +func (*GetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{3} +} + +func (x *GetCapabilitiesResponse) GetCapabilities() []*Capability { + if x != nil { + return x.Capabilities + } + return nil +} + +// Specifies one or more capabilities of the CSI-driver. +type Capability struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Type: + // *Capability_Service_ + Type isCapability_Type `protobuf_oneof:"type"` +} + +func (x *Capability) Reset() { + *x = Capability{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Capability) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Capability) ProtoMessage() {} + +func (x *Capability) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Capability.ProtoReflect.Descriptor instead. +func (*Capability) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{4} +} + +func (m *Capability) GetType() isCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *Capability) GetService() *Capability_Service { + if x, ok := x.GetType().(*Capability_Service_); ok { + return x.Service + } + return nil +} + +type isCapability_Type interface { + isCapability_Type() +} + +type Capability_Service_ struct { + // Service or operation that the CSI-driver supports. + Service *Capability_Service `protobuf:"bytes,1,opt,name=service,proto3,oneof"` +} + +func (*Capability_Service_) isCapability_Type() {} + +// ProbeRequest is sent to the CSI-driver to confirm that it can respond to +// requests from the CSI-Addons CO plugin. +type ProbeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ProbeRequest) Reset() { + *x = ProbeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProbeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProbeRequest) ProtoMessage() {} + +func (x *ProbeRequest) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProbeRequest.ProtoReflect.Descriptor instead. +func (*ProbeRequest) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{5} +} + +// ProbeResponse is returned by the CSI-driver as a response to a ProbeRequest. +type ProbeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Readiness allows a CSI-driver to report its initialization status back + // to the CSI-Addons CO plugin. Initialization for some CSI-drivers MAY be + // time consuming and it is important for a CO to distinguish between the + // following cases: + // + // 1) The CSI-driver is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2) The CSI-driver is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the CSI-driver's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3) The CSI-driver has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the CSI-driver is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the CSI-driver's reported + // capabilities). + Ready *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=ready,proto3" json:"ready,omitempty"` +} + +func (x *ProbeResponse) Reset() { + *x = ProbeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProbeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProbeResponse) ProtoMessage() {} + +func (x *ProbeResponse) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProbeResponse.ProtoReflect.Descriptor instead. +func (*ProbeResponse) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{6} +} + +func (x *ProbeResponse) GetReady() *wrapperspb.BoolValue { + if x != nil { + return x.Ready + } + return nil +} + +// Service contains the type of CSI Service that the CSI-driver provides. +type Capability_Service struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // type contains the Type of CSI Service that the CSI-driver supports. + Type Capability_Service_Type `protobuf:"varint,1,opt,name=type,proto3,enum=identity.Capability_Service_Type" json:"type,omitempty"` +} + +func (x *Capability_Service) Reset() { + *x = Capability_Service{} + if protoimpl.UnsafeEnabled { + mi := &file_identity_identity_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Capability_Service) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Capability_Service) ProtoMessage() {} + +func (x *Capability_Service) ProtoReflect() protoreflect.Message { + mi := &file_identity_identity_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Capability_Service.ProtoReflect.Descriptor instead. +func (*Capability_Service) Descriptor() ([]byte, []int) { + return file_identity_identity_proto_rawDescGZIP(), []int{4, 0} +} + +func (x *Capability_Service) GetType() Capability_Service_Type { + if x != nil { + return x.Type + } + return Capability_Service_UNKNOWN +} + +var File_identity_identity_proto protoreflect.FileDescriptor + +var file_identity_identity_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, + 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x08, + 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, + 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x7f, 0x0a, 0x07, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x43, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x41, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x32, 0xee, 0x01, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x1c, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x05, 0x50, + 0x72, 0x6f, 0x62, 0x65, 0x12, 0x16, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, + 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x3b, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_identity_identity_proto_rawDescOnce sync.Once + file_identity_identity_proto_rawDescData = file_identity_identity_proto_rawDesc +) + +func file_identity_identity_proto_rawDescGZIP() []byte { + file_identity_identity_proto_rawDescOnce.Do(func() { + file_identity_identity_proto_rawDescData = protoimpl.X.CompressGZIP(file_identity_identity_proto_rawDescData) + }) + return file_identity_identity_proto_rawDescData +} + +var file_identity_identity_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_identity_identity_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_identity_identity_proto_goTypes = []interface{}{ + (Capability_Service_Type)(0), // 0: identity.Capability.Service.Type + (*GetIdentityRequest)(nil), // 1: identity.GetIdentityRequest + (*GetIdentityResponse)(nil), // 2: identity.GetIdentityResponse + (*GetCapabilitiesRequest)(nil), // 3: identity.GetCapabilitiesRequest + (*GetCapabilitiesResponse)(nil), // 4: identity.GetCapabilitiesResponse + (*Capability)(nil), // 5: identity.Capability + (*ProbeRequest)(nil), // 6: identity.ProbeRequest + (*ProbeResponse)(nil), // 7: identity.ProbeResponse + nil, // 8: identity.GetIdentityResponse.ManifestEntry + (*Capability_Service)(nil), // 9: identity.Capability.Service + (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue +} +var file_identity_identity_proto_depIdxs = []int32{ + 8, // 0: identity.GetIdentityResponse.manifest:type_name -> identity.GetIdentityResponse.ManifestEntry + 5, // 1: identity.GetCapabilitiesResponse.capabilities:type_name -> identity.Capability + 9, // 2: identity.Capability.service:type_name -> identity.Capability.Service + 10, // 3: identity.ProbeResponse.ready:type_name -> google.protobuf.BoolValue + 0, // 4: identity.Capability.Service.type:type_name -> identity.Capability.Service.Type + 1, // 5: identity.Identity.GetIdentity:input_type -> identity.GetIdentityRequest + 3, // 6: identity.Identity.GetCapabilities:input_type -> identity.GetCapabilitiesRequest + 6, // 7: identity.Identity.Probe:input_type -> identity.ProbeRequest + 2, // 8: identity.Identity.GetIdentity:output_type -> identity.GetIdentityResponse + 4, // 9: identity.Identity.GetCapabilities:output_type -> identity.GetCapabilitiesResponse + 7, // 10: identity.Identity.Probe:output_type -> identity.ProbeResponse + 8, // [8:11] is the sub-list for method output_type + 5, // [5:8] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_identity_identity_proto_init() } +func file_identity_identity_proto_init() { + if File_identity_identity_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_identity_identity_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetIdentityRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetIdentityResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCapabilitiesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCapabilitiesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Capability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProbeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProbeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_identity_identity_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Capability_Service); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_identity_identity_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*Capability_Service_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_identity_identity_proto_rawDesc, + NumEnums: 1, + NumMessages: 9, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_identity_identity_proto_goTypes, + DependencyIndexes: file_identity_identity_proto_depIdxs, + EnumInfos: file_identity_identity_proto_enumTypes, + MessageInfos: file_identity_identity_proto_msgTypes, + }.Build() + File_identity_identity_proto = out.File + file_identity_identity_proto_rawDesc = nil + file_identity_identity_proto_goTypes = nil + file_identity_identity_proto_depIdxs = nil +} diff --git a/vendor/github.com/csi-addons/spec/lib/go/identity/identity_grpc.pb.go b/vendor/github.com/csi-addons/spec/lib/go/identity/identity_grpc.pb.go new file mode 100644 index 000000000..6145ba974 --- /dev/null +++ b/vendor/github.com/csi-addons/spec/lib/go/identity/identity_grpc.pb.go @@ -0,0 +1,181 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package identity + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// IdentityClient is the client API for Identity service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type IdentityClient interface { + // GetIdentity returns basic information about the side-car and CSI-driver. + GetIdentity(ctx context.Context, in *GetIdentityRequest, opts ...grpc.CallOption) (*GetIdentityResponse, error) + // GetCapabilities returns the capabilities that the CSI-driver supports. + GetCapabilities(ctx context.Context, in *GetCapabilitiesRequest, opts ...grpc.CallOption) (*GetCapabilitiesResponse, error) + // Probe is called by the CO plugin to validate that the CSI-Addons Node is + // still healthy. + Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) +} + +type identityClient struct { + cc grpc.ClientConnInterface +} + +func NewIdentityClient(cc grpc.ClientConnInterface) IdentityClient { + return &identityClient{cc} +} + +func (c *identityClient) GetIdentity(ctx context.Context, in *GetIdentityRequest, opts ...grpc.CallOption) (*GetIdentityResponse, error) { + out := new(GetIdentityResponse) + err := c.cc.Invoke(ctx, "/identity.Identity/GetIdentity", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) GetCapabilities(ctx context.Context, in *GetCapabilitiesRequest, opts ...grpc.CallOption) (*GetCapabilitiesResponse, error) { + out := new(GetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/identity.Identity/GetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) { + out := new(ProbeResponse) + err := c.cc.Invoke(ctx, "/identity.Identity/Probe", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IdentityServer is the server API for Identity service. +// All implementations must embed UnimplementedIdentityServer +// for forward compatibility +type IdentityServer interface { + // GetIdentity returns basic information about the side-car and CSI-driver. + GetIdentity(context.Context, *GetIdentityRequest) (*GetIdentityResponse, error) + // GetCapabilities returns the capabilities that the CSI-driver supports. + GetCapabilities(context.Context, *GetCapabilitiesRequest) (*GetCapabilitiesResponse, error) + // Probe is called by the CO plugin to validate that the CSI-Addons Node is + // still healthy. + Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) + mustEmbedUnimplementedIdentityServer() +} + +// UnimplementedIdentityServer must be embedded to have forward compatible implementations. +type UnimplementedIdentityServer struct { +} + +func (UnimplementedIdentityServer) GetIdentity(context.Context, *GetIdentityRequest) (*GetIdentityResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetIdentity not implemented") +} +func (UnimplementedIdentityServer) GetCapabilities(context.Context, *GetCapabilitiesRequest) (*GetCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCapabilities not implemented") +} +func (UnimplementedIdentityServer) Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Probe not implemented") +} +func (UnimplementedIdentityServer) mustEmbedUnimplementedIdentityServer() {} + +// UnsafeIdentityServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IdentityServer will +// result in compilation errors. +type UnsafeIdentityServer interface { + mustEmbedUnimplementedIdentityServer() +} + +func RegisterIdentityServer(s grpc.ServiceRegistrar, srv IdentityServer) { + s.RegisterService(&Identity_ServiceDesc, srv) +} + +func _Identity_GetIdentity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIdentityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetIdentity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/identity.Identity/GetIdentity", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetIdentity(ctx, req.(*GetIdentityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_GetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/identity.Identity/GetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetCapabilities(ctx, req.(*GetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProbeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).Probe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/identity.Identity/Probe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).Probe(ctx, req.(*ProbeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Identity_ServiceDesc is the grpc.ServiceDesc for Identity service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Identity_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "identity.Identity", + HandlerType: (*IdentityServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetIdentity", + Handler: _Identity_GetIdentity_Handler, + }, + { + MethodName: "GetCapabilities", + Handler: _Identity_GetCapabilities_Handler, + }, + { + MethodName: "Probe", + Handler: _Identity_Probe_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "identity/identity.proto", +} diff --git a/vendor/github.com/csi-addons/spec/lib/go/replication/replication.pb.go b/vendor/github.com/csi-addons/spec/lib/go/replication/replication.pb.go index fc7bcf93f..b7d0db181 100644 --- a/vendor/github.com/csi-addons/spec/lib/go/replication/replication.pb.go +++ b/vendor/github.com/csi-addons/spec/lib/go/replication/replication.pb.go @@ -1,8 +1,10 @@ +// Code generated by make; DO NOT EDIT. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.14.0 -// source: replication.proto +// source: replication/replication.proto package replication @@ -56,7 +58,7 @@ type EnableVolumeReplicationRequest struct { func (x *EnableVolumeReplicationRequest) Reset() { *x = EnableVolumeReplicationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[0] + mi := &file_replication_replication_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69,7 +71,7 @@ func (x *EnableVolumeReplicationRequest) String() string { func (*EnableVolumeReplicationRequest) ProtoMessage() {} func (x *EnableVolumeReplicationRequest) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[0] + mi := &file_replication_replication_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82,7 +84,7 @@ func (x *EnableVolumeReplicationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EnableVolumeReplicationRequest.ProtoReflect.Descriptor instead. func (*EnableVolumeReplicationRequest) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{0} + return file_replication_replication_proto_rawDescGZIP(), []int{0} } func (x *EnableVolumeReplicationRequest) GetVolumeId() string { @@ -124,7 +126,7 @@ type EnableVolumeReplicationResponse struct { func (x *EnableVolumeReplicationResponse) Reset() { *x = EnableVolumeReplicationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[1] + mi := &file_replication_replication_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -137,7 +139,7 @@ func (x *EnableVolumeReplicationResponse) String() string { func (*EnableVolumeReplicationResponse) ProtoMessage() {} func (x *EnableVolumeReplicationResponse) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[1] + mi := &file_replication_replication_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -150,7 +152,7 @@ func (x *EnableVolumeReplicationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EnableVolumeReplicationResponse.ProtoReflect.Descriptor instead. func (*EnableVolumeReplicationResponse) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{1} + return file_replication_replication_proto_rawDescGZIP(), []int{1} } // DisableVolumeReplicationRequest holds the required information to disable @@ -183,7 +185,7 @@ type DisableVolumeReplicationRequest struct { func (x *DisableVolumeReplicationRequest) Reset() { *x = DisableVolumeReplicationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[2] + mi := &file_replication_replication_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -196,7 +198,7 @@ func (x *DisableVolumeReplicationRequest) String() string { func (*DisableVolumeReplicationRequest) ProtoMessage() {} func (x *DisableVolumeReplicationRequest) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[2] + mi := &file_replication_replication_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -209,7 +211,7 @@ func (x *DisableVolumeReplicationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DisableVolumeReplicationRequest.ProtoReflect.Descriptor instead. func (*DisableVolumeReplicationRequest) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{2} + return file_replication_replication_proto_rawDescGZIP(), []int{2} } func (x *DisableVolumeReplicationRequest) GetVolumeId() string { @@ -251,7 +253,7 @@ type DisableVolumeReplicationResponse struct { func (x *DisableVolumeReplicationResponse) Reset() { *x = DisableVolumeReplicationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[3] + mi := &file_replication_replication_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -264,7 +266,7 @@ func (x *DisableVolumeReplicationResponse) String() string { func (*DisableVolumeReplicationResponse) ProtoMessage() {} func (x *DisableVolumeReplicationResponse) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[3] + mi := &file_replication_replication_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -277,7 +279,7 @@ func (x *DisableVolumeReplicationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DisableVolumeReplicationResponse.ProtoReflect.Descriptor instead. func (*DisableVolumeReplicationResponse) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{3} + return file_replication_replication_proto_rawDescGZIP(), []int{3} } // PromoteVolumeRequest holds the required information to promote volume as a @@ -313,7 +315,7 @@ type PromoteVolumeRequest struct { func (x *PromoteVolumeRequest) Reset() { *x = PromoteVolumeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[4] + mi := &file_replication_replication_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -326,7 +328,7 @@ func (x *PromoteVolumeRequest) String() string { func (*PromoteVolumeRequest) ProtoMessage() {} func (x *PromoteVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[4] + mi := &file_replication_replication_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -339,7 +341,7 @@ func (x *PromoteVolumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PromoteVolumeRequest.ProtoReflect.Descriptor instead. func (*PromoteVolumeRequest) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{4} + return file_replication_replication_proto_rawDescGZIP(), []int{4} } func (x *PromoteVolumeRequest) GetVolumeId() string { @@ -388,7 +390,7 @@ type PromoteVolumeResponse struct { func (x *PromoteVolumeResponse) Reset() { *x = PromoteVolumeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[5] + mi := &file_replication_replication_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -401,7 +403,7 @@ func (x *PromoteVolumeResponse) String() string { func (*PromoteVolumeResponse) ProtoMessage() {} func (x *PromoteVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[5] + mi := &file_replication_replication_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -414,7 +416,7 @@ func (x *PromoteVolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PromoteVolumeResponse.ProtoReflect.Descriptor instead. func (*PromoteVolumeResponse) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{5} + return file_replication_replication_proto_rawDescGZIP(), []int{5} } // DemoteVolumeRequest holds the required information to demote volume on local @@ -450,7 +452,7 @@ type DemoteVolumeRequest struct { func (x *DemoteVolumeRequest) Reset() { *x = DemoteVolumeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[6] + mi := &file_replication_replication_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -463,7 +465,7 @@ func (x *DemoteVolumeRequest) String() string { func (*DemoteVolumeRequest) ProtoMessage() {} func (x *DemoteVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[6] + mi := &file_replication_replication_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -476,7 +478,7 @@ func (x *DemoteVolumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DemoteVolumeRequest.ProtoReflect.Descriptor instead. func (*DemoteVolumeRequest) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{6} + return file_replication_replication_proto_rawDescGZIP(), []int{6} } func (x *DemoteVolumeRequest) GetVolumeId() string { @@ -525,7 +527,7 @@ type DemoteVolumeResponse struct { func (x *DemoteVolumeResponse) Reset() { *x = DemoteVolumeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[7] + mi := &file_replication_replication_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -538,7 +540,7 @@ func (x *DemoteVolumeResponse) String() string { func (*DemoteVolumeResponse) ProtoMessage() {} func (x *DemoteVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[7] + mi := &file_replication_replication_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -551,7 +553,7 @@ func (x *DemoteVolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DemoteVolumeResponse.ProtoReflect.Descriptor instead. func (*DemoteVolumeResponse) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{7} + return file_replication_replication_proto_rawDescGZIP(), []int{7} } // ResyncVolumeRequest holds the required information to resync volume. @@ -586,7 +588,7 @@ type ResyncVolumeRequest struct { func (x *ResyncVolumeRequest) Reset() { *x = ResyncVolumeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[8] + mi := &file_replication_replication_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -599,7 +601,7 @@ func (x *ResyncVolumeRequest) String() string { func (*ResyncVolumeRequest) ProtoMessage() {} func (x *ResyncVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[8] + mi := &file_replication_replication_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -612,7 +614,7 @@ func (x *ResyncVolumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResyncVolumeRequest.ProtoReflect.Descriptor instead. func (*ResyncVolumeRequest) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{8} + return file_replication_replication_proto_rawDescGZIP(), []int{8} } func (x *ResyncVolumeRequest) GetVolumeId() string { @@ -666,7 +668,7 @@ type ResyncVolumeResponse struct { func (x *ResyncVolumeResponse) Reset() { *x = ResyncVolumeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_replication_proto_msgTypes[9] + mi := &file_replication_replication_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -679,7 +681,7 @@ func (x *ResyncVolumeResponse) String() string { func (*ResyncVolumeResponse) ProtoMessage() {} func (x *ResyncVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_replication_proto_msgTypes[9] + mi := &file_replication_replication_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -692,7 +694,7 @@ func (x *ResyncVolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ResyncVolumeResponse.ProtoReflect.Descriptor instead. func (*ResyncVolumeResponse) Descriptor() ([]byte, []int) { - return file_replication_proto_rawDescGZIP(), []int{9} + return file_replication_replication_proto_rawDescGZIP(), []int{9} } func (x *ResyncVolumeResponse) GetReady() bool { @@ -702,14 +704,14 @@ func (x *ResyncVolumeResponse) GetReady() bool { return false } -var file_replication_proto_extTypes = []protoimpl.ExtensionInfo{ +var file_replication_replication_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*bool)(nil), Field: 1099, Name: "replication.replication_secret", Tag: "varint,1099,opt,name=replication_secret", - Filename: "replication.proto", + Filename: "replication/replication.proto", }, { ExtendedType: (*descriptorpb.FieldOptions)(nil), @@ -717,7 +719,7 @@ var file_replication_proto_extTypes = []protoimpl.ExtensionInfo{ Field: 1100, Name: "replication.alpha_field", Tag: "varint,1100,opt,name=alpha_field", - Filename: "replication.proto", + Filename: "replication/replication.proto", }, } @@ -727,94 +729,39 @@ var ( // and MUST be treated as such (e.g. not logged). // // optional bool replication_secret = 1099; - E_ReplicationSecret = &file_replication_proto_extTypes[0] + E_ReplicationSecret = &file_replication_replication_proto_extTypes[0] // Indicates that this field is OPTIONAL and part of an experimental // API that may be deprecated and eventually removed between minor // releases. // // optional bool alpha_field = 1100; - E_AlphaField = &file_replication_proto_extTypes[1] + E_AlphaField = &file_replication_replication_proto_extTypes[1] ) -var File_replication_proto protoreflect.FileDescriptor +var File_replication_replication_proto protoreflect.FileDescriptor -var file_replication_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x9a, 0x03, 0x0a, 0x1e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, - 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5b, - 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x07, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x21, 0x0a, 0x1f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x9d, 0x03, 0x0a, 0x1f, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, - 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x5c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, +var file_replication_replication_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x20, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9a, + 0x03, 0x0a, 0x1e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x58, 0x0a, - 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x22, 0x0a, 0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, + 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, + 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x51, - 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x12, 0x4d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, @@ -824,123 +771,178 @@ var file_replication_proto_rawDesc = []byte{ 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x21, 0x0a, 0x1f, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, + 0x03, 0x0a, 0x1f, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x07, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x22, + 0x0a, 0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x92, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, - 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, - 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, + 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, + 0xd8, 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x8f, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, - 0x03, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, - 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x03, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x44, 0x01, 0x52, 0x0d, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x03, 0xd8, 0x44, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x32, 0x87, - 0x04, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x76, 0x0a, - 0x17, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x58, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x12, 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x12, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x3a, 0x4d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xcb, 0x08, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x3f, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xcc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x3b, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2c, 0x0a, 0x14, + 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x32, 0x87, 0x04, 0x0a, 0x0a, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x76, 0x0a, 0x17, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x79, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0d, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x21, 0x2e, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x0c, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x20, 0x2e, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x79, + 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, + 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x3a, 0x4d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xcb, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x3a, 0x3f, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0xcc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x3b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_replication_proto_rawDescOnce sync.Once - file_replication_proto_rawDescData = file_replication_proto_rawDesc + file_replication_replication_proto_rawDescOnce sync.Once + file_replication_replication_proto_rawDescData = file_replication_replication_proto_rawDesc ) -func file_replication_proto_rawDescGZIP() []byte { - file_replication_proto_rawDescOnce.Do(func() { - file_replication_proto_rawDescData = protoimpl.X.CompressGZIP(file_replication_proto_rawDescData) +func file_replication_replication_proto_rawDescGZIP() []byte { + file_replication_replication_proto_rawDescOnce.Do(func() { + file_replication_replication_proto_rawDescData = protoimpl.X.CompressGZIP(file_replication_replication_proto_rawDescData) }) - return file_replication_proto_rawDescData + return file_replication_replication_proto_rawDescData } -var file_replication_proto_msgTypes = make([]protoimpl.MessageInfo, 20) -var file_replication_proto_goTypes = []interface{}{ +var file_replication_replication_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_replication_replication_proto_goTypes = []interface{}{ (*EnableVolumeReplicationRequest)(nil), // 0: replication.EnableVolumeReplicationRequest (*EnableVolumeReplicationResponse)(nil), // 1: replication.EnableVolumeReplicationResponse (*DisableVolumeReplicationRequest)(nil), // 2: replication.DisableVolumeReplicationRequest @@ -963,7 +965,7 @@ var file_replication_proto_goTypes = []interface{}{ nil, // 19: replication.ResyncVolumeRequest.SecretsEntry (*descriptorpb.FieldOptions)(nil), // 20: google.protobuf.FieldOptions } -var file_replication_proto_depIdxs = []int32{ +var file_replication_replication_proto_depIdxs = []int32{ 10, // 0: replication.EnableVolumeReplicationRequest.parameters:type_name -> replication.EnableVolumeReplicationRequest.ParametersEntry 11, // 1: replication.EnableVolumeReplicationRequest.secrets:type_name -> replication.EnableVolumeReplicationRequest.SecretsEntry 12, // 2: replication.DisableVolumeReplicationRequest.parameters:type_name -> replication.DisableVolumeReplicationRequest.ParametersEntry @@ -993,13 +995,13 @@ var file_replication_proto_depIdxs = []int32{ 0, // [0:10] is the sub-list for field type_name } -func init() { file_replication_proto_init() } -func file_replication_proto_init() { - if File_replication_proto != nil { +func init() { file_replication_replication_proto_init() } +func file_replication_replication_proto_init() { + if File_replication_replication_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_replication_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnableVolumeReplicationRequest); i { case 0: return &v.state @@ -1011,7 +1013,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnableVolumeReplicationResponse); i { case 0: return &v.state @@ -1023,7 +1025,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisableVolumeReplicationRequest); i { case 0: return &v.state @@ -1035,7 +1037,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisableVolumeReplicationResponse); i { case 0: return &v.state @@ -1047,7 +1049,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PromoteVolumeRequest); i { case 0: return &v.state @@ -1059,7 +1061,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PromoteVolumeResponse); i { case 0: return &v.state @@ -1071,7 +1073,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DemoteVolumeRequest); i { case 0: return &v.state @@ -1083,7 +1085,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DemoteVolumeResponse); i { case 0: return &v.state @@ -1095,7 +1097,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResyncVolumeRequest); i { case 0: return &v.state @@ -1107,7 +1109,7 @@ func file_replication_proto_init() { return nil } } - file_replication_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_replication_replication_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResyncVolumeResponse); i { case 0: return &v.state @@ -1124,19 +1126,19 @@ func file_replication_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_replication_proto_rawDesc, + RawDescriptor: file_replication_replication_proto_rawDesc, NumEnums: 0, NumMessages: 20, NumExtensions: 2, NumServices: 1, }, - GoTypes: file_replication_proto_goTypes, - DependencyIndexes: file_replication_proto_depIdxs, - MessageInfos: file_replication_proto_msgTypes, - ExtensionInfos: file_replication_proto_extTypes, + GoTypes: file_replication_replication_proto_goTypes, + DependencyIndexes: file_replication_replication_proto_depIdxs, + MessageInfos: file_replication_replication_proto_msgTypes, + ExtensionInfos: file_replication_replication_proto_extTypes, }.Build() - File_replication_proto = out.File - file_replication_proto_rawDesc = nil - file_replication_proto_goTypes = nil - file_replication_proto_depIdxs = nil + File_replication_replication_proto = out.File + file_replication_replication_proto_rawDesc = nil + file_replication_replication_proto_goTypes = nil + file_replication_replication_proto_depIdxs = nil } diff --git a/vendor/github.com/csi-addons/spec/lib/go/replication/replication_grpc.pb.go b/vendor/github.com/csi-addons/spec/lib/go/replication/replication_grpc.pb.go index c52b2f643..87c8be8a3 100644 --- a/vendor/github.com/csi-addons/spec/lib/go/replication/replication_grpc.pb.go +++ b/vendor/github.com/csi-addons/spec/lib/go/replication/replication_grpc.pb.go @@ -251,5 +251,5 @@ var Controller_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "replication.proto", + Metadata: "replication/replication.proto", } diff --git a/vendor/modules.txt b/vendor/modules.txt index d2f0847ad..76034bb28 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -80,8 +80,9 @@ github.com/container-storage-interface/spec/lib/go/csi # github.com/csi-addons/replication-lib-utils v0.2.0 ## explicit github.com/csi-addons/replication-lib-utils/protosanitizer -# github.com/csi-addons/spec v0.1.1 +# github.com/csi-addons/spec v0.1.2-0.20211123125058-fd968c478af7 ## explicit +github.com/csi-addons/spec/lib/go/identity github.com/csi-addons/spec/lib/go/replication # github.com/cyphar/filepath-securejoin v0.2.2 github.com/cyphar/filepath-securejoin