From cd6ad38238148d8b0eb7b90463a15361e586471a Mon Sep 17 00:00:00 2001 From: sivakumar subraani Date: Mon, 12 Jun 2023 16:20:50 +0000 Subject: [PATCH 01/12] vendor stork from 23.6 branch --- go.mod | 2 +- go.sum | 4 ++-- .../pkg/applicationmanager/controllers/applicationrestore.go | 1 - vendor/modules.txt | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 6d237edca..02efa8862 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/hashicorp/go-version v1.6.0 github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0 github.com/kubernetes-incubator/external-storage v0.20.4-openstorage-rc7 - github.com/libopenstorage/stork v1.4.1-0.20230610103146-72cf75320066 + github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7 github.com/portworx/pxc v0.33.0 github.com/portworx/sched-ops v1.20.4-rc1.0.20230426231724-8d9f2c104721 github.com/sirupsen/logrus v1.9.0 diff --git a/go.sum b/go.sum index 818396aca..e13f07ec4 100644 --- a/go.sum +++ b/go.sum @@ -1784,8 +1784,8 @@ github.com/libopenstorage/stork v1.4.1-0.20220323180113-0ea773109d05/go.mod h1:h github.com/libopenstorage/stork v1.4.1-0.20220414104250-3c18fd21ed95/go.mod h1:yE94X0xBFSBQ9LvvJ/zppc4+XeiCAXtsHfYHm15dlcA= github.com/libopenstorage/stork v1.4.1-0.20221103082056-65abc8cc4e80/go.mod h1:yX+IlCrUsZekC6zxL6zHE7sBPKIudubHB3EcImzeRbI= github.com/libopenstorage/stork v1.4.1-0.20230207013129-a31284f0e973/go.mod h1:/EFTTQyBxNzul96urrYPdjNEYeDzVgZzK88gRQjoVmk= -github.com/libopenstorage/stork v1.4.1-0.20230610103146-72cf75320066 h1:s8OgtWGDLypt5bRi53EXk8oFC2en4IcFGNoXSw99aUQ= -github.com/libopenstorage/stork v1.4.1-0.20230610103146-72cf75320066/go.mod h1:Yst+fnOYjWk6SA5pXZBKm19wtiinjxQ/vgYTXI3k80Q= +github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7 h1:mbq0X9AswTt2cBG+PwwV3RFj7tsvQL75aEmxeqcmBVM= +github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7/go.mod h1:haa+/xAM6l+lDkBttDmJSECDz0hZxvqSNi8hQCpbNxY= github.com/libopenstorage/systemutils v0.0.0-20160208220149-44ac83be3ce1/go.mod h1:xwNGC7xiz/BQ/wbMkvHujL8Gjgseg+x41xMek7sKRRQ= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= diff --git a/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go b/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go index 4a2f105a4..a158795bb 100644 --- a/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go +++ b/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go @@ -759,7 +759,6 @@ func (a *ApplicationRestoreController) restoreVolumes(restore *storkapi.Applicat _, err = a.updateRestoreCRInVolumeStage(namespacedName, storkapi.ApplicationRestoreStatusFailed, storkapi.ApplicationRestoreStageFinal, message, nil) return err } - time.Sleep(k8sutils.RestoreVolumeBatchSleepInterval) restore, err = a.updateRestoreCRInVolumeStage( namespacedName, storkapi.ApplicationRestoreStatusInProgress, diff --git a/vendor/modules.txt b/vendor/modules.txt index 61f188734..61923bbfe 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -384,7 +384,7 @@ github.com/libopenstorage/openstorage-sdk-clients/sdk/golang github.com/libopenstorage/secrets github.com/libopenstorage/secrets/aws/credentials github.com/libopenstorage/secrets/k8s -# github.com/libopenstorage/stork v1.4.1-0.20230610103146-72cf75320066 +# github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7 ## explicit; go 1.19 github.com/libopenstorage/stork/drivers github.com/libopenstorage/stork/drivers/volume From a48c735092181dc689be954240ac76102d331c2b Mon Sep 17 00:00:00 2001 From: sivakumar subraani Date: Mon, 12 Jun 2023 16:35:00 +0000 Subject: [PATCH 02/12] travis file changes for image tag and golang ver --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4263004b2..24c4bc7dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,12 @@ env: global: - GO111MODULE=on go: - - 1.19 + - 1.19.1 script: - | if [ -n "${TRAVIS_TAG}" ]; then export RELEASE_VER=${TRAVIS_TAG} - elif [ "${TRAVIS_BRANCH}" == "master" ]; then + elif [ "${TRAVIS_BRANCH}" == "1.2.6" ]; then export DOCKER_IMAGE_TAG=1.2.6-dev else export RELEASE_VER=`git rev-parse --short HEAD` From 6a15e958a4dc0397e306c1eaf72a6616bfdffa1a Mon Sep 17 00:00:00 2001 From: sivakumar subraani Date: Mon, 12 Jun 2023 17:18:24 +0000 Subject: [PATCH 03/12] changed the release tag from 1.2.6-dev to 1.2.6 --- .travis.yml | 2 +- Makefile | 2 +- pkg/version/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 24c4bc7dc..80a4f07d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ script: if [ -n "${TRAVIS_TAG}" ]; then export RELEASE_VER=${TRAVIS_TAG} elif [ "${TRAVIS_BRANCH}" == "1.2.6" ]; then - export DOCKER_IMAGE_TAG=1.2.6-dev + export DOCKER_IMAGE_TAG=1.2.6 else export RELEASE_VER=`git rev-parse --short HEAD` fi diff --git a/Makefile b/Makefile index f433b92d0..8be12a67b 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -RELEASE_VER ?= 1.2.6-dev +RELEASE_VER ?= 1.2.6 BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ') BASE_DIR := $(shell git rev-parse --show-toplevel) GIT_SHA := $(shell git rev-parse --short HEAD) diff --git a/pkg/version/version.go b/pkg/version/version.go index 69b92e509..9b8dca746 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -24,7 +24,7 @@ const ( // // These variables typically come from -ldflags settings. var ( - gitVersion = "1.2.6-dev" + gitVersion = "1.2.6" gitCommit = "" // sha1 from git, output of $(git rev-parse HEAD) buildDate = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') kbVerRegex = regexp.MustCompile(`^(v\d+\.\d+\.\d+)(.*)`) From 749f81eba034b49c20f279910969278e81868e91 Mon Sep 17 00:00:00 2001 From: kesavan thiruvenkadasamy Date: Tue, 20 Jun 2023 17:59:25 +0530 Subject: [PATCH 04/12] changed the release tag from 1.2.6 to 1.2.6-dev Signed-off-by: kesavan thiruvenkadasamy --- .travis.yml | 2 +- Makefile | 2 +- pkg/version/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 80a4f07d3..24c4bc7dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ script: if [ -n "${TRAVIS_TAG}" ]; then export RELEASE_VER=${TRAVIS_TAG} elif [ "${TRAVIS_BRANCH}" == "1.2.6" ]; then - export DOCKER_IMAGE_TAG=1.2.6 + export DOCKER_IMAGE_TAG=1.2.6-dev else export RELEASE_VER=`git rev-parse --short HEAD` fi diff --git a/Makefile b/Makefile index 8be12a67b..f433b92d0 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -RELEASE_VER ?= 1.2.6 +RELEASE_VER ?= 1.2.6-dev BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ') BASE_DIR := $(shell git rev-parse --show-toplevel) GIT_SHA := $(shell git rev-parse --short HEAD) diff --git a/pkg/version/version.go b/pkg/version/version.go index 9b8dca746..69b92e509 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -24,7 +24,7 @@ const ( // // These variables typically come from -ldflags settings. var ( - gitVersion = "1.2.6" + gitVersion = "1.2.6-dev" gitCommit = "" // sha1 from git, output of $(git rev-parse HEAD) buildDate = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') kbVerRegex = regexp.MustCompile(`^(v\d+\.\d+\.\d+)(.*)`) From f0fdfa31302645fb63009598df956af3bf250199 Mon Sep 17 00:00:00 2001 From: sivakumar subraani Date: Thu, 15 Jun 2023 18:04:08 +0000 Subject: [PATCH 05/12] pb-3928: Fixed ivalid access of the volumesnapshot from the pvc spec with localsnapshot restore cleanup --- pkg/controllers/dataexport/reconcile.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pkg/controllers/dataexport/reconcile.go b/pkg/controllers/dataexport/reconcile.go index ca91de7ab..29b10468a 100644 --- a/pkg/controllers/dataexport/reconcile.go +++ b/pkg/controllers/dataexport/reconcile.go @@ -92,6 +92,7 @@ type updateDataExportDetail struct { snapshotNamespace string removeFinalizer bool volumeSnapshot string + resetLocalSnapshotRestore bool } func (c *Controller) sync(ctx context.Context, in *kdmpapi.DataExport) (bool, error) { @@ -1046,6 +1047,7 @@ func (c *Controller) stageLocalSnapshotRestore(ctx context.Context, dataExport * stage: kdmpapi.DataExportStageTransferScheduled, status: kdmpapi.DataExportStatusInitial, reason: "switching to restore from objectstore bucket as restoring from local snapshot did not happen", + resetLocalSnapshotRestore: true, } return false, c.updateStatus(dataExport, data) } @@ -1198,6 +1200,7 @@ func (c *Controller) stageLocalSnapshotRestoreInProgress(ctx context.Context, da status: kdmpapi.DataExportStatusInitial, reason: "", transferID: "", // Resetting transfer id if it has been set with nfs backuplocation job + resetLocalSnapshotRestore: true, } return false, c.updateStatus(dataExport, data) } @@ -1491,11 +1494,13 @@ func (c *Controller) cleanupLocalRestoredSnapshotResources(de *kdmpapi.DataExpor logrus.Errorf("cleanupLocalRestoredSnapshotResources: failed to get restore pvc [%v] err: %v", de.Status.RestorePVC.Name, err) return nil, false, err } - err = snapshotDriver.DeleteSnapshot(rpvc.Spec.DataSource.Name, de.Namespace, true) - if err != nil { - logrus.Errorf("cleanupLocalRestoredSnapshotResources: snapshotDriver.DeleteSnapshot failed with err: %v", err) - return nil, false, err - } + if rpvc.Spec.DataSource != nil { + err = snapshotDriver.DeleteSnapshot(rpvc.Spec.DataSource.Name, de.Namespace, true) + if err != nil { + logrus.Errorf("cleanupLocalRestoredSnapshotResources: snapshotDriver.DeleteSnapshot failed with err: %v", err) + return nil, false, err + } + } if !ignorePVC { pvcSpec := de.Status.RestorePVC @@ -1569,6 +1574,9 @@ func (c *Controller) updateStatus(de *kdmpapi.DataExport, data updateDataExportD if data.volumeSnapshot != "" { de.Status.VolumeSnapshot = data.volumeSnapshot } + if data.resetLocalSnapshotRestore { + de.Status.LocalSnapshotRestore = false + } actualErr = c.client.Update(context.TODO(), de) if actualErr != nil { From b2b86b864ac4c7e293b43f9d5e4059414793dfa6 Mon Sep 17 00:00:00 2001 From: kesavan thiruvenkadasamy Date: Sun, 11 Jun 2023 04:23:13 +0530 Subject: [PATCH 06/12] Added changes for rancher projectmapping in namespaces in case of NFS BL Signed-off-by: kesavan thiruvenkadasamy --- pkg/executor/common.go | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/pkg/executor/common.go b/pkg/executor/common.go index 21196bc8d..01906b11e 100644 --- a/pkg/executor/common.go +++ b/pkg/executor/common.go @@ -8,11 +8,13 @@ import ( "path/filepath" "reflect" "strconv" + "strings" "time" storkapi "github.com/libopenstorage/stork/pkg/apis/stork/v1alpha1" "github.com/libopenstorage/stork/pkg/crypto" "github.com/libopenstorage/stork/pkg/log" + storkutils "github.com/libopenstorage/stork/pkg/utils" kdmpapi "github.com/portworx/kdmp/pkg/apis/kdmp/v1alpha1" "github.com/portworx/kdmp/pkg/drivers" "github.com/portworx/kdmp/pkg/drivers/utils" @@ -666,6 +668,23 @@ func CreateNamespacesFromMapping( return createNamespaces(backup, restore.Spec.BackupLocation, restore.Namespace, restore) } +func getRancherProjectMapping(restore *storkapi.ApplicationRestore) map[string]string { + rancherProjectMapping := map[string]string{} + if restore.Spec.RancherProjectMapping != nil { + for key, value := range restore.Spec.RancherProjectMapping { + rancherProjectMapping[key] = value + dataKey := strings.Split(key, ":") + dataVal := strings.Split(value, ":") + if len(dataKey) == 2 && len(dataVal) == 2 { + rancherProjectMapping[dataKey[1]] = dataVal[1] + } else if len(dataKey) == 1 && len(dataVal) == 2 { + rancherProjectMapping[dataKey[0]] = dataVal[1] + } + } + } + return rancherProjectMapping +} + func createNamespaces(backup *storkapi.ApplicationBackup, backupLocation string, backupLocationNamespace string, @@ -688,6 +707,8 @@ func createNamespaces(backup *storkapi.ApplicationBackup, if err != nil { return err } + + rancherProjectMapping := getRancherProjectMapping(restore) if nsData != nil { if err = json.Unmarshal(nsData, &namespaces); err != nil { return err @@ -699,6 +720,8 @@ func createNamespaces(backup *storkapi.ApplicationBackup, // Skip namespaces we aren't restoring continue } + storkutils.ParseRancherProjectMapping(ns.Annotations, rancherProjectMapping) + storkutils.ParseRancherProjectMapping(ns.Labels, rancherProjectMapping) // create mapped restore namespace with metadata of backed up // namespace _, err := core.Instance().CreateNamespace(&v1.Namespace{ @@ -727,8 +750,11 @@ func createNamespaces(backup *storkapi.ApplicationBackup, if annotations == nil { annotations = make(map[string]string) } + // Add all annotations from Namespace.json except project annotations when not found in the namespace which is not created by px-backup. + // With retain policy, project annotations should not be applied to the namespace with no projects. Applies to a scenario where project association + // is removed by the user after taking the backup with project on a namespace for k, v := range ns.GetAnnotations() { - if _, ok := annotations[k]; !ok { + if _, ok := annotations[k]; !ok && (!strings.Contains(k, storkutils.CattleProjectPrefix) || annotations[storkutils.PxbackupAnnotationCreateByKey] != "") { annotations[k] = v } } @@ -736,12 +762,19 @@ func createNamespaces(backup *storkapi.ApplicationBackup, if labels == nil { labels = make(map[string]string) } + // Add all labels from Namespace.json except project labels when not found in the namespace which is not created by px-backup. + // With retain policy, project labels should not be applied to the namespace with no projects. Applies to a scenario where project association + // is removed by the user after taking the backup with project on a namespace for k, v := range ns.GetLabels() { - if _, ok := labels[k]; !ok { + if _, ok := labels[k]; !ok && (!strings.Contains(k, storkutils.CattleProjectPrefix) || annotations[storkutils.PxbackupAnnotationCreateByKey] != "") { labels[k] = v } } + storkutils.ParseRancherProjectMapping(annotations, rancherProjectMapping) + storkutils.ParseRancherProjectMapping(labels, rancherProjectMapping) } + // delete the px backup CreateByKey Annotation + delete(annotations, storkutils.PxbackupAnnotationCreateByKey) log.ApplicationRestoreLog(restore).Tracef("Namespace already exists, updating dest namespace %v", ns.Name) _, err = core.Instance().UpdateNamespace(&v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ From 6ff416fcf82093d913589e3cbffa63aebd183778 Mon Sep 17 00:00:00 2001 From: kesavan thiruvenkadasamy Date: Thu, 15 Jun 2023 19:19:26 +0530 Subject: [PATCH 07/12] Added fix to check for the existence of kopia repository file in kdmp delete Signed-off-by: kesavan thiruvenkadasamy --- pkg/executor/kopia/kopiadelete.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/executor/kopia/kopiadelete.go b/pkg/executor/kopia/kopiadelete.go index 918a53233..7e0bfbcb9 100644 --- a/pkg/executor/kopia/kopiadelete.go +++ b/pkg/executor/kopia/kopiadelete.go @@ -2,8 +2,11 @@ package kopia import ( "fmt" + "os" + "path/filepath" "time" + storkv1 "github.com/libopenstorage/stork/pkg/apis/stork/v1alpha1" kdmpapi "github.com/portworx/kdmp/pkg/apis/kdmp/v1alpha1" "github.com/portworx/kdmp/pkg/executor" "github.com/portworx/kdmp/pkg/kopia" @@ -34,6 +37,17 @@ func newDeleteCommand() *cobra.Command { return deleteCommand } +func isNfsKopiaRepositoryFileExists(repo *executor.Repository) bool { + repoBaseDir := repo.Path + genericBackupDir + "/" + kopiaRepoFile := filepath.Join(repoBaseDir, repo.Name, kopiaNFSRepositoryFile) + _, err := os.Stat(kopiaRepoFile) + if err != nil && os.IsNotExist(err) { + logrus.Debugf("kopia repository file %v does not exist", kopiaRepoFile) + return false + } + return true +} + func runDelete(snapshotID, volumeBackupDeleteName, volumeBackupDeleteNamespace string) error { // Parse using the mounted secrets fn := "runDelete:" @@ -51,6 +65,13 @@ func runDelete(snapshotID, volumeBackupDeleteName, volumeBackupDeleteNamespace s repo.Name = frameBackupPath() + if repo.Type == storkv1.BackupLocationNFS { + if !isNfsKopiaRepositoryFileExists(repo) { + logrus.Info("kopia repository file is not found in the NFS backuplocation and nothing to process for deletion") + return nil + } + } + if err := runKopiaRepositoryConnect(repo); err != nil { errMsg := fmt.Sprintf("repository [%v] connect failed: %v", repo.Name, err) logrus.Errorf("%s: %v", fn, errMsg) From 910fa1165556918fc285034dc64a40918dec6db0 Mon Sep 17 00:00:00 2001 From: sivakumar subraani Date: Fri, 23 Jun 2023 12:22:09 +0000 Subject: [PATCH 08/12] vendored the latest stork from 23.6 branch --- go.mod | 6 +- go.sum | 11 +- .../github.com/fsnotify/fsnotify/.gitignore | 10 +- vendor/github.com/fsnotify/fsnotify/AUTHORS | 62 -- .../github.com/fsnotify/fsnotify/CHANGELOG.md | 113 +++ .../fsnotify/fsnotify/CONTRIBUTING.md | 72 +- vendor/github.com/fsnotify/fsnotify/LICENSE | 47 +- vendor/github.com/fsnotify/fsnotify/README.md | 205 +++-- .../fsnotify/fsnotify/backend_fen.go | 162 ++++ .../fsnotify/fsnotify/backend_inotify.go | 459 +++++++++++ .../fsnotify/fsnotify/backend_kqueue.go | 707 +++++++++++++++++ .../fsnotify/fsnotify/backend_other.go | 66 ++ .../fsnotify/fsnotify/backend_windows.go | 746 ++++++++++++++++++ vendor/github.com/fsnotify/fsnotify/fen.go | 38 - .../github.com/fsnotify/fsnotify/fsnotify.go | 80 +- .../fsnotify/fsnotify/fsnotify_unsupported.go | 36 - .../github.com/fsnotify/fsnotify/inotify.go | 351 -------- .../fsnotify/fsnotify/inotify_poller.go | 187 ----- vendor/github.com/fsnotify/fsnotify/kqueue.go | 535 ------------- vendor/github.com/fsnotify/fsnotify/mkdoc.zsh | 208 +++++ .../{open_mode_bsd.go => system_bsd.go} | 4 - .../{open_mode_darwin.go => system_darwin.go} | 4 - .../github.com/fsnotify/fsnotify/windows.go | 586 -------------- .../stork/drivers/volume/portworx/portworx.go | 2 +- .../controllers/applicationrestore.go | 29 +- .../stork/pkg/k8sutils/k8sutils.go | 2 - .../stork/pkg/snapshotter/snapshotter_csi.go | 30 +- vendor/github.com/portworx/kvdb/.travis.yml | 2 +- .../github.com/portworx/kvdb/common/common.go | 27 +- vendor/github.com/portworx/kvdb/kvdb.go | 14 +- vendor/github.com/portworx/kvdb/mem/kv_mem.go | 28 +- vendor/modules.txt | 6 +- 32 files changed, 2790 insertions(+), 2045 deletions(-) delete mode 100644 vendor/github.com/fsnotify/fsnotify/AUTHORS create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_fen.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_inotify.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_kqueue.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_other.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_windows.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/fen.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/fsnotify_unsupported.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/inotify.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/inotify_poller.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/kqueue.go create mode 100644 vendor/github.com/fsnotify/fsnotify/mkdoc.zsh rename vendor/github.com/fsnotify/fsnotify/{open_mode_bsd.go => system_bsd.go} (57%) rename vendor/github.com/fsnotify/fsnotify/{open_mode_darwin.go => system_darwin.go} (52%) delete mode 100644 vendor/github.com/fsnotify/fsnotify/windows.go diff --git a/go.mod b/go.mod index 02efa8862..e8583a8e0 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/hashicorp/go-version v1.6.0 github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0 github.com/kubernetes-incubator/external-storage v0.20.4-openstorage-rc7 - github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7 + github.com/libopenstorage/stork v1.4.1-0.20230623121725-6af6ed81b14b github.com/portworx/pxc v0.33.0 github.com/portworx/sched-ops v1.20.4-rc1.0.20230426231724-8d9f2c104721 github.com/sirupsen/logrus v1.9.0 @@ -69,7 +69,7 @@ require ( github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 // indirect github.com/go-errors/errors v1.0.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -127,7 +127,7 @@ require ( github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/portworx/kvdb v0.0.0-20200929023115-b312c7519467 // indirect + github.com/portworx/kvdb v0.0.0-20230326003017-21a38cf82d4b // indirect github.com/pquerna/cachecontrol v0.1.0 // indirect github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect diff --git a/go.sum b/go.sum index e13f07ec4..37e9f1a4d 100644 --- a/go.sum +++ b/go.sum @@ -1057,8 +1057,9 @@ github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUork github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fsouza/fake-gcs-server v0.0.0-20180612165233-e85be23bdaa8/go.mod h1:1/HufuJ+eaDf4KTnYdS6HJMGvMRU8d4cYTuu/1QaBbI= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= @@ -1784,8 +1785,8 @@ github.com/libopenstorage/stork v1.4.1-0.20220323180113-0ea773109d05/go.mod h1:h github.com/libopenstorage/stork v1.4.1-0.20220414104250-3c18fd21ed95/go.mod h1:yE94X0xBFSBQ9LvvJ/zppc4+XeiCAXtsHfYHm15dlcA= github.com/libopenstorage/stork v1.4.1-0.20221103082056-65abc8cc4e80/go.mod h1:yX+IlCrUsZekC6zxL6zHE7sBPKIudubHB3EcImzeRbI= github.com/libopenstorage/stork v1.4.1-0.20230207013129-a31284f0e973/go.mod h1:/EFTTQyBxNzul96urrYPdjNEYeDzVgZzK88gRQjoVmk= -github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7 h1:mbq0X9AswTt2cBG+PwwV3RFj7tsvQL75aEmxeqcmBVM= -github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7/go.mod h1:haa+/xAM6l+lDkBttDmJSECDz0hZxvqSNi8hQCpbNxY= +github.com/libopenstorage/stork v1.4.1-0.20230623121725-6af6ed81b14b h1:URkJrxBMq6wtKbcZiRksG8asD04vTUznKFE2HWZS9q4= +github.com/libopenstorage/stork v1.4.1-0.20230623121725-6af6ed81b14b/go.mod h1:W/zqw07nTIJNU+w+DJOVsiswCqtNt+lPN2j0mjKNmuU= github.com/libopenstorage/systemutils v0.0.0-20160208220149-44ac83be3ce1/go.mod h1:xwNGC7xiz/BQ/wbMkvHujL8Gjgseg+x41xMek7sKRRQ= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= @@ -2143,8 +2144,9 @@ github.com/portworx/kdmp v0.4.1-0.20230127055521-e23d6b003478/go.mod h1:v8uQbjGe github.com/portworx/kvdb v0.0.0-20190105022415-cccaa09abfc9/go.mod h1:Q8YyrNDvPp3DVF96BDcQuaC7fAYUCuUX+l58S7OnD2M= github.com/portworx/kvdb v0.0.0-20191223203141-f42097b1fcd8/go.mod h1:Q8YyrNDvPp3DVF96BDcQuaC7fAYUCuUX+l58S7OnD2M= github.com/portworx/kvdb v0.0.0-20200723230726-2734b7f40194/go.mod h1:Q8YyrNDvPp3DVF96BDcQuaC7fAYUCuUX+l58S7OnD2M= -github.com/portworx/kvdb v0.0.0-20200929023115-b312c7519467 h1:jkqzdbOnejgSN5HG/FLt4enNrozWT/K+nlmaRm3P1II= github.com/portworx/kvdb v0.0.0-20200929023115-b312c7519467/go.mod h1:Q8YyrNDvPp3DVF96BDcQuaC7fAYUCuUX+l58S7OnD2M= +github.com/portworx/kvdb v0.0.0-20230326003017-21a38cf82d4b h1:nP+m9tYQv2cWbN9wAwjlhJU9FZRs7GaYszhLJBLAg/I= +github.com/portworx/kvdb v0.0.0-20230326003017-21a38cf82d4b/go.mod h1:Q8YyrNDvPp3DVF96BDcQuaC7fAYUCuUX+l58S7OnD2M= github.com/portworx/px-backup-api v1.0.1-0.20200915150042-274508e876ef/go.mod h1:puy7YVXeb6glot1vVCIePIiRLSwB//+rFtN2ZjvXeEw= github.com/portworx/px-object-controller v0.0.0-20220804234424-40d3b8a84987/go.mod h1:g3pw2lI2AjqAixUCRhaBdKTY98znsCPR7NGRrlpimVU= github.com/portworx/pxc v0.33.0 h1:tQmljY8uJNc74opxUBnxopR+6E77RKESsNUYBaDWIQY= @@ -3043,6 +3045,7 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= diff --git a/vendor/github.com/fsnotify/fsnotify/.gitignore b/vendor/github.com/fsnotify/fsnotify/.gitignore index 4cd0cbaf4..1d89d85ce 100644 --- a/vendor/github.com/fsnotify/fsnotify/.gitignore +++ b/vendor/github.com/fsnotify/fsnotify/.gitignore @@ -1,6 +1,6 @@ -# Setup a Global .gitignore for OS and editor generated files: -# https://help.github.com/articles/ignoring-files -# git config --global core.excludesfile ~/.gitignore_global +# go test -c output +*.test +*.test.exe -.vagrant -*.sublime-project +# Output of go build ./cmd/fsnotify +/fsnotify diff --git a/vendor/github.com/fsnotify/fsnotify/AUTHORS b/vendor/github.com/fsnotify/fsnotify/AUTHORS deleted file mode 100644 index 6cbabe5ef..000000000 --- a/vendor/github.com/fsnotify/fsnotify/AUTHORS +++ /dev/null @@ -1,62 +0,0 @@ -# Names should be added to this file as -# Name or Organization -# The email address is not required for organizations. - -# You can update this list using the following command: -# -# $ (head -n10 AUTHORS && git shortlog -se | sed -E 's/^\s+[0-9]+\t//') | tee AUTHORS - -# Please keep the list sorted. - -Aaron L -Adrien Bustany -Alexey Kazakov -Amit Krishnan -Anmol Sethi -Bjørn Erik Pedersen -Brian Goff -Bruno Bigras -Caleb Spare -Case Nelson -Chris Howey -Christoffer Buchholz -Daniel Wagner-Hall -Dave Cheney -Eric Lin -Evan Phoenix -Francisco Souza -Gautam Dey -Hari haran -Ichinose Shogo -Johannes Ebke -John C Barstow -Kelvin Fo -Ken-ichirou MATSUZAWA -Matt Layher -Matthias Stone -Nathan Youngman -Nickolai Zeldovich -Oliver Bristow -Patrick -Paul Hammond -Pawel Knap -Pieter Droogendijk -Pratik Shinde -Pursuit92 -Riku Voipio -Rob Figueiredo -Rodrigo Chiossi -Slawek Ligus -Soge Zhang -Tiffany Jernigan -Tilak Sharma -Tobias Klauser -Tom Payne -Travis Cline -Tudor Golubenco -Vahe Khachikyan -Yukang -bronze1man -debrando -henrikedwards -铁哥 diff --git a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md index cc01c08f5..77f9593bd 100644 --- a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md +++ b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md @@ -7,6 +7,95 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +Nothing yet. + +## [1.6.0] - 2022-10-13 + +This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, +but not documented). It also increases the minimum Linux version to 2.6.32. + +### Additions + +- all: add `Event.Has()` and `Op.Has()` ([#477]) + + This makes checking events a lot easier; for example: + + if event.Op&Write == Write && !(event.Op&Remove == Remove) { + } + + Becomes: + + if event.Has(Write) && !event.Has(Remove) { + } + +- all: add cmd/fsnotify ([#463]) + + A command-line utility for testing and some examples. + +### Changes and fixes + +- inotify: don't ignore events for files that don't exist ([#260], [#470]) + + Previously the inotify watcher would call `os.Lstat()` to check if a file + still exists before emitting events. + + This was inconsistent with other platforms and resulted in inconsistent event + reporting (e.g. when a file is quickly removed and re-created), and generally + a source of confusion. It was added in 2013 to fix a memory leak that no + longer exists. + +- all: return `ErrNonExistentWatch` when `Remove()` is called on a path that's + not watched ([#460]) + +- inotify: replace epoll() with non-blocking inotify ([#434]) + + Non-blocking inotify was not generally available at the time this library was + written in 2014, but now it is. As a result, the minimum Linux version is + bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster. + +- kqueue: don't check for events every 100ms ([#480]) + + The watcher would wake up every 100ms, even when there was nothing to do. Now + it waits until there is something to do. + +- macos: retry opening files on EINTR ([#475]) + +- kqueue: skip unreadable files ([#479]) + + kqueue requires a file descriptor for every file in a directory; this would + fail if a file was unreadable by the current user. Now these files are simply + skipped. + +- windows: fix renaming a watched directory if the parent is also watched ([#370]) + +- windows: increase buffer size from 4K to 64K ([#485]) + +- windows: close file handle on Remove() ([#288]) + +- kqueue: put pathname in the error if watching a file fails ([#471]) + +- inotify, windows: calling Close() more than once could race ([#465]) + +- kqueue: improve Close() performance ([#233]) + +- all: various documentation additions and clarifications. + +[#233]: https://github.com/fsnotify/fsnotify/pull/233 +[#260]: https://github.com/fsnotify/fsnotify/pull/260 +[#288]: https://github.com/fsnotify/fsnotify/pull/288 +[#370]: https://github.com/fsnotify/fsnotify/pull/370 +[#434]: https://github.com/fsnotify/fsnotify/pull/434 +[#460]: https://github.com/fsnotify/fsnotify/pull/460 +[#463]: https://github.com/fsnotify/fsnotify/pull/463 +[#465]: https://github.com/fsnotify/fsnotify/pull/465 +[#470]: https://github.com/fsnotify/fsnotify/pull/470 +[#471]: https://github.com/fsnotify/fsnotify/pull/471 +[#475]: https://github.com/fsnotify/fsnotify/pull/475 +[#477]: https://github.com/fsnotify/fsnotify/pull/477 +[#479]: https://github.com/fsnotify/fsnotify/pull/479 +[#480]: https://github.com/fsnotify/fsnotify/pull/480 +[#485]: https://github.com/fsnotify/fsnotify/pull/485 + ## [1.5.4] - 2022-04-25 * Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447) @@ -40,6 +129,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#385](https://github.com/fsnotify/fsnotify/pull/385) * Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325) +## [1.4.9] - 2020-03-11 + +* Move example usage to the readme #329. This may resolve #328. + +## [1.4.8] - 2020-03-10 + +* CI: test more go versions (@nathany 1d13583d846ea9d66dcabbfefbfb9d8e6fb05216) +* Tests: Queued inotify events could have been read by the test before max_queued_events was hit (@matthias-stone #265) +* Tests: t.Fatalf -> t.Errorf in go routines (@gdey #266) +* CI: Less verbosity (@nathany #267) +* Tests: Darwin: Exchangedata is deprecated on 10.13 (@nathany #267) +* Tests: Check if channels are closed in the example (@alexeykazakov #244) +* CI: Only run golint on latest version of go and fix issues (@cpuguy83 #284) +* CI: Add windows to travis matrix (@cpuguy83 #284) +* Docs: Remover appveyor badge (@nathany 11844c0959f6fff69ba325d097fce35bd85a8e93) +* Linux: create epoll and pipe fds with close-on-exec (@JohannesEbke #219) +* Linux: open files with close-on-exec (@linxiulei #273) +* Docs: Plan to support fanotify (@nathany ab058b44498e8b7566a799372a39d150d9ea0119 ) +* Project: Add go.mod (@nathany #309) +* Project: Revise editor config (@nathany #309) +* Project: Update copyright for 2019 (@nathany #309) +* CI: Drop go1.8 from CI matrix (@nathany #309) +* Docs: Updating the FAQ section for supportability with NFS & FUSE filesystems (@Pratik32 4bf2d1fec78374803a39307bfb8d340688f4f28e ) + ## [1.4.7] - 2018-01-09 * BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) diff --git a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md index 8a642563d..ea379759d 100644 --- a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md +++ b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md @@ -1,60 +1,26 @@ -# Contributing +Thank you for your interest in contributing to fsnotify! We try to review and +merge PRs in a reasonable timeframe, but please be aware that: -## Issues +- To avoid "wasted" work, please discus changes on the issue tracker first. You + can just send PRs, but they may end up being rejected for one reason or the + other. -* Request features and report bugs using the [GitHub Issue Tracker](https://github.com/fsnotify/fsnotify/issues). -* Please indicate the platform you are using fsnotify on. -* A code example to reproduce the problem is appreciated. +- fsnotify is a cross-platform library, and changes must work reasonably well on + all supported platforms. -## Pull Requests +- Changes will need to be compatible; old code should still compile, and the + runtime behaviour can't change in ways that are likely to lead to problems for + users. -### Contributor License Agreement +Testing +------- +Just `go test ./...` runs all the tests; the CI runs this on all supported +platforms. Testing different platforms locally can be done with something like +[goon] or [Vagrant], but this isn't super-easy to set up at the moment. -fsnotify is derived from code in the [golang.org/x/exp](https://godoc.org/golang.org/x/exp) package and it may be included [in the standard library](https://github.com/fsnotify/fsnotify/issues/1) in the future. Therefore fsnotify carries the same [LICENSE](https://github.com/fsnotify/fsnotify/blob/master/LICENSE) as Go. Contributors retain their copyright, so you need to fill out a short form before we can accept your contribution: [Google Individual Contributor License Agreement](https://developers.google.com/open-source/cla/individual). +Use the `-short` flag to make the "stress test" run faster. -Please indicate that you have signed the CLA in your pull request. -### How fsnotify is Developed - -* Development is done on feature branches. -* Tests are run on BSD, Linux, macOS and Windows. -* Pull requests are reviewed and [applied to master][am] using [hub][]. - * Maintainers may modify or squash commits rather than asking contributors to. -* To issue a new release, the maintainers will: - * Update the CHANGELOG - * Tag a version, which will become available through gopkg.in. - -### How to Fork - -For smooth sailing, always use the original import path. Installing with `go get` makes this easy. - -1. Install from GitHub (`go get -u github.com/fsnotify/fsnotify`) -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Ensure everything works and the tests pass (see below) -4. Commit your changes (`git commit -am 'Add some feature'`) - -Contribute upstream: - -1. Fork fsnotify on GitHub -2. Add your remote (`git remote add fork git@github.com:mycompany/repo.git`) -3. Push to the branch (`git push fork my-new-feature`) -4. Create a new Pull Request on GitHub - -This workflow is [thoroughly explained by Katrina Owen](https://splice.com/blog/contributing-open-source-git-repositories-go/). - -### Testing - -fsnotify uses build tags to compile different code on Linux, BSD, macOS, and Windows. - -Before doing a pull request, please do your best to test your changes on multiple platforms, and list which platforms you were able/unable to test on. - -### Maintainers - -Help maintaining fsnotify is welcome. To be a maintainer: - -* Submit a pull request and sign the CLA as above. -* You must be able to run the test suite on Mac, Windows, Linux and BSD. - -All code changes should be internal pull requests. - -Releases are tagged using [Semantic Versioning](http://semver.org/). +[goon]: https://github.com/arp242/goon +[Vagrant]: https://www.vagrantup.com/ +[integration_test.go]: /integration_test.go diff --git a/vendor/github.com/fsnotify/fsnotify/LICENSE b/vendor/github.com/fsnotify/fsnotify/LICENSE index e180c8fb0..fb03ade75 100644 --- a/vendor/github.com/fsnotify/fsnotify/LICENSE +++ b/vendor/github.com/fsnotify/fsnotify/LICENSE @@ -1,28 +1,25 @@ -Copyright (c) 2012 The Go Authors. All rights reserved. -Copyright (c) 2012-2019 fsnotify Authors. All rights reserved. +Copyright © 2012 The Go Authors. All rights reserved. +Copyright © fsnotify Authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. +* Neither the name of Google Inc. nor the names of its contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/fsnotify/fsnotify/README.md b/vendor/github.com/fsnotify/fsnotify/README.md index 0731c5ef8..d4e6080fe 100644 --- a/vendor/github.com/fsnotify/fsnotify/README.md +++ b/vendor/github.com/fsnotify/fsnotify/README.md @@ -1,120 +1,161 @@ -# File system notifications for Go +fsnotify is a Go library to provide cross-platform filesystem notifications on +Windows, Linux, macOS, and BSD systems. -[![Go Reference](https://pkg.go.dev/badge/github.com/fsnotify/fsnotify.svg)](https://pkg.go.dev/github.com/fsnotify/fsnotify) [![Go Report Card](https://goreportcard.com/badge/github.com/fsnotify/fsnotify)](https://goreportcard.com/report/github.com/fsnotify/fsnotify) [![Maintainers Wanted](https://img.shields.io/badge/maintainers-wanted-red.svg)](https://github.com/fsnotify/fsnotify/issues/413) +Go 1.16 or newer is required; the full documentation is at +https://pkg.go.dev/github.com/fsnotify/fsnotify -fsnotify utilizes [`golang.org/x/sys`](https://pkg.go.dev/golang.org/x/sys) rather than [`syscall`](https://pkg.go.dev/syscall) from the standard library. +**It's best to read the documentation at pkg.go.dev, as it's pinned to the last +released version, whereas this README is for the last development version which +may include additions/changes.** -Cross platform: Windows, Linux, BSD and macOS. +--- -| Adapter | OS | Status | -| --------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| inotify | Linux 2.6.27 or later, Android\* | Supported | -| kqueue | BSD, macOS, iOS\* | Supported | -| ReadDirectoryChangesW | Windows | Supported | -| FSEvents | macOS | [Planned](https://github.com/fsnotify/fsnotify/issues/11) | -| FEN | Solaris 11 | [In Progress](https://github.com/fsnotify/fsnotify/pull/371) | -| fanotify | Linux 2.6.37+ | [Maybe](https://github.com/fsnotify/fsnotify/issues/114) | -| USN Journals | Windows | [Maybe](https://github.com/fsnotify/fsnotify/issues/53) | -| Polling | *All* | [Maybe](https://github.com/fsnotify/fsnotify/issues/9) | +Platform support: -\* Android and iOS are untested. +| Adapter | OS | Status | +| --------------------- | ---------------| -------------------------------------------------------------| +| inotify | Linux 2.6.32+ | Supported | +| kqueue | BSD, macOS | Supported | +| ReadDirectoryChangesW | Windows | Supported | +| FSEvents | macOS | [Planned](https://github.com/fsnotify/fsnotify/issues/11) | +| FEN | Solaris 11 | [In Progress](https://github.com/fsnotify/fsnotify/pull/371) | +| fanotify | Linux 5.9+ | [Maybe](https://github.com/fsnotify/fsnotify/issues/114) | +| USN Journals | Windows | [Maybe](https://github.com/fsnotify/fsnotify/issues/53) | +| Polling | *All* | [Maybe](https://github.com/fsnotify/fsnotify/issues/9) | -Please see [the documentation](https://pkg.go.dev/github.com/fsnotify/fsnotify) and consult the [FAQ](#faq) for usage information. +Linux and macOS should include Android and iOS, but these are currently untested. -## API stability - -fsnotify is a fork of [howeyc/fsnotify](https://github.com/howeyc/fsnotify) with a new API as of v1.0. The API is based on [this design document](http://goo.gl/MrYxyA). - -All [releases](https://github.com/fsnotify/fsnotify/releases) are tagged based on [Semantic Versioning](http://semver.org/). - -## Usage +Usage +----- +A basic example: ```go package main import ( - "log" + "log" - "github.com/fsnotify/fsnotify" + "github.com/fsnotify/fsnotify" ) func main() { - watcher, err := fsnotify.NewWatcher() - if err != nil { - log.Fatal(err) - } - defer watcher.Close() - - done := make(chan bool) - go func() { - for { - select { - case event, ok := <-watcher.Events: - if !ok { - return - } - log.Println("event:", event) - if event.Op&fsnotify.Write == fsnotify.Write { - log.Println("modified file:", event.Name) - } - case err, ok := <-watcher.Errors: - if !ok { - return - } - log.Println("error:", err) - } - } - }() - - err = watcher.Add("/tmp/foo") - if err != nil { - log.Fatal(err) - } - <-done + // Create new watcher. + watcher, err := fsnotify.NewWatcher() + if err != nil { + log.Fatal(err) + } + defer watcher.Close() + + // Start listening for events. + go func() { + for { + select { + case event, ok := <-watcher.Events: + if !ok { + return + } + log.Println("event:", event) + if event.Has(fsnotify.Write) { + log.Println("modified file:", event.Name) + } + case err, ok := <-watcher.Errors: + if !ok { + return + } + log.Println("error:", err) + } + } + }() + + // Add a path. + err = watcher.Add("/tmp") + if err != nil { + log.Fatal(err) + } + + // Block main goroutine forever. + <-make(chan struct{}) } ``` -## Contributing +Some more examples can be found in [cmd/fsnotify](cmd/fsnotify), which can be +run with: -Please refer to [CONTRIBUTING][] before opening an issue or pull request. + % go run ./cmd/fsnotify -## FAQ +FAQ +--- +### Will a file still be watched when it's moved to another directory? +No, not unless you are watching the location it was moved to. -**When a file is moved to another directory is it still being watched?** +### Are subdirectories watched too? +No, you must add watches for any directory you want to watch (a recursive +watcher is on the roadmap: [#18]). -No (it shouldn't be, unless you are watching where it was moved to). +[#18]: https://github.com/fsnotify/fsnotify/issues/18 -**When I watch a directory, are all subdirectories watched as well?** +### Do I have to watch the Error and Event channels in a goroutine? +As of now, yes (you can read both channels in the same goroutine using `select`, +you don't need a separate goroutine for both channels; see the example). -No, you must add watches for any directory you want to watch (a recursive watcher is on the roadmap [#18][]). +### Why don't notifications work with NFS, SMB, FUSE, /proc, or /sys? +fsnotify requires support from underlying OS to work. The current NFS and SMB +protocols does not provide network level support for file notifications, and +neither do the /proc and /sys virtual filesystems. -**Do I have to watch the Error and Event channels in a separate goroutine?** +This could be fixed with a polling watcher ([#9]), but it's not yet implemented. -As of now, yes. Looking into making this single-thread friendly (see [howeyc #7][#7]) +[#9]: https://github.com/fsnotify/fsnotify/issues/9 -**Why am I receiving multiple events for the same file on OS X?** +Platform-specific notes +----------------------- +### Linux +When a file is removed a REMOVE event won't be emitted until all file +descriptors are closed; it will emit a CHMOD instead: -Spotlight indexing on OS X can result in multiple events (see [howeyc #62][#62]). A temporary workaround is to add your folder(s) to the *Spotlight Privacy settings* until we have a native FSEvents implementation (see [#11][]). + fp := os.Open("file") + os.Remove("file") // CHMOD + fp.Close() // REMOVE -**How many files can be watched at once?** +This is the event that inotify sends, so not much can be changed about this. -There are OS-specific limits as to how many watches can be created: -* Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error. -* BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error. +The `fs.inotify.max_user_watches` sysctl variable specifies the upper limit for +the number of watches per user, and `fs.inotify.max_user_instances` specifies +the maximum number of inotify instances per user. Every Watcher you create is an +"instance", and every path you add is a "watch". -**Why don't notifications work with NFS filesystems or filesystem in userspace (FUSE)?** +These are also exposed in `/proc` as `/proc/sys/fs/inotify/max_user_watches` and +`/proc/sys/fs/inotify/max_user_instances` -fsnotify requires support from underlying OS to work. The current NFS protocol does not provide network level support for file notifications. +To increase them you can use `sysctl` or write the value to proc file: -[#62]: https://github.com/howeyc/fsnotify/issues/62 -[#18]: https://github.com/fsnotify/fsnotify/issues/18 -[#11]: https://github.com/fsnotify/fsnotify/issues/11 -[#7]: https://github.com/howeyc/fsnotify/issues/7 + # The default values on Linux 5.18 + sysctl fs.inotify.max_user_watches=124983 + sysctl fs.inotify.max_user_instances=128 + +To make the changes persist on reboot edit `/etc/sysctl.conf` or +`/usr/lib/sysctl.d/50-default.conf` (details differ per Linux distro; check your +distro's documentation): + + fs.inotify.max_user_watches=124983 + fs.inotify.max_user_instances=128 -[contributing]: https://github.com/fsnotify/fsnotify/blob/master/CONTRIBUTING.md +Reaching the limit will result in a "no space left on device" or "too many open +files" error. -## Related Projects +### kqueue (macOS, all BSD systems) +kqueue requires opening a file descriptor for every file that's being watched; +so if you're watching a directory with five files then that's six file +descriptors. You will run in to your system's "max open files" limit faster on +these platforms. -* [notify](https://github.com/rjeczalik/notify) -* [fsevents](https://github.com/fsnotify/fsevents) +The sysctl variables `kern.maxfiles` and `kern.maxfilesperproc` can be used to +control the maximum number of open files. +### macOS +Spotlight indexing on macOS can result in multiple events (see [#15]). A temporary +workaround is to add your folder(s) to the *Spotlight Privacy settings* until we +have a native FSEvents implementation (see [#11]). + +[#11]: https://github.com/fsnotify/fsnotify/issues/11 +[#15]: https://github.com/fsnotify/fsnotify/issues/15 diff --git a/vendor/github.com/fsnotify/fsnotify/backend_fen.go b/vendor/github.com/fsnotify/fsnotify/backend_fen.go new file mode 100644 index 000000000..1a95ad8e7 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_fen.go @@ -0,0 +1,162 @@ +//go:build solaris +// +build solaris + +package fsnotify + +import ( + "errors" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # macOS notes +// +// Spotlight indexing on macOS can result in multiple events (see [#15]). A +// temporary workaround is to add your folder(s) to the "Spotlight Privacy +// Settings" until we have a native FSEvents implementation (see [#11]). +// +// [#11]: https://github.com/fsnotify/fsnotify/issues/11 +// [#15]: https://github.com/fsnotify/fsnotify/issues/15 +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, so you + // probably want to wait until you've stopped receiving + // them (see the dedup example in cmd/fsnotify). + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // and on kqueue when a file is truncated. On Windows + // it's never sent. + Events chan Event + + // Errors sends any errors. + Errors chan error +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return nil, errors.New("FEN based watcher not yet supported for fsnotify\n") +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + return nil +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; attempting to watch it more than once will +// return an error. Paths that do not yet exist on the filesystem cannot be +// added. A watch will be automatically removed if the path is deleted. +// +// A path will remain watched if it gets renamed to somewhere else on the same +// filesystem, but the monitor will get removed if the path gets deleted and +// re-created, or if it's moved to a different filesystem. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many tools update files atomically. Instead of "just" writing +// to the file a temporary file will be written to first, and if successful the +// temporary file is moved to to destination removing the original, or some +// variant thereof. The watcher on the original file is now lost, as it no +// longer exists. +// +// Instead, watch the parent directory and use Event.Name to filter out files +// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. +func (w *Watcher) Add(name string) error { + return nil +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +func (w *Watcher) Remove(name string) error { + return nil +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_inotify.go b/vendor/github.com/fsnotify/fsnotify/backend_inotify.go new file mode 100644 index 000000000..54c77fbb0 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_inotify.go @@ -0,0 +1,459 @@ +//go:build linux +// +build linux + +package fsnotify + +import ( + "errors" + "fmt" + "io" + "os" + "path/filepath" + "strings" + "sync" + "unsafe" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # macOS notes +// +// Spotlight indexing on macOS can result in multiple events (see [#15]). A +// temporary workaround is to add your folder(s) to the "Spotlight Privacy +// Settings" until we have a native FSEvents implementation (see [#11]). +// +// [#11]: https://github.com/fsnotify/fsnotify/issues/11 +// [#15]: https://github.com/fsnotify/fsnotify/issues/15 +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, so you + // probably want to wait until you've stopped receiving + // them (see the dedup example in cmd/fsnotify). + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // and on kqueue when a file is truncated. On Windows + // it's never sent. + Events chan Event + + // Errors sends any errors. + Errors chan error + + // Store fd here as os.File.Read() will no longer return on close after + // calling Fd(). See: https://github.com/golang/go/issues/26439 + fd int + mu sync.Mutex // Map access + inotifyFile *os.File + watches map[string]*watch // Map of inotify watches (key: path) + paths map[int]string // Map of watched paths (key: watch descriptor) + done chan struct{} // Channel for sending a "quit message" to the reader goroutine + doneResp chan struct{} // Channel to respond to Close +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + // Create inotify fd + // Need to set the FD to nonblocking mode in order for SetDeadline methods to work + // Otherwise, blocking i/o operations won't terminate on close + fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC | unix.IN_NONBLOCK) + if fd == -1 { + return nil, errno + } + + w := &Watcher{ + fd: fd, + inotifyFile: os.NewFile(uintptr(fd), ""), + watches: make(map[string]*watch), + paths: make(map[int]string), + Events: make(chan Event), + Errors: make(chan error), + done: make(chan struct{}), + doneResp: make(chan struct{}), + } + + go w.readEvents() + return w, nil +} + +// Returns true if the event was sent, or false if watcher is closed. +func (w *Watcher) sendEvent(e Event) bool { + select { + case w.Events <- e: + return true + case <-w.done: + } + return false +} + +// Returns true if the error was sent, or false if watcher is closed. +func (w *Watcher) sendError(err error) bool { + select { + case w.Errors <- err: + return true + case <-w.done: + return false + } +} + +func (w *Watcher) isClosed() bool { + select { + case <-w.done: + return true + default: + return false + } +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + w.mu.Lock() + if w.isClosed() { + w.mu.Unlock() + return nil + } + + // Send 'close' signal to goroutine, and set the Watcher to closed. + close(w.done) + w.mu.Unlock() + + // Causes any blocking reads to return with an error, provided the file + // still supports deadline operations. + err := w.inotifyFile.Close() + if err != nil { + return err + } + + // Wait for goroutine to close + <-w.doneResp + + return nil +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; attempting to watch it more than once will +// return an error. Paths that do not yet exist on the filesystem cannot be +// added. A watch will be automatically removed if the path is deleted. +// +// A path will remain watched if it gets renamed to somewhere else on the same +// filesystem, but the monitor will get removed if the path gets deleted and +// re-created, or if it's moved to a different filesystem. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many tools update files atomically. Instead of "just" writing +// to the file a temporary file will be written to first, and if successful the +// temporary file is moved to to destination removing the original, or some +// variant thereof. The watcher on the original file is now lost, as it no +// longer exists. +// +// Instead, watch the parent directory and use Event.Name to filter out files +// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. +func (w *Watcher) Add(name string) error { + name = filepath.Clean(name) + if w.isClosed() { + return errors.New("inotify instance already closed") + } + + var flags uint32 = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | + unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | + unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF + + w.mu.Lock() + defer w.mu.Unlock() + watchEntry := w.watches[name] + if watchEntry != nil { + flags |= watchEntry.flags | unix.IN_MASK_ADD + } + wd, errno := unix.InotifyAddWatch(w.fd, name, flags) + if wd == -1 { + return errno + } + + if watchEntry == nil { + w.watches[name] = &watch{wd: uint32(wd), flags: flags} + w.paths[wd] = name + } else { + watchEntry.wd = uint32(wd) + watchEntry.flags = flags + } + + return nil +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +func (w *Watcher) Remove(name string) error { + name = filepath.Clean(name) + + // Fetch the watch. + w.mu.Lock() + defer w.mu.Unlock() + watch, ok := w.watches[name] + + // Remove it from inotify. + if !ok { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) + } + + // We successfully removed the watch if InotifyRmWatch doesn't return an + // error, we need to clean up our internal state to ensure it matches + // inotify's kernel state. + delete(w.paths, int(watch.wd)) + delete(w.watches, name) + + // inotify_rm_watch will return EINVAL if the file has been deleted; + // the inotify will already have been removed. + // watches and pathes are deleted in ignoreLinux() implicitly and asynchronously + // by calling inotify_rm_watch() below. e.g. readEvents() goroutine receives IN_IGNORE + // so that EINVAL means that the wd is being rm_watch()ed or its file removed + // by another thread and we have not received IN_IGNORE event. + success, errno := unix.InotifyRmWatch(w.fd, watch.wd) + if success == -1 { + // TODO: Perhaps it's not helpful to return an error here in every case; + // The only two possible errors are: + // + // - EBADF, which happens when w.fd is not a valid file descriptor + // of any kind. + // - EINVAL, which is when fd is not an inotify descriptor or wd + // is not a valid watch descriptor. Watch descriptors are + // invalidated when they are removed explicitly or implicitly; + // explicitly by inotify_rm_watch, implicitly when the file they + // are watching is deleted. + return errno + } + + return nil +} + +// WatchList returns all paths added with [Add] (and are not yet removed). +func (w *Watcher) WatchList() []string { + w.mu.Lock() + defer w.mu.Unlock() + + entries := make([]string, 0, len(w.watches)) + for pathname := range w.watches { + entries = append(entries, pathname) + } + + return entries +} + +type watch struct { + wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) + flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) +} + +// readEvents reads from the inotify file descriptor, converts the +// received events into Event objects and sends them via the Events channel +func (w *Watcher) readEvents() { + defer func() { + close(w.doneResp) + close(w.Errors) + close(w.Events) + }() + + var ( + buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events + errno error // Syscall errno + ) + for { + // See if we have been closed. + if w.isClosed() { + return + } + + n, err := w.inotifyFile.Read(buf[:]) + switch { + case errors.Unwrap(err) == os.ErrClosed: + return + case err != nil: + if !w.sendError(err) { + return + } + continue + } + + if n < unix.SizeofInotifyEvent { + var err error + if n == 0 { + // If EOF is received. This should really never happen. + err = io.EOF + } else if n < 0 { + // If an error occurred while reading. + err = errno + } else { + // Read was too short. + err = errors.New("notify: short read in readEvents()") + } + if !w.sendError(err) { + return + } + continue + } + + var offset uint32 + // We don't know how many events we just read into the buffer + // While the offset points to at least one whole event... + for offset <= uint32(n-unix.SizeofInotifyEvent) { + var ( + // Point "raw" to the event in the buffer + raw = (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) + mask = uint32(raw.Mask) + nameLen = uint32(raw.Len) + ) + + if mask&unix.IN_Q_OVERFLOW != 0 { + if !w.sendError(ErrEventOverflow) { + return + } + } + + // If the event happened to the watched directory or the watched file, the kernel + // doesn't append the filename to the event, but we would like to always fill the + // the "Name" field with a valid filename. We retrieve the path of the watch from + // the "paths" map. + w.mu.Lock() + name, ok := w.paths[int(raw.Wd)] + // IN_DELETE_SELF occurs when the file/directory being watched is removed. + // This is a sign to clean up the maps, otherwise we are no longer in sync + // with the inotify kernel state which has already deleted the watch + // automatically. + if ok && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { + delete(w.paths, int(raw.Wd)) + delete(w.watches, name) + } + w.mu.Unlock() + + if nameLen > 0 { + // Point "bytes" at the first byte of the filename + bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent]))[:nameLen:nameLen] + // The filename is padded with NULL bytes. TrimRight() gets rid of those. + name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") + } + + event := w.newEvent(name, mask) + + // Send the events that are not ignored on the events channel + if mask&unix.IN_IGNORED == 0 { + if !w.sendEvent(event) { + return + } + } + + // Move to the next event in the buffer + offset += unix.SizeofInotifyEvent + nameLen + } + } +} + +// newEvent returns an platform-independent Event based on an inotify mask. +func (w *Watcher) newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { + e.Op |= Create + } + if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { + e.Op |= Remove + } + if mask&unix.IN_MODIFY == unix.IN_MODIFY { + e.Op |= Write + } + if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { + e.Op |= Rename + } + if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { + e.Op |= Chmod + } + return e +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go b/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go new file mode 100644 index 000000000..29087469b --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go @@ -0,0 +1,707 @@ +//go:build freebsd || openbsd || netbsd || dragonfly || darwin +// +build freebsd openbsd netbsd dragonfly darwin + +package fsnotify + +import ( + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" + "sync" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # macOS notes +// +// Spotlight indexing on macOS can result in multiple events (see [#15]). A +// temporary workaround is to add your folder(s) to the "Spotlight Privacy +// Settings" until we have a native FSEvents implementation (see [#11]). +// +// [#11]: https://github.com/fsnotify/fsnotify/issues/11 +// [#15]: https://github.com/fsnotify/fsnotify/issues/15 +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, so you + // probably want to wait until you've stopped receiving + // them (see the dedup example in cmd/fsnotify). + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // and on kqueue when a file is truncated. On Windows + // it's never sent. + Events chan Event + + // Errors sends any errors. + Errors chan error + + done chan struct{} + kq int // File descriptor (as returned by the kqueue() syscall). + closepipe [2]int // Pipe used for closing. + mu sync.Mutex // Protects access to watcher data + watches map[string]int // Watched file descriptors (key: path). + watchesByDir map[string]map[int]struct{} // Watched file descriptors indexed by the parent directory (key: dirname(path)). + userWatches map[string]struct{} // Watches added with Watcher.Add() + dirFlags map[string]uint32 // Watched directories to fflags used in kqueue. + paths map[int]pathInfo // File descriptors to path names for processing kqueue events. + fileExists map[string]struct{} // Keep track of if we know this file exists (to stop duplicate create events). + isClosed bool // Set to true when Close() is first called +} + +type pathInfo struct { + name string + isDir bool +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + kq, closepipe, err := newKqueue() + if err != nil { + return nil, err + } + + w := &Watcher{ + kq: kq, + closepipe: closepipe, + watches: make(map[string]int), + watchesByDir: make(map[string]map[int]struct{}), + dirFlags: make(map[string]uint32), + paths: make(map[int]pathInfo), + fileExists: make(map[string]struct{}), + userWatches: make(map[string]struct{}), + Events: make(chan Event), + Errors: make(chan error), + done: make(chan struct{}), + } + + go w.readEvents() + return w, nil +} + +// newKqueue creates a new kernel event queue and returns a descriptor. +// +// This registers a new event on closepipe, which will trigger an event when +// it's closed. This way we can use kevent() without timeout/polling; without +// the closepipe, it would block forever and we wouldn't be able to stop it at +// all. +func newKqueue() (kq int, closepipe [2]int, err error) { + kq, err = unix.Kqueue() + if kq == -1 { + return kq, closepipe, err + } + + // Register the close pipe. + err = unix.Pipe(closepipe[:]) + if err != nil { + unix.Close(kq) + return kq, closepipe, err + } + + // Register changes to listen on the closepipe. + changes := make([]unix.Kevent_t, 1) + // SetKevent converts int to the platform-specific types. + unix.SetKevent(&changes[0], closepipe[0], unix.EVFILT_READ, + unix.EV_ADD|unix.EV_ENABLE|unix.EV_ONESHOT) + + ok, err := unix.Kevent(kq, changes, nil, nil) + if ok == -1 { + unix.Close(kq) + unix.Close(closepipe[0]) + unix.Close(closepipe[1]) + return kq, closepipe, err + } + return kq, closepipe, nil +} + +// Returns true if the event was sent, or false if watcher is closed. +func (w *Watcher) sendEvent(e Event) bool { + select { + case w.Events <- e: + return true + case <-w.done: + } + return false +} + +// Returns true if the error was sent, or false if watcher is closed. +func (w *Watcher) sendError(err error) bool { + select { + case w.Errors <- err: + return true + case <-w.done: + } + return false +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return nil + } + w.isClosed = true + + // copy paths to remove while locked + pathsToRemove := make([]string, 0, len(w.watches)) + for name := range w.watches { + pathsToRemove = append(pathsToRemove, name) + } + w.mu.Unlock() // Unlock before calling Remove, which also locks + for _, name := range pathsToRemove { + w.Remove(name) + } + + // Send "quit" message to the reader goroutine. + unix.Close(w.closepipe[1]) + close(w.done) + + return nil +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; attempting to watch it more than once will +// return an error. Paths that do not yet exist on the filesystem cannot be +// added. A watch will be automatically removed if the path is deleted. +// +// A path will remain watched if it gets renamed to somewhere else on the same +// filesystem, but the monitor will get removed if the path gets deleted and +// re-created, or if it's moved to a different filesystem. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many tools update files atomically. Instead of "just" writing +// to the file a temporary file will be written to first, and if successful the +// temporary file is moved to to destination removing the original, or some +// variant thereof. The watcher on the original file is now lost, as it no +// longer exists. +// +// Instead, watch the parent directory and use Event.Name to filter out files +// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. +func (w *Watcher) Add(name string) error { + w.mu.Lock() + w.userWatches[name] = struct{}{} + w.mu.Unlock() + _, err := w.addWatch(name, noteAllEvents) + return err +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +func (w *Watcher) Remove(name string) error { + name = filepath.Clean(name) + w.mu.Lock() + watchfd, ok := w.watches[name] + w.mu.Unlock() + if !ok { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) + } + + err := w.register([]int{watchfd}, unix.EV_DELETE, 0) + if err != nil { + return err + } + + unix.Close(watchfd) + + w.mu.Lock() + isDir := w.paths[watchfd].isDir + delete(w.watches, name) + delete(w.userWatches, name) + + parentName := filepath.Dir(name) + delete(w.watchesByDir[parentName], watchfd) + + if len(w.watchesByDir[parentName]) == 0 { + delete(w.watchesByDir, parentName) + } + + delete(w.paths, watchfd) + delete(w.dirFlags, name) + delete(w.fileExists, name) + w.mu.Unlock() + + // Find all watched paths that are in this directory that are not external. + if isDir { + var pathsToRemove []string + w.mu.Lock() + for fd := range w.watchesByDir[name] { + path := w.paths[fd] + if _, ok := w.userWatches[path.name]; !ok { + pathsToRemove = append(pathsToRemove, path.name) + } + } + w.mu.Unlock() + for _, name := range pathsToRemove { + // Since these are internal, not much sense in propagating error + // to the user, as that will just confuse them with an error about + // a path they did not explicitly watch themselves. + w.Remove(name) + } + } + + return nil +} + +// WatchList returns all paths added with [Add] (and are not yet removed). +func (w *Watcher) WatchList() []string { + w.mu.Lock() + defer w.mu.Unlock() + + entries := make([]string, 0, len(w.userWatches)) + for pathname := range w.userWatches { + entries = append(entries, pathname) + } + + return entries +} + +// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) +const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME + +// addWatch adds name to the watched file set. +// The flags are interpreted as described in kevent(2). +// Returns the real path to the file which was added, if any, which may be different from the one passed in the case of symlinks. +func (w *Watcher) addWatch(name string, flags uint32) (string, error) { + var isDir bool + // Make ./name and name equivalent + name = filepath.Clean(name) + + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return "", errors.New("kevent instance already closed") + } + watchfd, alreadyWatching := w.watches[name] + // We already have a watch, but we can still override flags. + if alreadyWatching { + isDir = w.paths[watchfd].isDir + } + w.mu.Unlock() + + if !alreadyWatching { + fi, err := os.Lstat(name) + if err != nil { + return "", err + } + + // Don't watch sockets or named pipes + if (fi.Mode()&os.ModeSocket == os.ModeSocket) || (fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe) { + return "", nil + } + + // Follow Symlinks + // + // Linux can add unresolvable symlinks to the watch list without issue, + // and Windows can't do symlinks period. To maintain consistency, we + // will act like everything is fine if the link can't be resolved. + // There will simply be no file events for broken symlinks. Hence the + // returns of nil on errors. + if fi.Mode()&os.ModeSymlink == os.ModeSymlink { + name, err = filepath.EvalSymlinks(name) + if err != nil { + return "", nil + } + + w.mu.Lock() + _, alreadyWatching = w.watches[name] + w.mu.Unlock() + + if alreadyWatching { + return name, nil + } + + fi, err = os.Lstat(name) + if err != nil { + return "", nil + } + } + + // Retry on EINTR; open() can return EINTR in practice on macOS. + // See #354, and go issues 11180 and 39237. + for { + watchfd, err = unix.Open(name, openMode, 0) + if err == nil { + break + } + if errors.Is(err, unix.EINTR) { + continue + } + + return "", err + } + + isDir = fi.IsDir() + } + + err := w.register([]int{watchfd}, unix.EV_ADD|unix.EV_CLEAR|unix.EV_ENABLE, flags) + if err != nil { + unix.Close(watchfd) + return "", err + } + + if !alreadyWatching { + w.mu.Lock() + parentName := filepath.Dir(name) + w.watches[name] = watchfd + + watchesByDir, ok := w.watchesByDir[parentName] + if !ok { + watchesByDir = make(map[int]struct{}, 1) + w.watchesByDir[parentName] = watchesByDir + } + watchesByDir[watchfd] = struct{}{} + + w.paths[watchfd] = pathInfo{name: name, isDir: isDir} + w.mu.Unlock() + } + + if isDir { + // Watch the directory if it has not been watched before, + // or if it was watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) + w.mu.Lock() + + watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && + (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) + // Store flags so this watch can be updated later + w.dirFlags[name] = flags + w.mu.Unlock() + + if watchDir { + if err := w.watchDirectoryFiles(name); err != nil { + return "", err + } + } + } + return name, nil +} + +// readEvents reads from kqueue and converts the received kevents into +// Event values that it sends down the Events channel. +func (w *Watcher) readEvents() { + defer func() { + err := unix.Close(w.kq) + if err != nil { + w.Errors <- err + } + unix.Close(w.closepipe[0]) + close(w.Events) + close(w.Errors) + }() + + eventBuffer := make([]unix.Kevent_t, 10) + for closed := false; !closed; { + kevents, err := w.read(eventBuffer) + // EINTR is okay, the syscall was interrupted before timeout expired. + if err != nil && err != unix.EINTR { + if !w.sendError(fmt.Errorf("fsnotify.readEvents: %w", err)) { + closed = true + } + continue + } + + // Flush the events we received to the Events channel + for _, kevent := range kevents { + var ( + watchfd = int(kevent.Ident) + mask = uint32(kevent.Fflags) + ) + + // Shut down the loop when the pipe is closed, but only after all + // other events have been processed. + if watchfd == w.closepipe[0] { + closed = true + continue + } + + w.mu.Lock() + path := w.paths[watchfd] + w.mu.Unlock() + + event := w.newEvent(path.name, mask) + + if path.isDir && !event.Has(Remove) { + // Double check to make sure the directory exists. This can + // happen when we do a rm -fr on a recursively watched folders + // and we receive a modification event first but the folder has + // been deleted and later receive the delete event. + if _, err := os.Lstat(event.Name); os.IsNotExist(err) { + event.Op |= Remove + } + } + + if event.Has(Rename) || event.Has(Remove) { + w.Remove(event.Name) + w.mu.Lock() + delete(w.fileExists, event.Name) + w.mu.Unlock() + } + + if path.isDir && event.Has(Write) && !event.Has(Remove) { + w.sendDirectoryChangeEvents(event.Name) + } else { + if !w.sendEvent(event) { + closed = true + continue + } + } + + if event.Has(Remove) { + // Look for a file that may have overwritten this. + // For example, mv f1 f2 will delete f2, then create f2. + if path.isDir { + fileDir := filepath.Clean(event.Name) + w.mu.Lock() + _, found := w.watches[fileDir] + w.mu.Unlock() + if found { + // make sure the directory exists before we watch for changes. When we + // do a recursive watch and perform rm -fr, the parent directory might + // have gone missing, ignore the missing directory and let the + // upcoming delete event remove the watch from the parent directory. + if _, err := os.Lstat(fileDir); err == nil { + w.sendDirectoryChangeEvents(fileDir) + } + } + } else { + filePath := filepath.Clean(event.Name) + if fileInfo, err := os.Lstat(filePath); err == nil { + w.sendFileCreatedEventIfNew(filePath, fileInfo) + } + } + } + } + } +} + +// newEvent returns an platform-independent Event based on kqueue Fflags. +func (w *Watcher) newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { + e.Op |= Remove + } + if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { + e.Op |= Write + } + if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { + e.Op |= Rename + } + if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { + e.Op |= Chmod + } + return e +} + +// watchDirectoryFiles to mimic inotify when adding a watch on a directory +func (w *Watcher) watchDirectoryFiles(dirPath string) error { + // Get all files + files, err := ioutil.ReadDir(dirPath) + if err != nil { + return err + } + + for _, fileInfo := range files { + path := filepath.Join(dirPath, fileInfo.Name()) + + cleanPath, err := w.internalWatch(path, fileInfo) + if err != nil { + // No permission to read the file; that's not a problem: just skip. + // But do add it to w.fileExists to prevent it from being picked up + // as a "new" file later (it still shows up in the directory + // listing). + switch { + case errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM): + cleanPath = filepath.Clean(path) + default: + return fmt.Errorf("%q: %w", filepath.Join(dirPath, fileInfo.Name()), err) + } + } + + w.mu.Lock() + w.fileExists[cleanPath] = struct{}{} + w.mu.Unlock() + } + + return nil +} + +// Search the directory for new files and send an event for them. +// +// This functionality is to have the BSD watcher match the inotify, which sends +// a create event for files created in a watched directory. +func (w *Watcher) sendDirectoryChangeEvents(dir string) { + // Get all files + files, err := ioutil.ReadDir(dir) + if err != nil { + if !w.sendError(fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err)) { + return + } + } + + // Search for new files + for _, fi := range files { + err := w.sendFileCreatedEventIfNew(filepath.Join(dir, fi.Name()), fi) + if err != nil { + return + } + } +} + +// sendFileCreatedEvent sends a create event if the file isn't already being tracked. +func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fileInfo os.FileInfo) (err error) { + w.mu.Lock() + _, doesExist := w.fileExists[filePath] + w.mu.Unlock() + if !doesExist { + if !w.sendEvent(Event{Name: filePath, Op: Create}) { + return + } + } + + // like watchDirectoryFiles (but without doing another ReadDir) + filePath, err = w.internalWatch(filePath, fileInfo) + if err != nil { + return err + } + + w.mu.Lock() + w.fileExists[filePath] = struct{}{} + w.mu.Unlock() + + return nil +} + +func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) (string, error) { + if fileInfo.IsDir() { + // mimic Linux providing delete events for subdirectories + // but preserve the flags used if currently watching subdirectory + w.mu.Lock() + flags := w.dirFlags[name] + w.mu.Unlock() + + flags |= unix.NOTE_DELETE | unix.NOTE_RENAME + return w.addWatch(name, flags) + } + + // watch file to mimic Linux inotify + return w.addWatch(name, noteAllEvents) +} + +// Register events with the queue. +func (w *Watcher) register(fds []int, flags int, fflags uint32) error { + changes := make([]unix.Kevent_t, len(fds)) + for i, fd := range fds { + // SetKevent converts int to the platform-specific types. + unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) + changes[i].Fflags = fflags + } + + // Register the events. + success, err := unix.Kevent(w.kq, changes, nil, nil) + if success == -1 { + return err + } + return nil +} + +// read retrieves pending events, or waits until an event occurs. +func (w *Watcher) read(events []unix.Kevent_t) ([]unix.Kevent_t, error) { + n, err := unix.Kevent(w.kq, nil, events, nil) + if err != nil { + return nil, err + } + return events[0:n], nil +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_other.go b/vendor/github.com/fsnotify/fsnotify/backend_other.go new file mode 100644 index 000000000..a9bb1c3c4 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_other.go @@ -0,0 +1,66 @@ +//go:build !darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows +// +build !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows + +package fsnotify + +import ( + "fmt" + "runtime" +) + +// Watcher watches a set of files, delivering events to a channel. +type Watcher struct{} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return nil, fmt.Errorf("fsnotify not supported on %s", runtime.GOOS) +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + return nil +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; attempting to watch it more than once will +// return an error. Paths that do not yet exist on the filesystem cannot be +// added. A watch will be automatically removed if the path is deleted. +// +// A path will remain watched if it gets renamed to somewhere else on the same +// filesystem, but the monitor will get removed if the path gets deleted and +// re-created, or if it's moved to a different filesystem. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many tools update files atomically. Instead of "just" writing +// to the file a temporary file will be written to first, and if successful the +// temporary file is moved to to destination removing the original, or some +// variant thereof. The watcher on the original file is now lost, as it no +// longer exists. +// +// Instead, watch the parent directory and use Event.Name to filter out files +// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. +func (w *Watcher) Add(name string) error { + return nil +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +func (w *Watcher) Remove(name string) error { + return nil +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_windows.go b/vendor/github.com/fsnotify/fsnotify/backend_windows.go new file mode 100644 index 000000000..ae392867c --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_windows.go @@ -0,0 +1,746 @@ +//go:build windows +// +build windows + +package fsnotify + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "reflect" + "runtime" + "strings" + "sync" + "unsafe" + + "golang.org/x/sys/windows" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # macOS notes +// +// Spotlight indexing on macOS can result in multiple events (see [#15]). A +// temporary workaround is to add your folder(s) to the "Spotlight Privacy +// Settings" until we have a native FSEvents implementation (see [#11]). +// +// [#11]: https://github.com/fsnotify/fsnotify/issues/11 +// [#15]: https://github.com/fsnotify/fsnotify/issues/15 +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, so you + // probably want to wait until you've stopped receiving + // them (see the dedup example in cmd/fsnotify). + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // and on kqueue when a file is truncated. On Windows + // it's never sent. + Events chan Event + + // Errors sends any errors. + Errors chan error + + port windows.Handle // Handle to completion port + input chan *input // Inputs to the reader are sent on this channel + quit chan chan<- error + + mu sync.Mutex // Protects access to watches, isClosed + watches watchMap // Map of watches (key: i-number) + isClosed bool // Set to true when Close() is first called +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + port, err := windows.CreateIoCompletionPort(windows.InvalidHandle, 0, 0, 0) + if err != nil { + return nil, os.NewSyscallError("CreateIoCompletionPort", err) + } + w := &Watcher{ + port: port, + watches: make(watchMap), + input: make(chan *input, 1), + Events: make(chan Event, 50), + Errors: make(chan error), + quit: make(chan chan<- error, 1), + } + go w.readEvents() + return w, nil +} + +func (w *Watcher) sendEvent(name string, mask uint64) bool { + if mask == 0 { + return false + } + + event := w.newEvent(name, uint32(mask)) + select { + case ch := <-w.quit: + w.quit <- ch + case w.Events <- event: + } + return true +} + +// Returns true if the error was sent, or false if watcher is closed. +func (w *Watcher) sendError(err error) bool { + select { + case w.Errors <- err: + return true + case <-w.quit: + } + return false +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return nil + } + w.isClosed = true + w.mu.Unlock() + + // Send "quit" message to the reader goroutine + ch := make(chan error) + w.quit <- ch + if err := w.wakeupReader(); err != nil { + return err + } + return <-ch +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; attempting to watch it more than once will +// return an error. Paths that do not yet exist on the filesystem cannot be +// added. A watch will be automatically removed if the path is deleted. +// +// A path will remain watched if it gets renamed to somewhere else on the same +// filesystem, but the monitor will get removed if the path gets deleted and +// re-created, or if it's moved to a different filesystem. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many tools update files atomically. Instead of "just" writing +// to the file a temporary file will be written to first, and if successful the +// temporary file is moved to to destination removing the original, or some +// variant thereof. The watcher on the original file is now lost, as it no +// longer exists. +// +// Instead, watch the parent directory and use Event.Name to filter out files +// you're not interested in. There is an example of this in [cmd/fsnotify/file.go]. +func (w *Watcher) Add(name string) error { + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return errors.New("watcher already closed") + } + w.mu.Unlock() + + in := &input{ + op: opAddWatch, + path: filepath.Clean(name), + flags: sysFSALLEVENTS, + reply: make(chan error), + } + w.input <- in + if err := w.wakeupReader(); err != nil { + return err + } + return <-in.reply +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +func (w *Watcher) Remove(name string) error { + in := &input{ + op: opRemoveWatch, + path: filepath.Clean(name), + reply: make(chan error), + } + w.input <- in + if err := w.wakeupReader(); err != nil { + return err + } + return <-in.reply +} + +// WatchList returns all paths added with [Add] (and are not yet removed). +func (w *Watcher) WatchList() []string { + w.mu.Lock() + defer w.mu.Unlock() + + entries := make([]string, 0, len(w.watches)) + for _, entry := range w.watches { + for _, watchEntry := range entry { + entries = append(entries, watchEntry.path) + } + } + + return entries +} + +// These options are from the old golang.org/x/exp/winfsnotify, where you could +// add various options to the watch. This has long since been removed. +// +// The "sys" in the name is misleading as they're not part of any "system". +// +// This should all be removed at some point, and just use windows.FILE_NOTIFY_* +const ( + sysFSALLEVENTS = 0xfff + sysFSATTRIB = 0x4 + sysFSCREATE = 0x100 + sysFSDELETE = 0x200 + sysFSDELETESELF = 0x400 + sysFSMODIFY = 0x2 + sysFSMOVE = 0xc0 + sysFSMOVEDFROM = 0x40 + sysFSMOVEDTO = 0x80 + sysFSMOVESELF = 0x800 + sysFSIGNORED = 0x8000 +) + +func (w *Watcher) newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { + e.Op |= Create + } + if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { + e.Op |= Remove + } + if mask&sysFSMODIFY == sysFSMODIFY { + e.Op |= Write + } + if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { + e.Op |= Rename + } + if mask&sysFSATTRIB == sysFSATTRIB { + e.Op |= Chmod + } + return e +} + +const ( + opAddWatch = iota + opRemoveWatch +) + +const ( + provisional uint64 = 1 << (32 + iota) +) + +type input struct { + op int + path string + flags uint32 + reply chan error +} + +type inode struct { + handle windows.Handle + volume uint32 + index uint64 +} + +type watch struct { + ov windows.Overlapped + ino *inode // i-number + path string // Directory path + mask uint64 // Directory itself is being watched with these notify flags + names map[string]uint64 // Map of names being watched and their notify flags + rename string // Remembers the old name while renaming a file + buf [65536]byte // 64K buffer +} + +type ( + indexMap map[uint64]*watch + watchMap map[uint32]indexMap +) + +func (w *Watcher) wakeupReader() error { + err := windows.PostQueuedCompletionStatus(w.port, 0, 0, nil) + if err != nil { + return os.NewSyscallError("PostQueuedCompletionStatus", err) + } + return nil +} + +func (w *Watcher) getDir(pathname string) (dir string, err error) { + attr, err := windows.GetFileAttributes(windows.StringToUTF16Ptr(pathname)) + if err != nil { + return "", os.NewSyscallError("GetFileAttributes", err) + } + if attr&windows.FILE_ATTRIBUTE_DIRECTORY != 0 { + dir = pathname + } else { + dir, _ = filepath.Split(pathname) + dir = filepath.Clean(dir) + } + return +} + +func (w *Watcher) getIno(path string) (ino *inode, err error) { + h, err := windows.CreateFile(windows.StringToUTF16Ptr(path), + windows.FILE_LIST_DIRECTORY, + windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE|windows.FILE_SHARE_DELETE, + nil, windows.OPEN_EXISTING, + windows.FILE_FLAG_BACKUP_SEMANTICS|windows.FILE_FLAG_OVERLAPPED, 0) + if err != nil { + return nil, os.NewSyscallError("CreateFile", err) + } + + var fi windows.ByHandleFileInformation + err = windows.GetFileInformationByHandle(h, &fi) + if err != nil { + windows.CloseHandle(h) + return nil, os.NewSyscallError("GetFileInformationByHandle", err) + } + ino = &inode{ + handle: h, + volume: fi.VolumeSerialNumber, + index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), + } + return ino, nil +} + +// Must run within the I/O thread. +func (m watchMap) get(ino *inode) *watch { + if i := m[ino.volume]; i != nil { + return i[ino.index] + } + return nil +} + +// Must run within the I/O thread. +func (m watchMap) set(ino *inode, watch *watch) { + i := m[ino.volume] + if i == nil { + i = make(indexMap) + m[ino.volume] = i + } + i[ino.index] = watch +} + +// Must run within the I/O thread. +func (w *Watcher) addWatch(pathname string, flags uint64) error { + dir, err := w.getDir(pathname) + if err != nil { + return err + } + + ino, err := w.getIno(dir) + if err != nil { + return err + } + w.mu.Lock() + watchEntry := w.watches.get(ino) + w.mu.Unlock() + if watchEntry == nil { + _, err := windows.CreateIoCompletionPort(ino.handle, w.port, 0, 0) + if err != nil { + windows.CloseHandle(ino.handle) + return os.NewSyscallError("CreateIoCompletionPort", err) + } + watchEntry = &watch{ + ino: ino, + path: dir, + names: make(map[string]uint64), + } + w.mu.Lock() + w.watches.set(ino, watchEntry) + w.mu.Unlock() + flags |= provisional + } else { + windows.CloseHandle(ino.handle) + } + if pathname == dir { + watchEntry.mask |= flags + } else { + watchEntry.names[filepath.Base(pathname)] |= flags + } + + err = w.startRead(watchEntry) + if err != nil { + return err + } + + if pathname == dir { + watchEntry.mask &= ^provisional + } else { + watchEntry.names[filepath.Base(pathname)] &= ^provisional + } + return nil +} + +// Must run within the I/O thread. +func (w *Watcher) remWatch(pathname string) error { + dir, err := w.getDir(pathname) + if err != nil { + return err + } + ino, err := w.getIno(dir) + if err != nil { + return err + } + + w.mu.Lock() + watch := w.watches.get(ino) + w.mu.Unlock() + + err = windows.CloseHandle(ino.handle) + if err != nil { + w.sendError(os.NewSyscallError("CloseHandle", err)) + } + if watch == nil { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, pathname) + } + if pathname == dir { + w.sendEvent(watch.path, watch.mask&sysFSIGNORED) + watch.mask = 0 + } else { + name := filepath.Base(pathname) + w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) + delete(watch.names, name) + } + + return w.startRead(watch) +} + +// Must run within the I/O thread. +func (w *Watcher) deleteWatch(watch *watch) { + for name, mask := range watch.names { + if mask&provisional == 0 { + w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) + } + delete(watch.names, name) + } + if watch.mask != 0 { + if watch.mask&provisional == 0 { + w.sendEvent(watch.path, watch.mask&sysFSIGNORED) + } + watch.mask = 0 + } +} + +// Must run within the I/O thread. +func (w *Watcher) startRead(watch *watch) error { + err := windows.CancelIo(watch.ino.handle) + if err != nil { + w.sendError(os.NewSyscallError("CancelIo", err)) + w.deleteWatch(watch) + } + mask := w.toWindowsFlags(watch.mask) + for _, m := range watch.names { + mask |= w.toWindowsFlags(m) + } + if mask == 0 { + err := windows.CloseHandle(watch.ino.handle) + if err != nil { + w.sendError(os.NewSyscallError("CloseHandle", err)) + } + w.mu.Lock() + delete(w.watches[watch.ino.volume], watch.ino.index) + w.mu.Unlock() + return nil + } + + rdErr := windows.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0], + uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0) + if rdErr != nil { + err := os.NewSyscallError("ReadDirectoryChanges", rdErr) + if rdErr == windows.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { + // Watched directory was probably removed + w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) + err = nil + } + w.deleteWatch(watch) + w.startRead(watch) + return err + } + return nil +} + +// readEvents reads from the I/O completion port, converts the +// received events into Event objects and sends them via the Events channel. +// Entry point to the I/O thread. +func (w *Watcher) readEvents() { + var ( + n uint32 + key uintptr + ov *windows.Overlapped + ) + runtime.LockOSThread() + + for { + qErr := windows.GetQueuedCompletionStatus(w.port, &n, &key, &ov, windows.INFINITE) + // This error is handled after the watch == nil check below. NOTE: this + // seems odd, note sure if it's correct. + + watch := (*watch)(unsafe.Pointer(ov)) + if watch == nil { + select { + case ch := <-w.quit: + w.mu.Lock() + var indexes []indexMap + for _, index := range w.watches { + indexes = append(indexes, index) + } + w.mu.Unlock() + for _, index := range indexes { + for _, watch := range index { + w.deleteWatch(watch) + w.startRead(watch) + } + } + + err := windows.CloseHandle(w.port) + if err != nil { + err = os.NewSyscallError("CloseHandle", err) + } + close(w.Events) + close(w.Errors) + ch <- err + return + case in := <-w.input: + switch in.op { + case opAddWatch: + in.reply <- w.addWatch(in.path, uint64(in.flags)) + case opRemoveWatch: + in.reply <- w.remWatch(in.path) + } + default: + } + continue + } + + switch qErr { + case windows.ERROR_MORE_DATA: + if watch == nil { + w.sendError(errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer")) + } else { + // The i/o succeeded but the buffer is full. + // In theory we should be building up a full packet. + // In practice we can get away with just carrying on. + n = uint32(unsafe.Sizeof(watch.buf)) + } + case windows.ERROR_ACCESS_DENIED: + // Watched directory was probably removed + w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) + w.deleteWatch(watch) + w.startRead(watch) + continue + case windows.ERROR_OPERATION_ABORTED: + // CancelIo was called on this handle + continue + default: + w.sendError(os.NewSyscallError("GetQueuedCompletionPort", qErr)) + continue + case nil: + } + + var offset uint32 + for { + if n == 0 { + w.sendError(errors.New("short read in readEvents()")) + break + } + + // Point "raw" to the event in the buffer + raw := (*windows.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) + + // Create a buf that is the size of the path name + size := int(raw.FileNameLength / 2) + var buf []uint16 + // TODO: Use unsafe.Slice in Go 1.17; https://stackoverflow.com/questions/51187973 + sh := (*reflect.SliceHeader)(unsafe.Pointer(&buf)) + sh.Data = uintptr(unsafe.Pointer(&raw.FileName)) + sh.Len = size + sh.Cap = size + name := windows.UTF16ToString(buf) + fullname := filepath.Join(watch.path, name) + + var mask uint64 + switch raw.Action { + case windows.FILE_ACTION_REMOVED: + mask = sysFSDELETESELF + case windows.FILE_ACTION_MODIFIED: + mask = sysFSMODIFY + case windows.FILE_ACTION_RENAMED_OLD_NAME: + watch.rename = name + case windows.FILE_ACTION_RENAMED_NEW_NAME: + // Update saved path of all sub-watches. + old := filepath.Join(watch.path, watch.rename) + w.mu.Lock() + for _, watchMap := range w.watches { + for _, ww := range watchMap { + if strings.HasPrefix(ww.path, old) { + ww.path = filepath.Join(fullname, strings.TrimPrefix(ww.path, old)) + } + } + } + w.mu.Unlock() + + if watch.names[watch.rename] != 0 { + watch.names[name] |= watch.names[watch.rename] + delete(watch.names, watch.rename) + mask = sysFSMOVESELF + } + } + + sendNameEvent := func() { + w.sendEvent(fullname, watch.names[name]&mask) + } + if raw.Action != windows.FILE_ACTION_RENAMED_NEW_NAME { + sendNameEvent() + } + if raw.Action == windows.FILE_ACTION_REMOVED { + w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) + delete(watch.names, name) + } + + w.sendEvent(fullname, watch.mask&w.toFSnotifyFlags(raw.Action)) + if raw.Action == windows.FILE_ACTION_RENAMED_NEW_NAME { + fullname = filepath.Join(watch.path, watch.rename) + sendNameEvent() + } + + // Move to the next event in the buffer + if raw.NextEntryOffset == 0 { + break + } + offset += raw.NextEntryOffset + + // Error! + if offset >= n { + w.sendError(errors.New( + "Windows system assumed buffer larger than it is, events have likely been missed.")) + break + } + } + + if err := w.startRead(watch); err != nil { + w.sendError(err) + } + } +} + +func (w *Watcher) toWindowsFlags(mask uint64) uint32 { + var m uint32 + if mask&sysFSMODIFY != 0 { + m |= windows.FILE_NOTIFY_CHANGE_LAST_WRITE + } + if mask&sysFSATTRIB != 0 { + m |= windows.FILE_NOTIFY_CHANGE_ATTRIBUTES + } + if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { + m |= windows.FILE_NOTIFY_CHANGE_FILE_NAME | windows.FILE_NOTIFY_CHANGE_DIR_NAME + } + return m +} + +func (w *Watcher) toFSnotifyFlags(action uint32) uint64 { + switch action { + case windows.FILE_ACTION_ADDED: + return sysFSCREATE + case windows.FILE_ACTION_REMOVED: + return sysFSDELETE + case windows.FILE_ACTION_MODIFIED: + return sysFSMODIFY + case windows.FILE_ACTION_RENAMED_OLD_NAME: + return sysFSMOVEDFROM + case windows.FILE_ACTION_RENAMED_NEW_NAME: + return sysFSMOVEDTO + } + return 0 +} diff --git a/vendor/github.com/fsnotify/fsnotify/fen.go b/vendor/github.com/fsnotify/fsnotify/fen.go deleted file mode 100644 index b3ac3d8f5..000000000 --- a/vendor/github.com/fsnotify/fsnotify/fen.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build solaris -// +build solaris - -package fsnotify - -import ( - "errors" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - return nil, errors.New("FEN based watcher not yet supported for fsnotify\n") -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - return nil -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - return nil -} diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/vendor/github.com/fsnotify/fsnotify/fsnotify.go index 0f4ee52e8..30a5bf0f0 100644 --- a/vendor/github.com/fsnotify/fsnotify/fsnotify.go +++ b/vendor/github.com/fsnotify/fsnotify/fsnotify.go @@ -1,29 +1,37 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - //go:build !plan9 // +build !plan9 -// Package fsnotify provides a platform-independent interface for file system notifications. +// Package fsnotify provides a cross-platform interface for file system +// notifications. package fsnotify import ( - "bytes" "errors" "fmt" + "strings" ) -// Event represents a single file system notification. +// Event represents a file system notification. type Event struct { - Name string // Relative path to the file or directory. - Op Op // File operation that triggered the event. + // Path to the file or directory. + // + // Paths are relative to the input; for example with Add("dir") the Name + // will be set to "dir/file" if you create that file, but if you use + // Add("/path/to/dir") it will be "/path/to/dir/file". + Name string + + // File operation that triggered the event. + // + // This is a bitmask and some systems may send multiple operations at once. + // Use the Event.Has() method instead of comparing with ==. + Op Op } // Op describes a set of file operations. type Op uint32 -// These are the generalized file operations that can trigger a notification. +// The operations fsnotify can trigger; see the documentation on [Watcher] for a +// full description, and check them with [Event.Has]. const ( Create Op = 1 << iota Write @@ -32,38 +40,42 @@ const ( Chmod ) -func (op Op) String() string { - // Use a buffer for efficient string concatenation - var buffer bytes.Buffer +// Common errors that can be reported by a watcher +var ( + ErrNonExistentWatch = errors.New("can't remove non-existent watcher") + ErrEventOverflow = errors.New("fsnotify queue overflow") +) - if op&Create == Create { - buffer.WriteString("|CREATE") +func (op Op) String() string { + var b strings.Builder + if op.Has(Create) { + b.WriteString("|CREATE") } - if op&Remove == Remove { - buffer.WriteString("|REMOVE") + if op.Has(Remove) { + b.WriteString("|REMOVE") } - if op&Write == Write { - buffer.WriteString("|WRITE") + if op.Has(Write) { + b.WriteString("|WRITE") } - if op&Rename == Rename { - buffer.WriteString("|RENAME") + if op.Has(Rename) { + b.WriteString("|RENAME") } - if op&Chmod == Chmod { - buffer.WriteString("|CHMOD") + if op.Has(Chmod) { + b.WriteString("|CHMOD") } - if buffer.Len() == 0 { - return "" + if b.Len() == 0 { + return "[no events]" } - return buffer.String()[1:] // Strip leading pipe + return b.String()[1:] } -// String returns a string representation of the event in the form -// "file: REMOVE|WRITE|..." +// Has reports if this operation has the given operation. +func (o Op) Has(h Op) bool { return o&h == h } + +// Has reports if this event has the given operation. +func (e Event) Has(op Op) bool { return e.Op.Has(op) } + +// String returns a string representation of the event with their path. func (e Event) String() string { - return fmt.Sprintf("%q: %s", e.Name, e.Op.String()) + return fmt.Sprintf("%-13s %q", e.Op.String(), e.Name) } - -// Common errors that can be reported by a watcher -var ( - ErrEventOverflow = errors.New("fsnotify queue overflow") -) diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify_unsupported.go b/vendor/github.com/fsnotify/fsnotify/fsnotify_unsupported.go deleted file mode 100644 index 596885598..000000000 --- a/vendor/github.com/fsnotify/fsnotify/fsnotify_unsupported.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows -// +build !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows - -package fsnotify - -import ( - "fmt" - "runtime" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct{} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - return nil, fmt.Errorf("fsnotify not supported on %s", runtime.GOOS) -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - return nil -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - return nil -} diff --git a/vendor/github.com/fsnotify/fsnotify/inotify.go b/vendor/github.com/fsnotify/fsnotify/inotify.go deleted file mode 100644 index a6d0e0ec8..000000000 --- a/vendor/github.com/fsnotify/fsnotify/inotify.go +++ /dev/null @@ -1,351 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux -// +build linux - -package fsnotify - -import ( - "errors" - "fmt" - "io" - "os" - "path/filepath" - "strings" - "sync" - "unsafe" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error - mu sync.Mutex // Map access - fd int - poller *fdPoller - watches map[string]*watch // Map of inotify watches (key: path) - paths map[int]string // Map of watched paths (key: watch descriptor) - done chan struct{} // Channel for sending a "quit message" to the reader goroutine - doneResp chan struct{} // Channel to respond to Close -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - // Create inotify fd - fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC) - if fd == -1 { - return nil, errno - } - // Create epoll - poller, err := newFdPoller(fd) - if err != nil { - unix.Close(fd) - return nil, err - } - w := &Watcher{ - fd: fd, - poller: poller, - watches: make(map[string]*watch), - paths: make(map[int]string), - Events: make(chan Event), - Errors: make(chan error), - done: make(chan struct{}), - doneResp: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -func (w *Watcher) isClosed() bool { - select { - case <-w.done: - return true - default: - return false - } -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - if w.isClosed() { - return nil - } - - // Send 'close' signal to goroutine, and set the Watcher to closed. - close(w.done) - - // Wake up goroutine - w.poller.wake() - - // Wait for goroutine to close - <-w.doneResp - - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - name = filepath.Clean(name) - if w.isClosed() { - return errors.New("inotify instance already closed") - } - - const agnosticEvents = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | - unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | - unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF - - var flags uint32 = agnosticEvents - - w.mu.Lock() - defer w.mu.Unlock() - watchEntry := w.watches[name] - if watchEntry != nil { - flags |= watchEntry.flags | unix.IN_MASK_ADD - } - wd, errno := unix.InotifyAddWatch(w.fd, name, flags) - if wd == -1 { - return errno - } - - if watchEntry == nil { - w.watches[name] = &watch{wd: uint32(wd), flags: flags} - w.paths[wd] = name - } else { - watchEntry.wd = uint32(wd) - watchEntry.flags = flags - } - - return nil -} - -// Remove stops watching the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - name = filepath.Clean(name) - - // Fetch the watch. - w.mu.Lock() - defer w.mu.Unlock() - watch, ok := w.watches[name] - - // Remove it from inotify. - if !ok { - return fmt.Errorf("can't remove non-existent inotify watch for: %s", name) - } - - // We successfully removed the watch if InotifyRmWatch doesn't return an - // error, we need to clean up our internal state to ensure it matches - // inotify's kernel state. - delete(w.paths, int(watch.wd)) - delete(w.watches, name) - - // inotify_rm_watch will return EINVAL if the file has been deleted; - // the inotify will already have been removed. - // watches and pathes are deleted in ignoreLinux() implicitly and asynchronously - // by calling inotify_rm_watch() below. e.g. readEvents() goroutine receives IN_IGNORE - // so that EINVAL means that the wd is being rm_watch()ed or its file removed - // by another thread and we have not received IN_IGNORE event. - success, errno := unix.InotifyRmWatch(w.fd, watch.wd) - if success == -1 { - // TODO: Perhaps it's not helpful to return an error here in every case. - // the only two possible errors are: - // EBADF, which happens when w.fd is not a valid file descriptor of any kind. - // EINVAL, which is when fd is not an inotify descriptor or wd is not a valid watch descriptor. - // Watch descriptors are invalidated when they are removed explicitly or implicitly; - // explicitly by inotify_rm_watch, implicitly when the file they are watching is deleted. - return errno - } - - return nil -} - -// WatchList returns the directories and files that are being monitered. -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)) - for pathname := range w.watches { - entries = append(entries, pathname) - } - - return entries -} - -type watch struct { - wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) - flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) -} - -// readEvents reads from the inotify file descriptor, converts the -// received events into Event objects and sends them via the Events channel -func (w *Watcher) readEvents() { - var ( - buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events - n int // Number of bytes read with read() - errno error // Syscall errno - ok bool // For poller.wait - ) - - defer close(w.doneResp) - defer close(w.Errors) - defer close(w.Events) - defer unix.Close(w.fd) - defer w.poller.close() - - for { - // See if we have been closed. - if w.isClosed() { - return - } - - ok, errno = w.poller.wait() - if errno != nil { - select { - case w.Errors <- errno: - case <-w.done: - return - } - continue - } - - if !ok { - continue - } - - n, errno = unix.Read(w.fd, buf[:]) - // If a signal interrupted execution, see if we've been asked to close, and try again. - // http://man7.org/linux/man-pages/man7/signal.7.html : - // "Before Linux 3.8, reads from an inotify(7) file descriptor were not restartable" - if errno == unix.EINTR { - continue - } - - // unix.Read might have been woken up by Close. If so, we're done. - if w.isClosed() { - return - } - - if n < unix.SizeofInotifyEvent { - var err error - if n == 0 { - // If EOF is received. This should really never happen. - err = io.EOF - } else if n < 0 { - // If an error occurred while reading. - err = errno - } else { - // Read was too short. - err = errors.New("notify: short read in readEvents()") - } - select { - case w.Errors <- err: - case <-w.done: - return - } - continue - } - - var offset uint32 - // We don't know how many events we just read into the buffer - // While the offset points to at least one whole event... - for offset <= uint32(n-unix.SizeofInotifyEvent) { - // Point "raw" to the event in the buffer - raw := (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) - - mask := uint32(raw.Mask) - nameLen := uint32(raw.Len) - - if mask&unix.IN_Q_OVERFLOW != 0 { - select { - case w.Errors <- ErrEventOverflow: - case <-w.done: - return - } - } - - // If the event happened to the watched directory or the watched file, the kernel - // doesn't append the filename to the event, but we would like to always fill the - // the "Name" field with a valid filename. We retrieve the path of the watch from - // the "paths" map. - w.mu.Lock() - name, ok := w.paths[int(raw.Wd)] - // IN_DELETE_SELF occurs when the file/directory being watched is removed. - // This is a sign to clean up the maps, otherwise we are no longer in sync - // with the inotify kernel state which has already deleted the watch - // automatically. - if ok && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { - delete(w.paths, int(raw.Wd)) - delete(w.watches, name) - } - w.mu.Unlock() - - if nameLen > 0 { - // Point "bytes" at the first byte of the filename - bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent]))[:nameLen:nameLen] - // The filename is padded with NULL bytes. TrimRight() gets rid of those. - name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") - } - - event := newEvent(name, mask) - - // Send the events that are not ignored on the events channel - if !event.ignoreLinux(mask) { - select { - case w.Events <- event: - case <-w.done: - return - } - } - - // Move to the next event in the buffer - offset += unix.SizeofInotifyEvent + nameLen - } - } -} - -// Certain types of events can be "ignored" and not sent over the Events -// channel. Such as events marked ignore by the kernel, or MODIFY events -// against files that do not exist. -func (e *Event) ignoreLinux(mask uint32) bool { - // Ignore anything the inotify API says to ignore - if mask&unix.IN_IGNORED == unix.IN_IGNORED { - return true - } - - // If the event is not a DELETE or RENAME, the file must exist. - // Otherwise the event is ignored. - // *Note*: this was put in place because it was seen that a MODIFY - // event was sent after the DELETE. This ignores that MODIFY and - // assumes a DELETE will come or has come if the file doesn't exist. - if !(e.Op&Remove == Remove || e.Op&Rename == Rename) { - _, statErr := os.Lstat(e.Name) - return os.IsNotExist(statErr) - } - return false -} - -// newEvent returns an platform-independent Event based on an inotify mask. -func newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { - e.Op |= Create - } - if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { - e.Op |= Remove - } - if mask&unix.IN_MODIFY == unix.IN_MODIFY { - e.Op |= Write - } - if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { - e.Op |= Rename - } - if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { - e.Op |= Chmod - } - return e -} diff --git a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go b/vendor/github.com/fsnotify/fsnotify/inotify_poller.go deleted file mode 100644 index b572a37c3..000000000 --- a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux -// +build linux - -package fsnotify - -import ( - "errors" - - "golang.org/x/sys/unix" -) - -type fdPoller struct { - fd int // File descriptor (as returned by the inotify_init() syscall) - epfd int // Epoll file descriptor - pipe [2]int // Pipe for waking up -} - -func emptyPoller(fd int) *fdPoller { - poller := new(fdPoller) - poller.fd = fd - poller.epfd = -1 - poller.pipe[0] = -1 - poller.pipe[1] = -1 - return poller -} - -// Create a new inotify poller. -// This creates an inotify handler, and an epoll handler. -func newFdPoller(fd int) (*fdPoller, error) { - var errno error - poller := emptyPoller(fd) - defer func() { - if errno != nil { - poller.close() - } - }() - - // Create epoll fd - poller.epfd, errno = unix.EpollCreate1(unix.EPOLL_CLOEXEC) - if poller.epfd == -1 { - return nil, errno - } - // Create pipe; pipe[0] is the read end, pipe[1] the write end. - errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK|unix.O_CLOEXEC) - if errno != nil { - return nil, errno - } - - // Register inotify fd with epoll - event := unix.EpollEvent{ - Fd: int32(poller.fd), - Events: unix.EPOLLIN, - } - errno = unix.EpollCtl(poller.epfd, unix.EPOLL_CTL_ADD, poller.fd, &event) - if errno != nil { - return nil, errno - } - - // Register pipe fd with epoll - event = unix.EpollEvent{ - Fd: int32(poller.pipe[0]), - Events: unix.EPOLLIN, - } - errno = unix.EpollCtl(poller.epfd, unix.EPOLL_CTL_ADD, poller.pipe[0], &event) - if errno != nil { - return nil, errno - } - - return poller, nil -} - -// Wait using epoll. -// Returns true if something is ready to be read, -// false if there is not. -func (poller *fdPoller) wait() (bool, error) { - // 3 possible events per fd, and 2 fds, makes a maximum of 6 events. - // I don't know whether epoll_wait returns the number of events returned, - // or the total number of events ready. - // I decided to catch both by making the buffer one larger than the maximum. - events := make([]unix.EpollEvent, 7) - for { - n, errno := unix.EpollWait(poller.epfd, events, -1) - if n == -1 { - if errno == unix.EINTR { - continue - } - return false, errno - } - if n == 0 { - // If there are no events, try again. - continue - } - if n > 6 { - // This should never happen. More events were returned than should be possible. - return false, errors.New("epoll_wait returned more events than I know what to do with") - } - ready := events[:n] - epollhup := false - epollerr := false - epollin := false - for _, event := range ready { - if event.Fd == int32(poller.fd) { - if event.Events&unix.EPOLLHUP != 0 { - // This should not happen, but if it does, treat it as a wakeup. - epollhup = true - } - if event.Events&unix.EPOLLERR != 0 { - // If an error is waiting on the file descriptor, we should pretend - // something is ready to read, and let unix.Read pick up the error. - epollerr = true - } - if event.Events&unix.EPOLLIN != 0 { - // There is data to read. - epollin = true - } - } - if event.Fd == int32(poller.pipe[0]) { - if event.Events&unix.EPOLLHUP != 0 { - // Write pipe descriptor was closed, by us. This means we're closing down the - // watcher, and we should wake up. - } - if event.Events&unix.EPOLLERR != 0 { - // If an error is waiting on the pipe file descriptor. - // This is an absolute mystery, and should never ever happen. - return false, errors.New("Error on the pipe descriptor.") - } - if event.Events&unix.EPOLLIN != 0 { - // This is a regular wakeup, so we have to clear the buffer. - err := poller.clearWake() - if err != nil { - return false, err - } - } - } - } - - if epollhup || epollerr || epollin { - return true, nil - } - return false, nil - } -} - -// Close the write end of the poller. -func (poller *fdPoller) wake() error { - buf := make([]byte, 1) - n, errno := unix.Write(poller.pipe[1], buf) - if n == -1 { - if errno == unix.EAGAIN { - // Buffer is full, poller will wake. - return nil - } - return errno - } - return nil -} - -func (poller *fdPoller) clearWake() error { - // You have to be woken up a LOT in order to get to 100! - buf := make([]byte, 100) - n, errno := unix.Read(poller.pipe[0], buf) - if n == -1 { - if errno == unix.EAGAIN { - // Buffer is empty, someone else cleared our wake. - return nil - } - return errno - } - return nil -} - -// Close all poller file descriptors, but not the one passed to it. -func (poller *fdPoller) close() { - if poller.pipe[1] != -1 { - unix.Close(poller.pipe[1]) - } - if poller.pipe[0] != -1 { - unix.Close(poller.pipe[0]) - } - if poller.epfd != -1 { - unix.Close(poller.epfd) - } -} diff --git a/vendor/github.com/fsnotify/fsnotify/kqueue.go b/vendor/github.com/fsnotify/fsnotify/kqueue.go deleted file mode 100644 index 6fb8d8532..000000000 --- a/vendor/github.com/fsnotify/fsnotify/kqueue.go +++ /dev/null @@ -1,535 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build freebsd || openbsd || netbsd || dragonfly || darwin -// +build freebsd openbsd netbsd dragonfly darwin - -package fsnotify - -import ( - "errors" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "sync" - "time" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error - done chan struct{} // Channel for sending a "quit message" to the reader goroutine - - kq int // File descriptor (as returned by the kqueue() syscall). - - mu sync.Mutex // Protects access to watcher data - watches map[string]int // Map of watched file descriptors (key: path). - externalWatches map[string]bool // Map of watches added by user of the library. - dirFlags map[string]uint32 // Map of watched directories to fflags used in kqueue. - paths map[int]pathInfo // Map file descriptors to path names for processing kqueue events. - fileExists map[string]bool // Keep track of if we know this file exists (to stop duplicate create events). - isClosed bool // Set to true when Close() is first called -} - -type pathInfo struct { - name string - isDir bool -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - kq, err := kqueue() - if err != nil { - return nil, err - } - - w := &Watcher{ - kq: kq, - watches: make(map[string]int), - dirFlags: make(map[string]uint32), - paths: make(map[int]pathInfo), - fileExists: make(map[string]bool), - externalWatches: make(map[string]bool), - Events: make(chan Event), - Errors: make(chan error), - done: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return nil - } - w.isClosed = true - - // copy paths to remove while locked - var pathsToRemove = make([]string, 0, len(w.watches)) - for name := range w.watches { - pathsToRemove = append(pathsToRemove, name) - } - w.mu.Unlock() - // unlock before calling Remove, which also locks - - for _, name := range pathsToRemove { - w.Remove(name) - } - - // send a "quit" message to the reader goroutine - close(w.done) - - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - w.mu.Lock() - w.externalWatches[name] = true - w.mu.Unlock() - _, err := w.addWatch(name, noteAllEvents) - return err -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - name = filepath.Clean(name) - w.mu.Lock() - watchfd, ok := w.watches[name] - w.mu.Unlock() - if !ok { - return fmt.Errorf("can't remove non-existent kevent watch for: %s", name) - } - - const registerRemove = unix.EV_DELETE - if err := register(w.kq, []int{watchfd}, registerRemove, 0); err != nil { - return err - } - - unix.Close(watchfd) - - w.mu.Lock() - isDir := w.paths[watchfd].isDir - delete(w.watches, name) - delete(w.paths, watchfd) - delete(w.dirFlags, name) - w.mu.Unlock() - - // Find all watched paths that are in this directory that are not external. - if isDir { - var pathsToRemove []string - w.mu.Lock() - for _, path := range w.paths { - wdir, _ := filepath.Split(path.name) - if filepath.Clean(wdir) == name { - if !w.externalWatches[path.name] { - pathsToRemove = append(pathsToRemove, path.name) - } - } - } - w.mu.Unlock() - for _, name := range pathsToRemove { - // Since these are internal, not much sense in propagating error - // to the user, as that will just confuse them with an error about - // a path they did not explicitly watch themselves. - w.Remove(name) - } - } - - return nil -} - -// WatchList returns the directories and files that are being monitered. -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)) - for pathname := range w.watches { - entries = append(entries, pathname) - } - - return entries -} - -// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) -const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME - -// keventWaitTime to block on each read from kevent -var keventWaitTime = durationToTimespec(100 * time.Millisecond) - -// addWatch adds name to the watched file set. -// The flags are interpreted as described in kevent(2). -// Returns the real path to the file which was added, if any, which may be different from the one passed in the case of symlinks. -func (w *Watcher) addWatch(name string, flags uint32) (string, error) { - var isDir bool - // Make ./name and name equivalent - name = filepath.Clean(name) - - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return "", errors.New("kevent instance already closed") - } - watchfd, alreadyWatching := w.watches[name] - // We already have a watch, but we can still override flags. - if alreadyWatching { - isDir = w.paths[watchfd].isDir - } - w.mu.Unlock() - - if !alreadyWatching { - fi, err := os.Lstat(name) - if err != nil { - return "", err - } - - // Don't watch sockets. - if fi.Mode()&os.ModeSocket == os.ModeSocket { - return "", nil - } - - // Don't watch named pipes. - if fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe { - return "", nil - } - - // Follow Symlinks - // Unfortunately, Linux can add bogus symlinks to watch list without - // issue, and Windows can't do symlinks period (AFAIK). To maintain - // consistency, we will act like everything is fine. There will simply - // be no file events for broken symlinks. - // Hence the returns of nil on errors. - if fi.Mode()&os.ModeSymlink == os.ModeSymlink { - name, err = filepath.EvalSymlinks(name) - if err != nil { - return "", nil - } - - w.mu.Lock() - _, alreadyWatching = w.watches[name] - w.mu.Unlock() - - if alreadyWatching { - return name, nil - } - - fi, err = os.Lstat(name) - if err != nil { - return "", nil - } - } - - watchfd, err = unix.Open(name, openMode, 0700) - if watchfd == -1 { - return "", err - } - - isDir = fi.IsDir() - } - - const registerAdd = unix.EV_ADD | unix.EV_CLEAR | unix.EV_ENABLE - if err := register(w.kq, []int{watchfd}, registerAdd, flags); err != nil { - unix.Close(watchfd) - return "", err - } - - if !alreadyWatching { - w.mu.Lock() - w.watches[name] = watchfd - w.paths[watchfd] = pathInfo{name: name, isDir: isDir} - w.mu.Unlock() - } - - if isDir { - // Watch the directory if it has not been watched before, - // or if it was watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) - w.mu.Lock() - - watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && - (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) - // Store flags so this watch can be updated later - w.dirFlags[name] = flags - w.mu.Unlock() - - if watchDir { - if err := w.watchDirectoryFiles(name); err != nil { - return "", err - } - } - } - return name, nil -} - -// readEvents reads from kqueue and converts the received kevents into -// Event values that it sends down the Events channel. -func (w *Watcher) readEvents() { - eventBuffer := make([]unix.Kevent_t, 10) - -loop: - for { - // See if there is a message on the "done" channel - select { - case <-w.done: - break loop - default: - } - - // Get new events - kevents, err := read(w.kq, eventBuffer, &keventWaitTime) - // EINTR is okay, the syscall was interrupted before timeout expired. - if err != nil && err != unix.EINTR { - select { - case w.Errors <- err: - case <-w.done: - break loop - } - continue - } - - // Flush the events we received to the Events channel - for len(kevents) > 0 { - kevent := &kevents[0] - watchfd := int(kevent.Ident) - mask := uint32(kevent.Fflags) - w.mu.Lock() - path := w.paths[watchfd] - w.mu.Unlock() - event := newEvent(path.name, mask) - - if path.isDir && !(event.Op&Remove == Remove) { - // Double check to make sure the directory exists. This can happen when - // we do a rm -fr on a recursively watched folders and we receive a - // modification event first but the folder has been deleted and later - // receive the delete event - if _, err := os.Lstat(event.Name); os.IsNotExist(err) { - // mark is as delete event - event.Op |= Remove - } - } - - if event.Op&Rename == Rename || event.Op&Remove == Remove { - w.Remove(event.Name) - w.mu.Lock() - delete(w.fileExists, event.Name) - w.mu.Unlock() - } - - if path.isDir && event.Op&Write == Write && !(event.Op&Remove == Remove) { - w.sendDirectoryChangeEvents(event.Name) - } else { - // Send the event on the Events channel. - select { - case w.Events <- event: - case <-w.done: - break loop - } - } - - if event.Op&Remove == Remove { - // Look for a file that may have overwritten this. - // For example, mv f1 f2 will delete f2, then create f2. - if path.isDir { - fileDir := filepath.Clean(event.Name) - w.mu.Lock() - _, found := w.watches[fileDir] - w.mu.Unlock() - if found { - // make sure the directory exists before we watch for changes. When we - // do a recursive watch and perform rm -fr, the parent directory might - // have gone missing, ignore the missing directory and let the - // upcoming delete event remove the watch from the parent directory. - if _, err := os.Lstat(fileDir); err == nil { - w.sendDirectoryChangeEvents(fileDir) - } - } - } else { - filePath := filepath.Clean(event.Name) - if fileInfo, err := os.Lstat(filePath); err == nil { - w.sendFileCreatedEventIfNew(filePath, fileInfo) - } - } - } - - // Move to next event - kevents = kevents[1:] - } - } - - // cleanup - err := unix.Close(w.kq) - if err != nil { - // only way the previous loop breaks is if w.done was closed so we need to async send to w.Errors. - select { - case w.Errors <- err: - default: - } - } - close(w.Events) - close(w.Errors) -} - -// newEvent returns an platform-independent Event based on kqueue Fflags. -func newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { - e.Op |= Remove - } - if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { - e.Op |= Write - } - if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { - e.Op |= Rename - } - if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { - e.Op |= Chmod - } - return e -} - -func newCreateEvent(name string) Event { - return Event{Name: name, Op: Create} -} - -// watchDirectoryFiles to mimic inotify when adding a watch on a directory -func (w *Watcher) watchDirectoryFiles(dirPath string) error { - // Get all files - files, err := ioutil.ReadDir(dirPath) - if err != nil { - return err - } - - for _, fileInfo := range files { - filePath := filepath.Join(dirPath, fileInfo.Name()) - filePath, err = w.internalWatch(filePath, fileInfo) - if err != nil { - return err - } - - w.mu.Lock() - w.fileExists[filePath] = true - w.mu.Unlock() - } - - return nil -} - -// sendDirectoryEvents searches the directory for newly created files -// and sends them over the event channel. This functionality is to have -// the BSD version of fsnotify match Linux inotify which provides a -// create event for files created in a watched directory. -func (w *Watcher) sendDirectoryChangeEvents(dirPath string) { - // Get all files - files, err := ioutil.ReadDir(dirPath) - if err != nil { - select { - case w.Errors <- err: - case <-w.done: - return - } - } - - // Search for new files - for _, fileInfo := range files { - filePath := filepath.Join(dirPath, fileInfo.Name()) - err := w.sendFileCreatedEventIfNew(filePath, fileInfo) - - if err != nil { - return - } - } -} - -// sendFileCreatedEvent sends a create event if the file isn't already being tracked. -func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fileInfo os.FileInfo) (err error) { - w.mu.Lock() - _, doesExist := w.fileExists[filePath] - w.mu.Unlock() - if !doesExist { - // Send create event - select { - case w.Events <- newCreateEvent(filePath): - case <-w.done: - return - } - } - - // like watchDirectoryFiles (but without doing another ReadDir) - filePath, err = w.internalWatch(filePath, fileInfo) - if err != nil { - return err - } - - w.mu.Lock() - w.fileExists[filePath] = true - w.mu.Unlock() - - return nil -} - -func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) (string, error) { - if fileInfo.IsDir() { - // mimic Linux providing delete events for subdirectories - // but preserve the flags used if currently watching subdirectory - w.mu.Lock() - flags := w.dirFlags[name] - w.mu.Unlock() - - flags |= unix.NOTE_DELETE | unix.NOTE_RENAME - return w.addWatch(name, flags) - } - - // watch file to mimic Linux inotify - return w.addWatch(name, noteAllEvents) -} - -// kqueue creates a new kernel event queue and returns a descriptor. -func kqueue() (kq int, err error) { - kq, err = unix.Kqueue() - if kq == -1 { - return kq, err - } - return kq, nil -} - -// register events with the queue -func register(kq int, fds []int, flags int, fflags uint32) error { - changes := make([]unix.Kevent_t, len(fds)) - - for i, fd := range fds { - // SetKevent converts int to the platform-specific types: - unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) - changes[i].Fflags = fflags - } - - // register the events - success, err := unix.Kevent(kq, changes, nil, nil) - if success == -1 { - return err - } - return nil -} - -// read retrieves pending events, or waits until an event occurs. -// A timeout of nil blocks indefinitely, while 0 polls the queue. -func read(kq int, events []unix.Kevent_t, timeout *unix.Timespec) ([]unix.Kevent_t, error) { - n, err := unix.Kevent(kq, nil, events, timeout) - if err != nil { - return nil, err - } - return events[0:n], nil -} - -// durationToTimespec prepares a timeout value -func durationToTimespec(d time.Duration) unix.Timespec { - return unix.NsecToTimespec(d.Nanoseconds()) -} diff --git a/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh b/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh new file mode 100644 index 000000000..b09ef7683 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh @@ -0,0 +1,208 @@ +#!/usr/bin/env zsh +[ "${ZSH_VERSION:-}" = "" ] && echo >&2 "Only works with zsh" && exit 1 +setopt err_exit no_unset pipefail extended_glob + +# Simple script to update the godoc comments on all watchers. Probably took me +# more time to write this than doing it manually, but ah well 🙃 + +watcher=$(</tmp/x + print -r -- $cmt >>/tmp/x + tail -n+$(( end + 1 )) $file >>/tmp/x + mv /tmp/x $file + done +} + +set-cmt '^type Watcher struct ' $watcher +set-cmt '^func NewWatcher(' $new +set-cmt '^func (w \*Watcher) Add(' $add +set-cmt '^func (w \*Watcher) Remove(' $remove +set-cmt '^func (w \*Watcher) Close(' $close +set-cmt '^func (w \*Watcher) WatchList(' $watchlist +set-cmt '^[[:space:]]*Events *chan Event$' $events +set-cmt '^[[:space:]]*Errors *chan error$' $errors diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go b/vendor/github.com/fsnotify/fsnotify/system_bsd.go similarity index 57% rename from vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go rename to vendor/github.com/fsnotify/fsnotify/system_bsd.go index 36cc3845b..4322b0b88 100644 --- a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go +++ b/vendor/github.com/fsnotify/fsnotify/system_bsd.go @@ -1,7 +1,3 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - //go:build freebsd || openbsd || netbsd || dragonfly // +build freebsd openbsd netbsd dragonfly diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go b/vendor/github.com/fsnotify/fsnotify/system_darwin.go similarity index 52% rename from vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go rename to vendor/github.com/fsnotify/fsnotify/system_darwin.go index 98cd8476f..5da5ffa78 100644 --- a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go +++ b/vendor/github.com/fsnotify/fsnotify/system_darwin.go @@ -1,7 +1,3 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - //go:build darwin // +build darwin diff --git a/vendor/github.com/fsnotify/fsnotify/windows.go b/vendor/github.com/fsnotify/fsnotify/windows.go deleted file mode 100644 index 02ce7deb0..000000000 --- a/vendor/github.com/fsnotify/fsnotify/windows.go +++ /dev/null @@ -1,586 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows -// +build windows - -package fsnotify - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "reflect" - "runtime" - "sync" - "syscall" - "unsafe" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error - isClosed bool // Set to true when Close() is first called - mu sync.Mutex // Map access - port syscall.Handle // Handle to completion port - watches watchMap // Map of watches (key: i-number) - input chan *input // Inputs to the reader are sent on this channel - quit chan chan<- error -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - port, e := syscall.CreateIoCompletionPort(syscall.InvalidHandle, 0, 0, 0) - if e != nil { - return nil, os.NewSyscallError("CreateIoCompletionPort", e) - } - w := &Watcher{ - port: port, - watches: make(watchMap), - input: make(chan *input, 1), - Events: make(chan Event, 50), - Errors: make(chan error), - quit: make(chan chan<- error, 1), - } - go w.readEvents() - return w, nil -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - if w.isClosed { - return nil - } - w.isClosed = true - - // Send "quit" message to the reader goroutine - ch := make(chan error) - w.quit <- ch - if err := w.wakeupReader(); err != nil { - return err - } - return <-ch -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - if w.isClosed { - return errors.New("watcher already closed") - } - in := &input{ - op: opAddWatch, - path: filepath.Clean(name), - flags: sysFSALLEVENTS, - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - in := &input{ - op: opRemoveWatch, - path: filepath.Clean(name), - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// WatchList returns the directories and files that are being monitered. -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)) - for _, entry := range w.watches { - for _, watchEntry := range entry { - entries = append(entries, watchEntry.path) - } - } - - return entries -} - -const ( - // Options for AddWatch - sysFSONESHOT = 0x80000000 - sysFSONLYDIR = 0x1000000 - - // Events - sysFSACCESS = 0x1 - sysFSALLEVENTS = 0xfff - sysFSATTRIB = 0x4 - sysFSCLOSE = 0x18 - sysFSCREATE = 0x100 - sysFSDELETE = 0x200 - sysFSDELETESELF = 0x400 - sysFSMODIFY = 0x2 - sysFSMOVE = 0xc0 - sysFSMOVEDFROM = 0x40 - sysFSMOVEDTO = 0x80 - sysFSMOVESELF = 0x800 - - // Special events - sysFSIGNORED = 0x8000 - sysFSQOVERFLOW = 0x4000 -) - -func newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { - e.Op |= Create - } - if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { - e.Op |= Remove - } - if mask&sysFSMODIFY == sysFSMODIFY { - e.Op |= Write - } - if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { - e.Op |= Rename - } - if mask&sysFSATTRIB == sysFSATTRIB { - e.Op |= Chmod - } - return e -} - -const ( - opAddWatch = iota - opRemoveWatch -) - -const ( - provisional uint64 = 1 << (32 + iota) -) - -type input struct { - op int - path string - flags uint32 - reply chan error -} - -type inode struct { - handle syscall.Handle - volume uint32 - index uint64 -} - -type watch struct { - ov syscall.Overlapped - ino *inode // i-number - path string // Directory path - mask uint64 // Directory itself is being watched with these notify flags - names map[string]uint64 // Map of names being watched and their notify flags - rename string // Remembers the old name while renaming a file - buf [4096]byte -} - -type indexMap map[uint64]*watch -type watchMap map[uint32]indexMap - -func (w *Watcher) wakeupReader() error { - e := syscall.PostQueuedCompletionStatus(w.port, 0, 0, nil) - if e != nil { - return os.NewSyscallError("PostQueuedCompletionStatus", e) - } - return nil -} - -func getDir(pathname string) (dir string, err error) { - attr, e := syscall.GetFileAttributes(syscall.StringToUTF16Ptr(pathname)) - if e != nil { - return "", os.NewSyscallError("GetFileAttributes", e) - } - if attr&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 { - dir = pathname - } else { - dir, _ = filepath.Split(pathname) - dir = filepath.Clean(dir) - } - return -} - -func getIno(path string) (ino *inode, err error) { - h, e := syscall.CreateFile(syscall.StringToUTF16Ptr(path), - syscall.FILE_LIST_DIRECTORY, - syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, - nil, syscall.OPEN_EXISTING, - syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OVERLAPPED, 0) - if e != nil { - return nil, os.NewSyscallError("CreateFile", e) - } - var fi syscall.ByHandleFileInformation - if e = syscall.GetFileInformationByHandle(h, &fi); e != nil { - syscall.CloseHandle(h) - return nil, os.NewSyscallError("GetFileInformationByHandle", e) - } - ino = &inode{ - handle: h, - volume: fi.VolumeSerialNumber, - index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), - } - return ino, nil -} - -// Must run within the I/O thread. -func (m watchMap) get(ino *inode) *watch { - if i := m[ino.volume]; i != nil { - return i[ino.index] - } - return nil -} - -// Must run within the I/O thread. -func (m watchMap) set(ino *inode, watch *watch) { - i := m[ino.volume] - if i == nil { - i = make(indexMap) - m[ino.volume] = i - } - i[ino.index] = watch -} - -// Must run within the I/O thread. -func (w *Watcher) addWatch(pathname string, flags uint64) error { - dir, err := getDir(pathname) - if err != nil { - return err - } - if flags&sysFSONLYDIR != 0 && pathname != dir { - return nil - } - ino, err := getIno(dir) - if err != nil { - return err - } - w.mu.Lock() - watchEntry := w.watches.get(ino) - w.mu.Unlock() - if watchEntry == nil { - if _, e := syscall.CreateIoCompletionPort(ino.handle, w.port, 0, 0); e != nil { - syscall.CloseHandle(ino.handle) - return os.NewSyscallError("CreateIoCompletionPort", e) - } - watchEntry = &watch{ - ino: ino, - path: dir, - names: make(map[string]uint64), - } - w.mu.Lock() - w.watches.set(ino, watchEntry) - w.mu.Unlock() - flags |= provisional - } else { - syscall.CloseHandle(ino.handle) - } - if pathname == dir { - watchEntry.mask |= flags - } else { - watchEntry.names[filepath.Base(pathname)] |= flags - } - if err = w.startRead(watchEntry); err != nil { - return err - } - if pathname == dir { - watchEntry.mask &= ^provisional - } else { - watchEntry.names[filepath.Base(pathname)] &= ^provisional - } - return nil -} - -// Must run within the I/O thread. -func (w *Watcher) remWatch(pathname string) error { - dir, err := getDir(pathname) - if err != nil { - return err - } - ino, err := getIno(dir) - if err != nil { - return err - } - w.mu.Lock() - watch := w.watches.get(ino) - w.mu.Unlock() - if watch == nil { - return fmt.Errorf("can't remove non-existent watch for: %s", pathname) - } - if pathname == dir { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - watch.mask = 0 - } else { - name := filepath.Base(pathname) - w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - return w.startRead(watch) -} - -// Must run within the I/O thread. -func (w *Watcher) deleteWatch(watch *watch) { - for name, mask := range watch.names { - if mask&provisional == 0 { - w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) - } - delete(watch.names, name) - } - if watch.mask != 0 { - if watch.mask&provisional == 0 { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - } - watch.mask = 0 - } -} - -// Must run within the I/O thread. -func (w *Watcher) startRead(watch *watch) error { - if e := syscall.CancelIo(watch.ino.handle); e != nil { - w.Errors <- os.NewSyscallError("CancelIo", e) - w.deleteWatch(watch) - } - mask := toWindowsFlags(watch.mask) - for _, m := range watch.names { - mask |= toWindowsFlags(m) - } - if mask == 0 { - if e := syscall.CloseHandle(watch.ino.handle); e != nil { - w.Errors <- os.NewSyscallError("CloseHandle", e) - } - w.mu.Lock() - delete(w.watches[watch.ino.volume], watch.ino.index) - w.mu.Unlock() - return nil - } - e := syscall.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0], - uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0) - if e != nil { - err := os.NewSyscallError("ReadDirectoryChanges", e) - if e == syscall.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { - // Watched directory was probably removed - if w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) { - if watch.mask&sysFSONESHOT != 0 { - watch.mask = 0 - } - } - err = nil - } - w.deleteWatch(watch) - w.startRead(watch) - return err - } - return nil -} - -// readEvents reads from the I/O completion port, converts the -// received events into Event objects and sends them via the Events channel. -// Entry point to the I/O thread. -func (w *Watcher) readEvents() { - var ( - n, key uint32 - ov *syscall.Overlapped - ) - runtime.LockOSThread() - - for { - e := syscall.GetQueuedCompletionStatus(w.port, &n, &key, &ov, syscall.INFINITE) - watch := (*watch)(unsafe.Pointer(ov)) - - if watch == nil { - select { - case ch := <-w.quit: - w.mu.Lock() - var indexes []indexMap - for _, index := range w.watches { - indexes = append(indexes, index) - } - w.mu.Unlock() - for _, index := range indexes { - for _, watch := range index { - w.deleteWatch(watch) - w.startRead(watch) - } - } - var err error - if e := syscall.CloseHandle(w.port); e != nil { - err = os.NewSyscallError("CloseHandle", e) - } - close(w.Events) - close(w.Errors) - ch <- err - return - case in := <-w.input: - switch in.op { - case opAddWatch: - in.reply <- w.addWatch(in.path, uint64(in.flags)) - case opRemoveWatch: - in.reply <- w.remWatch(in.path) - } - default: - } - continue - } - - switch e { - case syscall.ERROR_MORE_DATA: - if watch == nil { - w.Errors <- errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer") - } else { - // The i/o succeeded but the buffer is full. - // In theory we should be building up a full packet. - // In practice we can get away with just carrying on. - n = uint32(unsafe.Sizeof(watch.buf)) - } - case syscall.ERROR_ACCESS_DENIED: - // Watched directory was probably removed - w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) - w.deleteWatch(watch) - w.startRead(watch) - continue - case syscall.ERROR_OPERATION_ABORTED: - // CancelIo was called on this handle - continue - default: - w.Errors <- os.NewSyscallError("GetQueuedCompletionPort", e) - continue - case nil: - } - - var offset uint32 - for { - if n == 0 { - w.Events <- newEvent("", sysFSQOVERFLOW) - w.Errors <- errors.New("short read in readEvents()") - break - } - - // Point "raw" to the event in the buffer - raw := (*syscall.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) - // TODO: Consider using unsafe.Slice that is available from go1.17 - // https://stackoverflow.com/questions/51187973/how-to-create-an-array-or-a-slice-from-an-array-unsafe-pointer-in-golang - // instead of using a fixed syscall.MAX_PATH buf, we create a buf that is the size of the path name - size := int(raw.FileNameLength / 2) - var buf []uint16 - sh := (*reflect.SliceHeader)(unsafe.Pointer(&buf)) - sh.Data = uintptr(unsafe.Pointer(&raw.FileName)) - sh.Len = size - sh.Cap = size - name := syscall.UTF16ToString(buf) - fullname := filepath.Join(watch.path, name) - - var mask uint64 - switch raw.Action { - case syscall.FILE_ACTION_REMOVED: - mask = sysFSDELETESELF - case syscall.FILE_ACTION_MODIFIED: - mask = sysFSMODIFY - case syscall.FILE_ACTION_RENAMED_OLD_NAME: - watch.rename = name - case syscall.FILE_ACTION_RENAMED_NEW_NAME: - if watch.names[watch.rename] != 0 { - watch.names[name] |= watch.names[watch.rename] - delete(watch.names, watch.rename) - mask = sysFSMOVESELF - } - } - - sendNameEvent := func() { - if w.sendEvent(fullname, watch.names[name]&mask) { - if watch.names[name]&sysFSONESHOT != 0 { - delete(watch.names, name) - } - } - } - if raw.Action != syscall.FILE_ACTION_RENAMED_NEW_NAME { - sendNameEvent() - } - if raw.Action == syscall.FILE_ACTION_REMOVED { - w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - if w.sendEvent(fullname, watch.mask&toFSnotifyFlags(raw.Action)) { - if watch.mask&sysFSONESHOT != 0 { - watch.mask = 0 - } - } - if raw.Action == syscall.FILE_ACTION_RENAMED_NEW_NAME { - fullname = filepath.Join(watch.path, watch.rename) - sendNameEvent() - } - - // Move to the next event in the buffer - if raw.NextEntryOffset == 0 { - break - } - offset += raw.NextEntryOffset - - // Error! - if offset >= n { - w.Errors <- errors.New("Windows system assumed buffer larger than it is, events have likely been missed.") - break - } - } - - if err := w.startRead(watch); err != nil { - w.Errors <- err - } - } -} - -func (w *Watcher) sendEvent(name string, mask uint64) bool { - if mask == 0 { - return false - } - event := newEvent(name, uint32(mask)) - select { - case ch := <-w.quit: - w.quit <- ch - case w.Events <- event: - } - return true -} - -func toWindowsFlags(mask uint64) uint32 { - var m uint32 - if mask&sysFSACCESS != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS - } - if mask&sysFSMODIFY != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_LAST_WRITE - } - if mask&sysFSATTRIB != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES - } - if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_FILE_NAME | syscall.FILE_NOTIFY_CHANGE_DIR_NAME - } - return m -} - -func toFSnotifyFlags(action uint32) uint64 { - switch action { - case syscall.FILE_ACTION_ADDED: - return sysFSCREATE - case syscall.FILE_ACTION_REMOVED: - return sysFSDELETE - case syscall.FILE_ACTION_MODIFIED: - return sysFSMODIFY - case syscall.FILE_ACTION_RENAMED_OLD_NAME: - return sysFSMOVEDFROM - case syscall.FILE_ACTION_RENAMED_NEW_NAME: - return sysFSMOVEDTO - } - return 0 -} diff --git a/vendor/github.com/libopenstorage/stork/drivers/volume/portworx/portworx.go b/vendor/github.com/libopenstorage/stork/drivers/volume/portworx/portworx.go index 25d299548..639ede166 100644 --- a/vendor/github.com/libopenstorage/stork/drivers/volume/portworx/portworx.go +++ b/vendor/github.com/libopenstorage/stork/drivers/volume/portworx/portworx.go @@ -3389,7 +3389,7 @@ func (p *portworx) GetBackupStatus(backup *storkapi.ApplicationBackup) ([]*stork // return nil, err } } else { - vInfo.TotalSize = resp.GetSize() + vInfo.TotalSize = resp.GetCompressedObjectBytes() } } volumeInfos = append(volumeInfos, vInfo) diff --git a/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go b/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go index a158795bb..4093045e5 100644 --- a/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go +++ b/vendor/github.com/libopenstorage/stork/pkg/applicationmanager/controllers/applicationrestore.go @@ -212,8 +212,11 @@ func (a *ApplicationRestoreController) createNamespaces(backup *storkapi.Applica if annotations == nil { annotations = make(map[string]string) } + // Add all annotations from Namespace.json except project annotations when not found in the namespace which is not created by px-backup. + // With retain policy, project annotations should not be applied to the namespace with no projects. Applies to a scenario where project association + // is removed by the user after taking the backup with project on a namespace for k, v := range ns.GetAnnotations() { - if _, ok := annotations[k]; !ok && !strings.Contains(k, utils.CattleProjectPrefix) { + if _, ok := annotations[k]; !ok && (!strings.Contains(k, utils.CattleProjectPrefix) || annotations[utils.PxbackupAnnotationCreateByKey] != "") { annotations[k] = v } } @@ -221,14 +224,19 @@ func (a *ApplicationRestoreController) createNamespaces(backup *storkapi.Applica if labels == nil { labels = make(map[string]string) } + // Add all labels from Namespace.json except project labels when not found in the namespace which is not created by px-backup. + // With retain policy, project labels should not be applied to the namespace with no projects. Applies to a scenario where project association + // is removed by the user after taking the backup with project on a namespace for k, v := range ns.GetLabels() { - if _, ok := labels[k]; !ok && !strings.Contains(k, utils.CattleProjectPrefix) { + if _, ok := labels[k]; !ok && (!strings.Contains(k, utils.CattleProjectPrefix) || annotations[utils.PxbackupAnnotationCreateByKey] != "") { labels[k] = v } } utils.ParseRancherProjectMapping(annotations, rancherProjectMapping) utils.ParseRancherProjectMapping(labels, rancherProjectMapping) } + // delete the px backup CreateByKey Annotation + delete(annotations, utils.PxbackupAnnotationCreateByKey) log.ApplicationRestoreLog(restore).Tracef("Namespace already exists, updating dest namespace %v", ns.Name) _, err = core.Instance().UpdateNamespace(&v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -724,6 +732,22 @@ func (a *ApplicationRestoreController) restoreVolumes(restore *storkapi.Applicat } } } + // Get restore volume batch sleep interval + volumeBatchSleepInterval, err := time.ParseDuration(k8sutils.DefaultRestoreVolumeBatchSleepInterval) + if err != nil { + logrus.Infof("error in parsing default restore volume sleep interval %s", k8sutils.DefaultRestoreVolumeBatchSleepInterval) + } + RestoreVolumeBatchSleepInterval, err := k8sutils.GetConfigValue(k8sutils.StorkControllerConfigMapName, metav1.NamespaceSystem, k8sutils.RestoreVolumeBatchSleepIntervalKey) + if err != nil { + logrus.Infof("error in reading %v cm, switching to default restore volume sleep interval", k8sutils.StorkControllerConfigMapName) + } else { + if len(RestoreVolumeBatchSleepInterval) != 0 { + volumeBatchSleepInterval, err = time.ParseDuration(RestoreVolumeBatchSleepInterval) + if err != nil { + logrus.Infof("error in conversion of volumeBatchSleepInterval: %v", err) + } + } + } for i := 0; i < len(backupVolInfos); i += batchCount { batchVolInfo := backupVolInfos[i:min(i+batchCount, len(backupVolInfos))] restoreVolumeInfos, err := driver.StartRestore(restore, batchVolInfo, preRestoreObjects) @@ -759,6 +783,7 @@ func (a *ApplicationRestoreController) restoreVolumes(restore *storkapi.Applicat _, err = a.updateRestoreCRInVolumeStage(namespacedName, storkapi.ApplicationRestoreStatusFailed, storkapi.ApplicationRestoreStageFinal, message, nil) return err } + time.Sleep(volumeBatchSleepInterval) restore, err = a.updateRestoreCRInVolumeStage( namespacedName, storkapi.ApplicationRestoreStatusInProgress, diff --git a/vendor/github.com/libopenstorage/stork/pkg/k8sutils/k8sutils.go b/vendor/github.com/libopenstorage/stork/pkg/k8sutils/k8sutils.go index e973e1d20..8b9143029 100644 --- a/vendor/github.com/libopenstorage/stork/pkg/k8sutils/k8sutils.go +++ b/vendor/github.com/libopenstorage/stork/pkg/k8sutils/k8sutils.go @@ -63,8 +63,6 @@ const ( DefaultRestoreVolumeBatchSleepInterval = "20s" // RestoreVolumeBatchSleepIntervalKey - restore volume batch sleep interval key RestoreVolumeBatchSleepIntervalKey = "restore-volume-sleep-interval" - // RestoreVolumeBatchSleepInterval - restore volume batch sleep interval - RestoreVolumeBatchSleepInterval = 20 * time.Second // PxServiceEnvName - PX service ENV name PxServiceEnvName = "PX_SERVICE_NAME" // PxNamespaceEnvName - PX namespace ENV name diff --git a/vendor/github.com/libopenstorage/stork/pkg/snapshotter/snapshotter_csi.go b/vendor/github.com/libopenstorage/stork/pkg/snapshotter/snapshotter_csi.go index 07baad7b6..26320856a 100644 --- a/vendor/github.com/libopenstorage/stork/pkg/snapshotter/snapshotter_csi.go +++ b/vendor/github.com/libopenstorage/stork/pkg/snapshotter/snapshotter_csi.go @@ -583,15 +583,18 @@ func (c *csiDriver) RestoreVolumeClaim(opts ...Option) (*v1.PersistentVolumeClai // Exhausted all retries, return error return nil, fmt.Errorf("%v", errMsg) } - // Make the pvc size same as the restore size from the volumesnapshot if snapshot.Status != nil && snapshot.Status.RestoreSize != nil && !snapshot.Status.RestoreSize.IsZero() { - quantity, err := resource.ParseQuantity(snapshot.Status.RestoreSize.String()) - if err != nil { - return nil, err + // Update the pvc size only when the volumesnapshot size is greater than PVC size + if snapshot.Status.RestoreSize.Cmp(pvc.Spec.Resources.Requests[v1.ResourceStorage]) == 1 { + quantity, err := resource.ParseQuantity(snapshot.Status.RestoreSize.String()) + if err != nil { + return nil, err + } + logrus.Debugf("setting size of pvc %s/%s same as snapshot size %s", pvc.Namespace, pvc.Name, quantity.String()) + pvc.Spec.Resources.Requests[v1.ResourceStorage] = quantity } - logrus.Debugf("setting size of pvc %s/%s same as snapshot size %s", pvc.Namespace, pvc.Name, quantity.String()) - pvc.Spec.Resources.Requests[v1.ResourceStorage] = quantity + } } else { snapshot, err := c.snapshotClient.SnapshotV1beta1().VolumeSnapshots(o.RestoreNamespace).Get(context.TODO(), o.RestoreSnapshotName, metav1.GetOptions{}) @@ -617,15 +620,18 @@ func (c *csiDriver) RestoreVolumeClaim(opts ...Option) (*v1.PersistentVolumeClai // Exhausted all retries, return error return nil, fmt.Errorf("%v", errMsg) } - // Make the pvc size same as the restore size from the volumesnapshot if snapshot.Status != nil && snapshot.Status.RestoreSize != nil && !snapshot.Status.RestoreSize.IsZero() { - quantity, err := resource.ParseQuantity(snapshot.Status.RestoreSize.String()) - if err != nil { - return nil, err + // Update the pvc size only when the volumesnapshot size is greater than PVC size + if snapshot.Status.RestoreSize.Cmp(pvc.Spec.Resources.Requests[v1.ResourceStorage]) == 1 { + quantity, err := resource.ParseQuantity(snapshot.Status.RestoreSize.String()) + if err != nil { + return nil, err + } + logrus.Debugf("setting size of pvc %s/%s same as snapshot size %s", pvc.Namespace, pvc.Name, quantity.String()) + pvc.Spec.Resources.Requests[v1.ResourceStorage] = quantity } - logrus.Debugf("setting size of pvc %s/%s same as snapshot size %s", pvc.Namespace, pvc.Name, quantity.String()) - pvc.Spec.Resources.Requests[v1.ResourceStorage] = quantity + } } diff --git a/vendor/github.com/portworx/kvdb/.travis.yml b/vendor/github.com/portworx/kvdb/.travis.yml index 5b7a2a184..20387ad86 100644 --- a/vendor/github.com/portworx/kvdb/.travis.yml +++ b/vendor/github.com/portworx/kvdb/.travis.yml @@ -4,7 +4,7 @@ services: - docker language: go go: -- 1.10.7 +- 1.17.13 install: - curl -s -L https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 -o $GOPATH/bin/dep - chmod +x $GOPATH/bin/dep diff --git a/vendor/github.com/portworx/kvdb/common/common.go b/vendor/github.com/portworx/kvdb/common/common.go index 2cecc9ee9..08c0c8a18 100644 --- a/vendor/github.com/portworx/kvdb/common/common.go +++ b/vendor/github.com/portworx/kvdb/common/common.go @@ -32,12 +32,15 @@ func ToBytes(val interface{}) ([]byte, error) { // BaseKvdb provides common functionality across kvdb types type BaseKvdb struct { - // LockTimeout is the maximum time any lock can be held - LockTimeout time.Duration + // LockHoldTimeout is the maximum time any lock can be held + LockHoldTimeout time.Duration // FatalCb invoked for fatal errors FatalCb kvdb.FatalErrorCB // lock to guard updates to timeout and fatalCb lock sync.Mutex + // LockTryDuration is the max duration for which an attempt + // will be made to acquire a kvdb lock + LockTryDuration time.Duration } func (b *BaseKvdb) WrapperName() kvdb.WrapperName { @@ -62,13 +65,19 @@ func (b *BaseKvdb) SetFatalCb(f kvdb.FatalErrorCB) { b.FatalCb = f } -// SetLockTimeout has property such that if the lock is held past this duration, +// SetLockHoldDuration has property such that if the lock is held past this duration, // then a configured fatal callback is called. -func (b *BaseKvdb) SetLockTimeout(timeout time.Duration) { +func (b *BaseKvdb) SetLockHoldDuration(timeout time.Duration) { b.lock.Lock() defer b.lock.Unlock() - logrus.Infof("Setting lock timeout to: %v", timeout) - b.LockTimeout = timeout + logrus.Infof("Setting lock hold duration to: %v", timeout) + b.LockHoldTimeout = timeout +} + +func (b *BaseKvdb) GetLockTryDuration() time.Duration { + b.lock.Lock() + defer b.lock.Unlock() + return b.LockTryDuration } // CheckLockTimeout checks lock timeout. @@ -84,11 +93,11 @@ func (b *BaseKvdb) CheckLockTimeout( } } -// GetLockTimeout gets lock timeout. -func (b *BaseKvdb) GetLockTimeout() time.Duration { +// GetLockHoldDuration gets lock timeout. +func (b *BaseKvdb) GetLockHoldDuration() time.Duration { b.lock.Lock() defer b.lock.Unlock() - return b.LockTimeout + return b.LockHoldTimeout } // LockTimedout does lock timedout. diff --git a/vendor/github.com/portworx/kvdb/kvdb.go b/vendor/github.com/portworx/kvdb/kvdb.go index 73a2ff5e4..eb0620941 100644 --- a/vendor/github.com/portworx/kvdb/kvdb.go +++ b/vendor/github.com/portworx/kvdb/kvdb.go @@ -328,6 +328,8 @@ type Kvdb interface { // The KVPair returned should be used to unlock if successful. LockWithTimeout(key string, lockerID string, lockTryDuration time.Duration, lockHoldDuration time.Duration) (*KVPair, error) + // IsKeyLocked returns a boolean if the lock is held or not. If held, returns the owner. + IsKeyLocked(key string) (bool, string, error) // Unlock kvp previously acquired through a call to lock. Unlock(kvp *KVPair) error // TxNew returns a new Tx coordinator object or ErrNotSupported @@ -342,14 +344,18 @@ type Kvdb interface { RevokeUsersAccess(username string, permType PermissionType, subtree string) error // SetFatalCb sets the function to be called in case of fatal errors SetFatalCb(f FatalErrorCB) - // SetLockTimeout sets maximum time a lock may be held - SetLockTimeout(timeout time.Duration) - // GetLockTimeout gets the currently set lock timeout - GetLockTimeout() time.Duration + // SetLockHoldDuration sets maximum time a lock may be held + SetLockHoldDuration(timeout time.Duration) + // GetLockTryDuration gets the maximum time to attempt to get a lock. + GetLockTryDuration() time.Duration + // GetLockHoldDuration gets the currently set lock hold timeout + GetLockHoldDuration() time.Duration // Serialize serializes all the keys under the domain and returns a byte array Serialize() ([]byte, error) // Deserialize deserializes the given byte array into a list of kv pairs Deserialize([]byte) (KVPairs, error) + // Compact removes the history before the specified index/revision to reduce the space and memory usage + Compact(index uint64) error KvdbWrapper } diff --git a/vendor/github.com/portworx/kvdb/mem/kv_mem.go b/vendor/github.com/portworx/kvdb/mem/kv_mem.go index 8dda0aace..32f936f59 100644 --- a/vendor/github.com/portworx/kvdb/mem/kv_mem.go +++ b/vendor/github.com/portworx/kvdb/mem/kv_mem.go @@ -219,7 +219,7 @@ func New( } mem := &memKV{ - BaseKvdb: common.BaseKvdb{FatalCb: fatalErrorCb}, + BaseKvdb: common.BaseKvdb{FatalCb: fatalErrorCb, LockTryDuration: kvdb.DefaultLockTryDuration}, m: make(map[string]*memKVPair), dist: NewWatchDistributor(), domain: domain, @@ -611,6 +611,12 @@ func (kv *memKV) WatchTree( return nil } +func (kv *memKV) Compact( + index uint64, +) error { + return kvdb.ErrNotSupported +} + func (kv *memKV) Lock(key string) (*kvdb.KVPair, error) { return kv.LockWithID(key, "locked") } @@ -619,7 +625,25 @@ func (kv *memKV) LockWithID( key string, lockerID string, ) (*kvdb.KVPair, error) { - return kv.LockWithTimeout(key, lockerID, kvdb.DefaultLockTryDuration, kv.GetLockTimeout()) + return kv.LockWithTimeout(key, lockerID, kv.LockTryDuration, kv.GetLockHoldDuration()) +} + +func (kv *memKV) IsKeyLocked(key string) (bool, string, error) { + key = kv.domain + key + kv.mutex.Lock() + if _, ok := kv.locks[key]; !ok { + kv.mutex.Unlock() + return false, "", kvdb.ErrInvalidLock + } + kv.mutex.Unlock() + var lockerID string + _, err := kv.GetVal(key, &lockerID) + if err == kvdb.ErrNotFound { + return false, "", nil + } else if err != nil { + return false, "", err + } + return true, lockerID, nil } func (kv *memKV) LockWithTimeout( diff --git a/vendor/modules.txt b/vendor/modules.txt index 61923bbfe..6408cbb14 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -184,7 +184,7 @@ github.com/evanphx/json-patch/v5 # github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d ## explicit github.com/exponent-io/jsonpath -# github.com/fsnotify/fsnotify v1.5.4 +# github.com/fsnotify/fsnotify v1.6.0 ## explicit; go 1.16 github.com/fsnotify/fsnotify # github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 @@ -384,7 +384,7 @@ github.com/libopenstorage/openstorage-sdk-clients/sdk/golang github.com/libopenstorage/secrets github.com/libopenstorage/secrets/aws/credentials github.com/libopenstorage/secrets/k8s -# github.com/libopenstorage/stork v1.4.1-0.20230612155541-faeeb29a4cf7 +# github.com/libopenstorage/stork v1.4.1-0.20230623121725-6af6ed81b14b ## explicit; go 1.19 github.com/libopenstorage/stork/drivers github.com/libopenstorage/stork/drivers/volume @@ -483,7 +483,7 @@ github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 ## explicit github.com/pmezard/go-difflib/difflib -# github.com/portworx/kvdb v0.0.0-20200929023115-b312c7519467 +# github.com/portworx/kvdb v0.0.0-20230326003017-21a38cf82d4b ## explicit github.com/portworx/kvdb github.com/portworx/kvdb/common From 6cb0f5a52a6ea974d8c54b36eafc7c3b2e639495 Mon Sep 17 00:00:00 2001 From: sivakumar subraani Date: Fri, 23 Jun 2023 12:50:08 +0000 Subject: [PATCH 09/12] vendored libopenstorage/openstorage repo with v0.0.0-20230511212757-41751b27d69f --- go.mod | 3 +- go.sum | 16 +- vendor/github.com/dgrijalva/jwt-go/.gitignore | 4 - .../github.com/dgrijalva/jwt-go/.travis.yml | 13 - vendor/github.com/dgrijalva/jwt-go/LICENSE | 8 - .../dgrijalva/jwt-go/MIGRATION_GUIDE.md | 97 - vendor/github.com/dgrijalva/jwt-go/README.md | 100 - .../dgrijalva/jwt-go/VERSION_HISTORY.md | 118 - vendor/github.com/dgrijalva/jwt-go/claims.go | 134 - vendor/github.com/dgrijalva/jwt-go/doc.go | 4 - vendor/github.com/dgrijalva/jwt-go/ecdsa.go | 148 - .../dgrijalva/jwt-go/ecdsa_utils.go | 67 - vendor/github.com/dgrijalva/jwt-go/errors.go | 59 - vendor/github.com/dgrijalva/jwt-go/hmac.go | 95 - .../github.com/dgrijalva/jwt-go/map_claims.go | 94 - vendor/github.com/dgrijalva/jwt-go/none.go | 52 - vendor/github.com/dgrijalva/jwt-go/parser.go | 148 - vendor/github.com/dgrijalva/jwt-go/rsa.go | 101 - vendor/github.com/dgrijalva/jwt-go/rsa_pss.go | 126 - .../github.com/dgrijalva/jwt-go/rsa_utils.go | 101 - .../dgrijalva/jwt-go/signing_method.go | 35 - vendor/github.com/dgrijalva/jwt-go/token.go | 108 - .../libopenstorage/openstorage/api/api.go | 193 +- .../libopenstorage/openstorage/api/api.pb.go | 16000 +++++++++------- .../openstorage/api/api.pb.gw.go | 243 + .../libopenstorage/openstorage/api/api.proto | 282 +- .../openstorage/api/client/volume/client.go | 19 + .../openstorage/api/errors/errors.go | 14 + .../openstorage/api/spec/spec_handler.go | 27 +- .../openstorage/pkg/auth/selfsigned.go | 2 +- .../openstorage/pkg/auth/signature.go | 2 +- .../openstorage/pkg/auth/token.go | 2 +- .../openstorage/pkg/correlation/context.go | 9 +- .../pkg/grpcserver/creds_injector.go | 2 +- .../volume/drivers/pwx/connection.go | 55 +- .../openstorage/volume/volume.go | 7 + .../volume/volume_not_supported.go | 11 + vendor/modules.txt | 9 +- 38 files changed, 9402 insertions(+), 9106 deletions(-) delete mode 100644 vendor/github.com/dgrijalva/jwt-go/.gitignore delete mode 100644 vendor/github.com/dgrijalva/jwt-go/.travis.yml delete mode 100644 vendor/github.com/dgrijalva/jwt-go/LICENSE delete mode 100644 vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md delete mode 100644 vendor/github.com/dgrijalva/jwt-go/README.md delete mode 100644 vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md delete mode 100644 vendor/github.com/dgrijalva/jwt-go/claims.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/doc.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/ecdsa.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/errors.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/hmac.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/map_claims.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/none.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/parser.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/rsa.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/rsa_pss.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/rsa_utils.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/signing_method.go delete mode 100644 vendor/github.com/dgrijalva/jwt-go/token.go diff --git a/go.mod b/go.mod index e8583a8e0..dbc086b47 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,6 @@ require ( github.com/coreos/go-oidc v2.2.1+incompatible // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/dgrijalva/jwt-go v3.2.1-0.20180719211823-0b96aaa70776+incompatible // indirect github.com/dimchansky/utfbom v1.1.0 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect @@ -182,7 +181,7 @@ replace ( github.com/kubernetes-csi/external-snapshotter/v2 => github.com/kubernetes-csi/external-snapshotter/v2 v2.1.1 github.com/kubernetes-incubator/external-storage => github.com/libopenstorage/external-storage v0.20.4-openstorage-rc10 github.com/kubernetes-incubator/external-storage v0.20.4-openstorage-rc10 => github.com/libopenstorage/external-storage v0.20.4-openstorage-rc10 - github.com/libopenstorage/openstorage => github.com/libopenstorage/openstorage v1.0.1-0.20220804223926-812cb10d08c4 + github.com/libopenstorage/openstorage => github.com/libopenstorage/openstorage v0.0.0-20230511212757-41751b27d69f github.com/portworx/sched-ops => github.com/portworx/sched-ops v1.20.4-rc1.0.20230302072046-553cc8ef572b k8s.io/api => k8s.io/api v0.25.0 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.0 diff --git a/go.sum b/go.sum index 37e9f1a4d..27862741d 100644 --- a/go.sum +++ b/go.sum @@ -565,6 +565,7 @@ github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXn github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= @@ -796,6 +797,7 @@ github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJ github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= +github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= @@ -948,7 +950,6 @@ github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8l github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgrijalva/jwt-go v3.2.1-0.20180719211823-0b96aaa70776+incompatible h1:KXHmiNq5AM1PBK0MgUU0T1gHdd7fpR7NFnkcp0Tnw2E= github.com/dgrijalva/jwt-go v3.2.1-0.20180719211823-0b96aaa70776+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= @@ -1072,6 +1073,7 @@ github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYis github.com/garyburd/redigo v1.6.3/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= @@ -1439,7 +1441,6 @@ github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJr github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= @@ -1761,8 +1762,8 @@ github.com/libopenstorage/gossip v0.0.0-20190507031959-c26073a01952/go.mod h1:Tj github.com/libopenstorage/gossip v0.0.0-20200808224301-d5287c7c8b24/go.mod h1:TjXt2Iz2bTkpfc4Q6xN0ttiNipTVwEEYoZSMZHlfPek= github.com/libopenstorage/gossip v0.0.0-20220309192431-44c895e0923e h1:4l9N2Sw8VGGUqe50yC2BnTFMRJuHJGpIGZcCUZ2S6gg= github.com/libopenstorage/gossip v0.0.0-20220309192431-44c895e0923e/go.mod h1:TjXt2Iz2bTkpfc4Q6xN0ttiNipTVwEEYoZSMZHlfPek= -github.com/libopenstorage/openstorage v1.0.1-0.20220804223926-812cb10d08c4 h1:TNNQWzSkYcefedF6IS69BLVcmrEALE6orZ6S/xERvF4= -github.com/libopenstorage/openstorage v1.0.1-0.20220804223926-812cb10d08c4/go.mod h1:/FzPtmmVov3VTIIbfglyl9iRN5/rFPfwjP5wf9Sc0aU= +github.com/libopenstorage/openstorage v0.0.0-20230511212757-41751b27d69f h1:lMzBL+zs6cZ8t82bMFX4PcMOitGBmEXtlhMX73Zt0Fs= +github.com/libopenstorage/openstorage v0.0.0-20230511212757-41751b27d69f/go.mod h1:IpEMdOcPFyGpnvYeL1qLNeIHGnm6ofoDourL2kOdIoE= github.com/libopenstorage/openstorage-sdk-clients v0.109.0 h1:8G21CAwdNFOSTfDUv7eRFbiUgmght2qUCCS8G+ajYo8= github.com/libopenstorage/openstorage-sdk-clients v0.109.0/go.mod h1:vo0c/nLG2HIyQva4Avwx61U1kWcw4HGQh3sjzV2DEEs= github.com/libopenstorage/operator v0.0.0-20230112002659-7e73437e61d4/go.mod h1:/sGycOMcavuKLWm3Vd907luRXZA/mcqFs1AdEbbT5k4= @@ -1827,7 +1828,6 @@ github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a/go.mod h1:M1qo github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -1921,6 +1921,7 @@ github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQ github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mount v0.2.0/go.mod h1:aAivFE2LB3W4bACsUXChRHQ0qKWsetY4Y9V7sxOougM= +github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= @@ -1950,6 +1951,7 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= +github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= @@ -2044,6 +2046,7 @@ github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5X github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc92/go.mod h1:X1zlU4p7wOlX4+WRCz+hvlRv8phdL7UqbYD+vQwNMmE= github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= @@ -2053,6 +2056,7 @@ github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.m github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= @@ -3079,6 +3083,7 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -3659,6 +3664,7 @@ k8s.io/klog/v2 v2.70.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.25.0/go.mod h1:dfdl4aQkleiWK/U++UDLdDC8g2rsonhkB23zzUeBCgM= k8s.io/kube-controller-manager v0.25.0/go.mod h1:SjL1hKSG2z9wajnvjRHZv1zOsdDHjmbZd1ykmaYO6J8= k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20210216185858-15cd8face8d6/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= diff --git a/vendor/github.com/dgrijalva/jwt-go/.gitignore b/vendor/github.com/dgrijalva/jwt-go/.gitignore deleted file mode 100644 index 80bed650e..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -bin - - diff --git a/vendor/github.com/dgrijalva/jwt-go/.travis.yml b/vendor/github.com/dgrijalva/jwt-go/.travis.yml deleted file mode 100644 index 1027f56cd..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: go - -script: - - go vet ./... - - go test -v ./... - -go: - - 1.3 - - 1.4 - - 1.5 - - 1.6 - - 1.7 - - tip diff --git a/vendor/github.com/dgrijalva/jwt-go/LICENSE b/vendor/github.com/dgrijalva/jwt-go/LICENSE deleted file mode 100644 index df83a9c2f..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -Copyright (c) 2012 Dave Grijalva - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md b/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md deleted file mode 100644 index 7fc1f793c..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md +++ /dev/null @@ -1,97 +0,0 @@ -## Migration Guide from v2 -> v3 - -Version 3 adds several new, frequently requested features. To do so, it introduces a few breaking changes. We've worked to keep these as minimal as possible. This guide explains the breaking changes and how you can quickly update your code. - -### `Token.Claims` is now an interface type - -The most requested feature from the 2.0 verison of this library was the ability to provide a custom type to the JSON parser for claims. This was implemented by introducing a new interface, `Claims`, to replace `map[string]interface{}`. We also included two concrete implementations of `Claims`: `MapClaims` and `StandardClaims`. - -`MapClaims` is an alias for `map[string]interface{}` with built in validation behavior. It is the default claims type when using `Parse`. The usage is unchanged except you must type cast the claims property. - -The old example for parsing a token looked like this.. - -```go - if token, err := jwt.Parse(tokenString, keyLookupFunc); err == nil { - fmt.Printf("Token for user %v expires %v", token.Claims["user"], token.Claims["exp"]) - } -``` - -is now directly mapped to... - -```go - if token, err := jwt.Parse(tokenString, keyLookupFunc); err == nil { - claims := token.Claims.(jwt.MapClaims) - fmt.Printf("Token for user %v expires %v", claims["user"], claims["exp"]) - } -``` - -`StandardClaims` is designed to be embedded in your custom type. You can supply a custom claims type with the new `ParseWithClaims` function. Here's an example of using a custom claims type. - -```go - type MyCustomClaims struct { - User string - *StandardClaims - } - - if token, err := jwt.ParseWithClaims(tokenString, &MyCustomClaims{}, keyLookupFunc); err == nil { - claims := token.Claims.(*MyCustomClaims) - fmt.Printf("Token for user %v expires %v", claims.User, claims.StandardClaims.ExpiresAt) - } -``` - -### `ParseFromRequest` has been moved - -To keep this library focused on the tokens without becoming overburdened with complex request processing logic, `ParseFromRequest` and its new companion `ParseFromRequestWithClaims` have been moved to a subpackage, `request`. The method signatues have also been augmented to receive a new argument: `Extractor`. - -`Extractors` do the work of picking the token string out of a request. The interface is simple and composable. - -This simple parsing example: - -```go - if token, err := jwt.ParseFromRequest(tokenString, req, keyLookupFunc); err == nil { - fmt.Printf("Token for user %v expires %v", token.Claims["user"], token.Claims["exp"]) - } -``` - -is directly mapped to: - -```go - if token, err := request.ParseFromRequest(req, request.OAuth2Extractor, keyLookupFunc); err == nil { - claims := token.Claims.(jwt.MapClaims) - fmt.Printf("Token for user %v expires %v", claims["user"], claims["exp"]) - } -``` - -There are several concrete `Extractor` types provided for your convenience: - -* `HeaderExtractor` will search a list of headers until one contains content. -* `ArgumentExtractor` will search a list of keys in request query and form arguments until one contains content. -* `MultiExtractor` will try a list of `Extractors` in order until one returns content. -* `AuthorizationHeaderExtractor` will look in the `Authorization` header for a `Bearer` token. -* `OAuth2Extractor` searches the places an OAuth2 token would be specified (per the spec): `Authorization` header and `access_token` argument -* `PostExtractionFilter` wraps an `Extractor`, allowing you to process the content before it's parsed. A simple example is stripping the `Bearer ` text from a header - - -### RSA signing methods no longer accept `[]byte` keys - -Due to a [critical vulnerability](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/), we've decided the convenience of accepting `[]byte` instead of `rsa.PublicKey` or `rsa.PrivateKey` isn't worth the risk of misuse. - -To replace this behavior, we've added two helper methods: `ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error)` and `ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error)`. These are just simple helpers for unpacking PEM encoded PKCS1 and PKCS8 keys. If your keys are encoded any other way, all you need to do is convert them to the `crypto/rsa` package's types. - -```go - func keyLookupFunc(*Token) (interface{}, error) { - // Don't forget to validate the alg is what you expect: - if _, ok := token.Method.(*jwt.SigningMethodRSA); !ok { - return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"]) - } - - // Look up key - key, err := lookupPublicKey(token.Header["kid"]) - if err != nil { - return nil, err - } - - // Unpack key from PEM encoded PKCS8 - return jwt.ParseRSAPublicKeyFromPEM(key) - } -``` diff --git a/vendor/github.com/dgrijalva/jwt-go/README.md b/vendor/github.com/dgrijalva/jwt-go/README.md deleted file mode 100644 index add010377..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# jwt-go - -[![Build Status](https://travis-ci.org/dgrijalva/jwt-go.svg?branch=master)](https://travis-ci.org/dgrijalva/jwt-go) -[![GoDoc](https://godoc.org/github.com/dgrijalva/jwt-go?status.svg)](https://godoc.org/github.com/dgrijalva/jwt-go) - -A [go](http://www.golang.org) (or 'golang' for search engine friendliness) implementation of [JSON Web Tokens](http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html) - -**NEW VERSION COMING:** There have been a lot of improvements suggested since the version 3.0.0 released in 2016. I'm working now on cutting two different releases: 3.2.0 will contain any non-breaking changes or enhancements. 4.0.0 will follow shortly which will include breaking changes. See the 4.0.0 milestone to get an idea of what's coming. If you have other ideas, or would like to participate in 4.0.0, now's the time. If you depend on this library and don't want to be interrupted, I recommend you use your dependency mangement tool to pin to version 3. - -**SECURITY NOTICE:** Some older versions of Go have a security issue in the cryotp/elliptic. Recommendation is to upgrade to at least 1.8.3. See issue #216 for more detail. - -**SECURITY NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage. See the examples provided. - -## What the heck is a JWT? - -JWT.io has [a great introduction](https://jwt.io/introduction) to JSON Web Tokens. - -In short, it's a signed JSON object that does something useful (for example, authentication). It's commonly used for `Bearer` tokens in Oauth 2. A token is made of three parts, separated by `.`'s. The first two parts are JSON objects, that have been [base64url](http://tools.ietf.org/html/rfc4648) encoded. The last part is the signature, encoded the same way. - -The first part is called the header. It contains the necessary information for verifying the last part, the signature. For example, which encryption method was used for signing and what key was used. - -The part in the middle is the interesting bit. It's called the Claims and contains the actual stuff you care about. Refer to [the RFC](http://self-issued.info/docs/draft-jones-json-web-token.html) for information about reserved keys and the proper way to add your own. - -## What's in the box? - -This library supports the parsing and verification as well as the generation and signing of JWTs. Current supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own. - -## Examples - -See [the project documentation](https://godoc.org/github.com/dgrijalva/jwt-go) for examples of usage: - -* [Simple example of parsing and validating a token](https://godoc.org/github.com/dgrijalva/jwt-go#example-Parse--Hmac) -* [Simple example of building and signing a token](https://godoc.org/github.com/dgrijalva/jwt-go#example-New--Hmac) -* [Directory of Examples](https://godoc.org/github.com/dgrijalva/jwt-go#pkg-examples) - -## Extensions - -This library publishes all the necessary components for adding your own signing methods. Simply implement the `SigningMethod` interface and register a factory method using `RegisterSigningMethod`. - -Here's an example of an extension that integrates with the Google App Engine signing tools: https://github.com/someone1/gcp-jwt-go - -## Compliance - -This library was last reviewed to comply with [RTF 7519](http://www.rfc-editor.org/info/rfc7519) dated May 2015 with a few notable differences: - -* In order to protect against accidental use of [Unsecured JWTs](http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#UnsecuredJWT), tokens using `alg=none` will only be accepted if the constant `jwt.UnsafeAllowNoneSignatureType` is provided as the key. - -## Project Status & Versioning - -This library is considered production ready. Feedback and feature requests are appreciated. The API should be considered stable. There should be very few backwards-incompatible changes outside of major version updates (and only with good reason). - -This project uses [Semantic Versioning 2.0.0](http://semver.org). Accepted pull requests will land on `master`. Periodically, versions will be tagged from `master`. You can find all the releases on [the project releases page](https://github.com/dgrijalva/jwt-go/releases). - -While we try to make it obvious when we make breaking changes, there isn't a great mechanism for pushing announcements out to users. You may want to use this alternative package include: `gopkg.in/dgrijalva/jwt-go.v3`. It will do the right thing WRT semantic versioning. - -**BREAKING CHANGES:*** -* Version 3.0.0 includes _a lot_ of changes from the 2.x line, including a few that break the API. We've tried to break as few things as possible, so there should just be a few type signature changes. A full list of breaking changes is available in `VERSION_HISTORY.md`. See `MIGRATION_GUIDE.md` for more information on updating your code. - -## Usage Tips - -### Signing vs Encryption - -A token is simply a JSON object that is signed by its author. this tells you exactly two things about the data: - -* The author of the token was in the possession of the signing secret -* The data has not been modified since it was signed - -It's important to know that JWT does not provide encryption, which means anyone who has access to the token can read its contents. If you need to protect (encrypt) the data, there is a companion spec, `JWE`, that provides this functionality. JWE is currently outside the scope of this library. - -### Choosing a Signing Method - -There are several signing methods available, and you should probably take the time to learn about the various options before choosing one. The principal design decision is most likely going to be symmetric vs asymmetric. - -Symmetric signing methods, such as HSA, use only a single secret. This is probably the simplest signing method to use since any `[]byte` can be used as a valid secret. They are also slightly computationally faster to use, though this rarely is enough to matter. Symmetric signing methods work the best when both producers and consumers of tokens are trusted, or even the same system. Since the same secret is used to both sign and validate tokens, you can't easily distribute the key for validation. - -Asymmetric signing methods, such as RSA, use different keys for signing and verifying tokens. This makes it possible to produce tokens with a private key, and allow any consumer to access the public key for verification. - -### Signing Methods and Key Types - -Each signing method expects a different object type for its signing keys. See the package documentation for details. Here are the most common ones: - -* The [HMAC signing method](https://godoc.org/github.com/dgrijalva/jwt-go#SigningMethodHMAC) (`HS256`,`HS384`,`HS512`) expect `[]byte` values for signing and validation -* The [RSA signing method](https://godoc.org/github.com/dgrijalva/jwt-go#SigningMethodRSA) (`RS256`,`RS384`,`RS512`) expect `*rsa.PrivateKey` for signing and `*rsa.PublicKey` for validation -* The [ECDSA signing method](https://godoc.org/github.com/dgrijalva/jwt-go#SigningMethodECDSA) (`ES256`,`ES384`,`ES512`) expect `*ecdsa.PrivateKey` for signing and `*ecdsa.PublicKey` for validation - -### JWT and OAuth - -It's worth mentioning that OAuth and JWT are not the same thing. A JWT token is simply a signed JSON object. It can be used anywhere such a thing is useful. There is some confusion, though, as JWT is the most common type of bearer token used in OAuth2 authentication. - -Without going too far down the rabbit hole, here's a description of the interaction of these technologies: - -* OAuth is a protocol for allowing an identity provider to be separate from the service a user is logging in to. For example, whenever you use Facebook to log into a different service (Yelp, Spotify, etc), you are using OAuth. -* OAuth defines several options for passing around authentication data. One popular method is called a "bearer token". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token. -* Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL. - -## More - -Documentation can be found [on godoc.org](http://godoc.org/github.com/dgrijalva/jwt-go). - -The command line utility included in this project (cmd/jwt) provides a straightforward example of token creation and parsing as well as a useful tool for debugging your own integration. You'll also find several implementation examples in the documentation. diff --git a/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md b/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md deleted file mode 100644 index 637029831..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md +++ /dev/null @@ -1,118 +0,0 @@ -## `jwt-go` Version History - -#### 3.2.0 - -* Added method `ParseUnverified` to allow users to split up the tasks of parsing and validation -* HMAC signing method returns `ErrInvalidKeyType` instead of `ErrInvalidKey` where appropriate -* Added options to `request.ParseFromRequest`, which allows for an arbitrary list of modifiers to parsing behavior. Initial set include `WithClaims` and `WithParser`. Existing usage of this function will continue to work as before. -* Deprecated `ParseFromRequestWithClaims` to simplify API in the future. - -#### 3.1.0 - -* Improvements to `jwt` command line tool -* Added `SkipClaimsValidation` option to `Parser` -* Documentation updates - -#### 3.0.0 - -* **Compatibility Breaking Changes**: See MIGRATION_GUIDE.md for tips on updating your code - * Dropped support for `[]byte` keys when using RSA signing methods. This convenience feature could contribute to security vulnerabilities involving mismatched key types with signing methods. - * `ParseFromRequest` has been moved to `request` subpackage and usage has changed - * The `Claims` property on `Token` is now type `Claims` instead of `map[string]interface{}`. The default value is type `MapClaims`, which is an alias to `map[string]interface{}`. This makes it possible to use a custom type when decoding claims. -* Other Additions and Changes - * Added `Claims` interface type to allow users to decode the claims into a custom type - * Added `ParseWithClaims`, which takes a third argument of type `Claims`. Use this function instead of `Parse` if you have a custom type you'd like to decode into. - * Dramatically improved the functionality and flexibility of `ParseFromRequest`, which is now in the `request` subpackage - * Added `ParseFromRequestWithClaims` which is the `FromRequest` equivalent of `ParseWithClaims` - * Added new interface type `Extractor`, which is used for extracting JWT strings from http requests. Used with `ParseFromRequest` and `ParseFromRequestWithClaims`. - * Added several new, more specific, validation errors to error type bitmask - * Moved examples from README to executable example files - * Signing method registry is now thread safe - * Added new property to `ValidationError`, which contains the raw error returned by calls made by parse/verify (such as those returned by keyfunc or json parser) - -#### 2.7.0 - -This will likely be the last backwards compatible release before 3.0.0, excluding essential bug fixes. - -* Added new option `-show` to the `jwt` command that will just output the decoded token without verifying -* Error text for expired tokens includes how long it's been expired -* Fixed incorrect error returned from `ParseRSAPublicKeyFromPEM` -* Documentation updates - -#### 2.6.0 - -* Exposed inner error within ValidationError -* Fixed validation errors when using UseJSONNumber flag -* Added several unit tests - -#### 2.5.0 - -* Added support for signing method none. You shouldn't use this. The API tries to make this clear. -* Updated/fixed some documentation -* Added more helpful error message when trying to parse tokens that begin with `BEARER ` - -#### 2.4.0 - -* Added new type, Parser, to allow for configuration of various parsing parameters - * You can now specify a list of valid signing methods. Anything outside this set will be rejected. - * You can now opt to use the `json.Number` type instead of `float64` when parsing token JSON -* Added support for [Travis CI](https://travis-ci.org/dgrijalva/jwt-go) -* Fixed some bugs with ECDSA parsing - -#### 2.3.0 - -* Added support for ECDSA signing methods -* Added support for RSA PSS signing methods (requires go v1.4) - -#### 2.2.0 - -* Gracefully handle a `nil` `Keyfunc` being passed to `Parse`. Result will now be the parsed token and an error, instead of a panic. - -#### 2.1.0 - -Backwards compatible API change that was missed in 2.0.0. - -* The `SignedString` method on `Token` now takes `interface{}` instead of `[]byte` - -#### 2.0.0 - -There were two major reasons for breaking backwards compatibility with this update. The first was a refactor required to expand the width of the RSA and HMAC-SHA signing implementations. There will likely be no required code changes to support this change. - -The second update, while unfortunately requiring a small change in integration, is required to open up this library to other signing methods. Not all keys used for all signing methods have a single standard on-disk representation. Requiring `[]byte` as the type for all keys proved too limiting. Additionally, this implementation allows for pre-parsed tokens to be reused, which might matter in an application that parses a high volume of tokens with a small set of keys. Backwards compatibilty has been maintained for passing `[]byte` to the RSA signing methods, but they will also accept `*rsa.PublicKey` and `*rsa.PrivateKey`. - -It is likely the only integration change required here will be to change `func(t *jwt.Token) ([]byte, error)` to `func(t *jwt.Token) (interface{}, error)` when calling `Parse`. - -* **Compatibility Breaking Changes** - * `SigningMethodHS256` is now `*SigningMethodHMAC` instead of `type struct` - * `SigningMethodRS256` is now `*SigningMethodRSA` instead of `type struct` - * `KeyFunc` now returns `interface{}` instead of `[]byte` - * `SigningMethod.Sign` now takes `interface{}` instead of `[]byte` for the key - * `SigningMethod.Verify` now takes `interface{}` instead of `[]byte` for the key -* Renamed type `SigningMethodHS256` to `SigningMethodHMAC`. Specific sizes are now just instances of this type. - * Added public package global `SigningMethodHS256` - * Added public package global `SigningMethodHS384` - * Added public package global `SigningMethodHS512` -* Renamed type `SigningMethodRS256` to `SigningMethodRSA`. Specific sizes are now just instances of this type. - * Added public package global `SigningMethodRS256` - * Added public package global `SigningMethodRS384` - * Added public package global `SigningMethodRS512` -* Moved sample private key for HMAC tests from an inline value to a file on disk. Value is unchanged. -* Refactored the RSA implementation to be easier to read -* Exposed helper methods `ParseRSAPrivateKeyFromPEM` and `ParseRSAPublicKeyFromPEM` - -#### 1.0.2 - -* Fixed bug in parsing public keys from certificates -* Added more tests around the parsing of keys for RS256 -* Code refactoring in RS256 implementation. No functional changes - -#### 1.0.1 - -* Fixed panic if RS256 signing method was passed an invalid key - -#### 1.0.0 - -* First versioned release -* API stabilized -* Supports creating, signing, parsing, and validating JWT tokens -* Supports RS256 and HS256 signing methods \ No newline at end of file diff --git a/vendor/github.com/dgrijalva/jwt-go/claims.go b/vendor/github.com/dgrijalva/jwt-go/claims.go deleted file mode 100644 index f0228f02e..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/claims.go +++ /dev/null @@ -1,134 +0,0 @@ -package jwt - -import ( - "crypto/subtle" - "fmt" - "time" -) - -// For a type to be a Claims object, it must just have a Valid method that determines -// if the token is invalid for any supported reason -type Claims interface { - Valid() error -} - -// Structured version of Claims Section, as referenced at -// https://tools.ietf.org/html/rfc7519#section-4.1 -// See examples for how to use this with your own claim types -type StandardClaims struct { - Audience string `json:"aud,omitempty"` - ExpiresAt int64 `json:"exp,omitempty"` - Id string `json:"jti,omitempty"` - IssuedAt int64 `json:"iat,omitempty"` - Issuer string `json:"iss,omitempty"` - NotBefore int64 `json:"nbf,omitempty"` - Subject string `json:"sub,omitempty"` -} - -// Validates time based claims "exp, iat, nbf". -// There is no accounting for clock skew. -// As well, if any of the above claims are not in the token, it will still -// be considered a valid claim. -func (c StandardClaims) Valid() error { - vErr := new(ValidationError) - now := TimeFunc().Unix() - - // The claims below are optional, by default, so if they are set to the - // default value in Go, let's not fail the verification for them. - if c.VerifyExpiresAt(now, false) == false { - delta := time.Unix(now, 0).Sub(time.Unix(c.ExpiresAt, 0)) - vErr.Inner = fmt.Errorf("token is expired by %v", delta) - vErr.Errors |= ValidationErrorExpired - } - - if c.VerifyIssuedAt(now, false) == false { - vErr.Inner = fmt.Errorf("Token used before issued") - vErr.Errors |= ValidationErrorIssuedAt - } - - if c.VerifyNotBefore(now, false) == false { - vErr.Inner = fmt.Errorf("token is not valid yet") - vErr.Errors |= ValidationErrorNotValidYet - } - - if vErr.valid() { - return nil - } - - return vErr -} - -// Compares the aud claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyAudience(cmp string, req bool) bool { - return verifyAud(c.Audience, cmp, req) -} - -// Compares the exp claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyExpiresAt(cmp int64, req bool) bool { - return verifyExp(c.ExpiresAt, cmp, req) -} - -// Compares the iat claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyIssuedAt(cmp int64, req bool) bool { - return verifyIat(c.IssuedAt, cmp, req) -} - -// Compares the iss claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyIssuer(cmp string, req bool) bool { - return verifyIss(c.Issuer, cmp, req) -} - -// Compares the nbf claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (c *StandardClaims) VerifyNotBefore(cmp int64, req bool) bool { - return verifyNbf(c.NotBefore, cmp, req) -} - -// ----- helpers - -func verifyAud(aud string, cmp string, required bool) bool { - if aud == "" { - return !required - } - if subtle.ConstantTimeCompare([]byte(aud), []byte(cmp)) != 0 { - return true - } else { - return false - } -} - -func verifyExp(exp int64, now int64, required bool) bool { - if exp == 0 { - return !required - } - return now <= exp -} - -func verifyIat(iat int64, now int64, required bool) bool { - if iat == 0 { - return !required - } - return now >= iat -} - -func verifyIss(iss string, cmp string, required bool) bool { - if iss == "" { - return !required - } - if subtle.ConstantTimeCompare([]byte(iss), []byte(cmp)) != 0 { - return true - } else { - return false - } -} - -func verifyNbf(nbf int64, now int64, required bool) bool { - if nbf == 0 { - return !required - } - return now >= nbf -} diff --git a/vendor/github.com/dgrijalva/jwt-go/doc.go b/vendor/github.com/dgrijalva/jwt-go/doc.go deleted file mode 100644 index a86dc1a3b..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html -// -// See README.md for more info. -package jwt diff --git a/vendor/github.com/dgrijalva/jwt-go/ecdsa.go b/vendor/github.com/dgrijalva/jwt-go/ecdsa.go deleted file mode 100644 index f97738124..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/ecdsa.go +++ /dev/null @@ -1,148 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/ecdsa" - "crypto/rand" - "errors" - "math/big" -) - -var ( - // Sadly this is missing from crypto/ecdsa compared to crypto/rsa - ErrECDSAVerification = errors.New("crypto/ecdsa: verification error") -) - -// Implements the ECDSA family of signing methods signing methods -// Expects *ecdsa.PrivateKey for signing and *ecdsa.PublicKey for verification -type SigningMethodECDSA struct { - Name string - Hash crypto.Hash - KeySize int - CurveBits int -} - -// Specific instances for EC256 and company -var ( - SigningMethodES256 *SigningMethodECDSA - SigningMethodES384 *SigningMethodECDSA - SigningMethodES512 *SigningMethodECDSA -) - -func init() { - // ES256 - SigningMethodES256 = &SigningMethodECDSA{"ES256", crypto.SHA256, 32, 256} - RegisterSigningMethod(SigningMethodES256.Alg(), func() SigningMethod { - return SigningMethodES256 - }) - - // ES384 - SigningMethodES384 = &SigningMethodECDSA{"ES384", crypto.SHA384, 48, 384} - RegisterSigningMethod(SigningMethodES384.Alg(), func() SigningMethod { - return SigningMethodES384 - }) - - // ES512 - SigningMethodES512 = &SigningMethodECDSA{"ES512", crypto.SHA512, 66, 521} - RegisterSigningMethod(SigningMethodES512.Alg(), func() SigningMethod { - return SigningMethodES512 - }) -} - -func (m *SigningMethodECDSA) Alg() string { - return m.Name -} - -// Implements the Verify method from SigningMethod -// For this verify method, key must be an ecdsa.PublicKey struct -func (m *SigningMethodECDSA) Verify(signingString, signature string, key interface{}) error { - var err error - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - // Get the key - var ecdsaKey *ecdsa.PublicKey - switch k := key.(type) { - case *ecdsa.PublicKey: - ecdsaKey = k - default: - return ErrInvalidKeyType - } - - if len(sig) != 2*m.KeySize { - return ErrECDSAVerification - } - - r := big.NewInt(0).SetBytes(sig[:m.KeySize]) - s := big.NewInt(0).SetBytes(sig[m.KeySize:]) - - // Create hasher - if !m.Hash.Available() { - return ErrHashUnavailable - } - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Verify the signature - if verifystatus := ecdsa.Verify(ecdsaKey, hasher.Sum(nil), r, s); verifystatus == true { - return nil - } else { - return ErrECDSAVerification - } -} - -// Implements the Sign method from SigningMethod -// For this signing method, key must be an ecdsa.PrivateKey struct -func (m *SigningMethodECDSA) Sign(signingString string, key interface{}) (string, error) { - // Get the key - var ecdsaKey *ecdsa.PrivateKey - switch k := key.(type) { - case *ecdsa.PrivateKey: - ecdsaKey = k - default: - return "", ErrInvalidKeyType - } - - // Create the hasher - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Sign the string and return r, s - if r, s, err := ecdsa.Sign(rand.Reader, ecdsaKey, hasher.Sum(nil)); err == nil { - curveBits := ecdsaKey.Curve.Params().BitSize - - if m.CurveBits != curveBits { - return "", ErrInvalidKey - } - - keyBytes := curveBits / 8 - if curveBits%8 > 0 { - keyBytes += 1 - } - - // We serialize the outpus (r and s) into big-endian byte arrays and pad - // them with zeros on the left to make sure the sizes work out. Both arrays - // must be keyBytes long, and the output must be 2*keyBytes long. - rBytes := r.Bytes() - rBytesPadded := make([]byte, keyBytes) - copy(rBytesPadded[keyBytes-len(rBytes):], rBytes) - - sBytes := s.Bytes() - sBytesPadded := make([]byte, keyBytes) - copy(sBytesPadded[keyBytes-len(sBytes):], sBytes) - - out := append(rBytesPadded, sBytesPadded...) - - return EncodeSegment(out), nil - } else { - return "", err - } -} diff --git a/vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go b/vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go deleted file mode 100644 index d19624b72..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go +++ /dev/null @@ -1,67 +0,0 @@ -package jwt - -import ( - "crypto/ecdsa" - "crypto/x509" - "encoding/pem" - "errors" -) - -var ( - ErrNotECPublicKey = errors.New("Key is not a valid ECDSA public key") - ErrNotECPrivateKey = errors.New("Key is not a valid ECDSA private key") -) - -// Parse PEM encoded Elliptic Curve Private Key Structure -func ParseECPrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil { - return nil, err - } - - var pkey *ecdsa.PrivateKey - var ok bool - if pkey, ok = parsedKey.(*ecdsa.PrivateKey); !ok { - return nil, ErrNotECPrivateKey - } - - return pkey, nil -} - -// Parse PEM encoded PKCS1 or PKCS8 public key -func ParseECPublicKeyFromPEM(key []byte) (*ecdsa.PublicKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { - if cert, err := x509.ParseCertificate(block.Bytes); err == nil { - parsedKey = cert.PublicKey - } else { - return nil, err - } - } - - var pkey *ecdsa.PublicKey - var ok bool - if pkey, ok = parsedKey.(*ecdsa.PublicKey); !ok { - return nil, ErrNotECPublicKey - } - - return pkey, nil -} diff --git a/vendor/github.com/dgrijalva/jwt-go/errors.go b/vendor/github.com/dgrijalva/jwt-go/errors.go deleted file mode 100644 index 1c93024aa..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/errors.go +++ /dev/null @@ -1,59 +0,0 @@ -package jwt - -import ( - "errors" -) - -// Error constants -var ( - ErrInvalidKey = errors.New("key is invalid") - ErrInvalidKeyType = errors.New("key is of invalid type") - ErrHashUnavailable = errors.New("the requested hash function is unavailable") -) - -// The errors that might occur when parsing and validating a token -const ( - ValidationErrorMalformed uint32 = 1 << iota // Token is malformed - ValidationErrorUnverifiable // Token could not be verified because of signing problems - ValidationErrorSignatureInvalid // Signature validation failed - - // Standard Claim validation errors - ValidationErrorAudience // AUD validation failed - ValidationErrorExpired // EXP validation failed - ValidationErrorIssuedAt // IAT validation failed - ValidationErrorIssuer // ISS validation failed - ValidationErrorNotValidYet // NBF validation failed - ValidationErrorId // JTI validation failed - ValidationErrorClaimsInvalid // Generic claims validation error -) - -// Helper for constructing a ValidationError with a string error message -func NewValidationError(errorText string, errorFlags uint32) *ValidationError { - return &ValidationError{ - text: errorText, - Errors: errorFlags, - } -} - -// The error from Parse if token is not valid -type ValidationError struct { - Inner error // stores the error returned by external dependencies, i.e.: KeyFunc - Errors uint32 // bitfield. see ValidationError... constants - text string // errors that do not have a valid error just have text -} - -// Validation error is an error type -func (e ValidationError) Error() string { - if e.Inner != nil { - return e.Inner.Error() - } else if e.text != "" { - return e.text - } else { - return "token is invalid" - } -} - -// No errors -func (e *ValidationError) valid() bool { - return e.Errors == 0 -} diff --git a/vendor/github.com/dgrijalva/jwt-go/hmac.go b/vendor/github.com/dgrijalva/jwt-go/hmac.go deleted file mode 100644 index addbe5d40..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/hmac.go +++ /dev/null @@ -1,95 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/hmac" - "errors" -) - -// Implements the HMAC-SHA family of signing methods signing methods -// Expects key type of []byte for both signing and validation -type SigningMethodHMAC struct { - Name string - Hash crypto.Hash -} - -// Specific instances for HS256 and company -var ( - SigningMethodHS256 *SigningMethodHMAC - SigningMethodHS384 *SigningMethodHMAC - SigningMethodHS512 *SigningMethodHMAC - ErrSignatureInvalid = errors.New("signature is invalid") -) - -func init() { - // HS256 - SigningMethodHS256 = &SigningMethodHMAC{"HS256", crypto.SHA256} - RegisterSigningMethod(SigningMethodHS256.Alg(), func() SigningMethod { - return SigningMethodHS256 - }) - - // HS384 - SigningMethodHS384 = &SigningMethodHMAC{"HS384", crypto.SHA384} - RegisterSigningMethod(SigningMethodHS384.Alg(), func() SigningMethod { - return SigningMethodHS384 - }) - - // HS512 - SigningMethodHS512 = &SigningMethodHMAC{"HS512", crypto.SHA512} - RegisterSigningMethod(SigningMethodHS512.Alg(), func() SigningMethod { - return SigningMethodHS512 - }) -} - -func (m *SigningMethodHMAC) Alg() string { - return m.Name -} - -// Verify the signature of HSXXX tokens. Returns nil if the signature is valid. -func (m *SigningMethodHMAC) Verify(signingString, signature string, key interface{}) error { - // Verify the key is the right type - keyBytes, ok := key.([]byte) - if !ok { - return ErrInvalidKeyType - } - - // Decode signature, for comparison - sig, err := DecodeSegment(signature) - if err != nil { - return err - } - - // Can we use the specified hashing method? - if !m.Hash.Available() { - return ErrHashUnavailable - } - - // This signing method is symmetric, so we validate the signature - // by reproducing the signature from the signing string and key, then - // comparing that against the provided signature. - hasher := hmac.New(m.Hash.New, keyBytes) - hasher.Write([]byte(signingString)) - if !hmac.Equal(sig, hasher.Sum(nil)) { - return ErrSignatureInvalid - } - - // No validation errors. Signature is good. - return nil -} - -// Implements the Sign method from SigningMethod for this signing method. -// Key must be []byte -func (m *SigningMethodHMAC) Sign(signingString string, key interface{}) (string, error) { - if keyBytes, ok := key.([]byte); ok { - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := hmac.New(m.Hash.New, keyBytes) - hasher.Write([]byte(signingString)) - - return EncodeSegment(hasher.Sum(nil)), nil - } - - return "", ErrInvalidKeyType -} diff --git a/vendor/github.com/dgrijalva/jwt-go/map_claims.go b/vendor/github.com/dgrijalva/jwt-go/map_claims.go deleted file mode 100644 index 291213c46..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/map_claims.go +++ /dev/null @@ -1,94 +0,0 @@ -package jwt - -import ( - "encoding/json" - "errors" - // "fmt" -) - -// Claims type that uses the map[string]interface{} for JSON decoding -// This is the default claims type if you don't supply one -type MapClaims map[string]interface{} - -// Compares the aud claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyAudience(cmp string, req bool) bool { - aud, _ := m["aud"].(string) - return verifyAud(aud, cmp, req) -} - -// Compares the exp claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyExpiresAt(cmp int64, req bool) bool { - switch exp := m["exp"].(type) { - case float64: - return verifyExp(int64(exp), cmp, req) - case json.Number: - v, _ := exp.Int64() - return verifyExp(v, cmp, req) - } - return req == false -} - -// Compares the iat claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyIssuedAt(cmp int64, req bool) bool { - switch iat := m["iat"].(type) { - case float64: - return verifyIat(int64(iat), cmp, req) - case json.Number: - v, _ := iat.Int64() - return verifyIat(v, cmp, req) - } - return req == false -} - -// Compares the iss claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyIssuer(cmp string, req bool) bool { - iss, _ := m["iss"].(string) - return verifyIss(iss, cmp, req) -} - -// Compares the nbf claim against cmp. -// If required is false, this method will return true if the value matches or is unset -func (m MapClaims) VerifyNotBefore(cmp int64, req bool) bool { - switch nbf := m["nbf"].(type) { - case float64: - return verifyNbf(int64(nbf), cmp, req) - case json.Number: - v, _ := nbf.Int64() - return verifyNbf(v, cmp, req) - } - return req == false -} - -// Validates time based claims "exp, iat, nbf". -// There is no accounting for clock skew. -// As well, if any of the above claims are not in the token, it will still -// be considered a valid claim. -func (m MapClaims) Valid() error { - vErr := new(ValidationError) - now := TimeFunc().Unix() - - if m.VerifyExpiresAt(now, false) == false { - vErr.Inner = errors.New("Token is expired") - vErr.Errors |= ValidationErrorExpired - } - - if m.VerifyIssuedAt(now, false) == false { - vErr.Inner = errors.New("Token used before issued") - vErr.Errors |= ValidationErrorIssuedAt - } - - if m.VerifyNotBefore(now, false) == false { - vErr.Inner = errors.New("Token is not valid yet") - vErr.Errors |= ValidationErrorNotValidYet - } - - if vErr.valid() { - return nil - } - - return vErr -} diff --git a/vendor/github.com/dgrijalva/jwt-go/none.go b/vendor/github.com/dgrijalva/jwt-go/none.go deleted file mode 100644 index f04d189d0..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/none.go +++ /dev/null @@ -1,52 +0,0 @@ -package jwt - -// Implements the none signing method. This is required by the spec -// but you probably should never use it. -var SigningMethodNone *signingMethodNone - -const UnsafeAllowNoneSignatureType unsafeNoneMagicConstant = "none signing method allowed" - -var NoneSignatureTypeDisallowedError error - -type signingMethodNone struct{} -type unsafeNoneMagicConstant string - -func init() { - SigningMethodNone = &signingMethodNone{} - NoneSignatureTypeDisallowedError = NewValidationError("'none' signature type is not allowed", ValidationErrorSignatureInvalid) - - RegisterSigningMethod(SigningMethodNone.Alg(), func() SigningMethod { - return SigningMethodNone - }) -} - -func (m *signingMethodNone) Alg() string { - return "none" -} - -// Only allow 'none' alg type if UnsafeAllowNoneSignatureType is specified as the key -func (m *signingMethodNone) Verify(signingString, signature string, key interface{}) (err error) { - // Key must be UnsafeAllowNoneSignatureType to prevent accidentally - // accepting 'none' signing method - if _, ok := key.(unsafeNoneMagicConstant); !ok { - return NoneSignatureTypeDisallowedError - } - // If signing method is none, signature must be an empty string - if signature != "" { - return NewValidationError( - "'none' signing method with non-empty signature", - ValidationErrorSignatureInvalid, - ) - } - - // Accept 'none' signing method. - return nil -} - -// Only allow 'none' signing if UnsafeAllowNoneSignatureType is specified as the key -func (m *signingMethodNone) Sign(signingString string, key interface{}) (string, error) { - if _, ok := key.(unsafeNoneMagicConstant); ok { - return "", nil - } - return "", NoneSignatureTypeDisallowedError -} diff --git a/vendor/github.com/dgrijalva/jwt-go/parser.go b/vendor/github.com/dgrijalva/jwt-go/parser.go deleted file mode 100644 index d6901d9ad..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/parser.go +++ /dev/null @@ -1,148 +0,0 @@ -package jwt - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" -) - -type Parser struct { - ValidMethods []string // If populated, only these methods will be considered valid - UseJSONNumber bool // Use JSON Number format in JSON decoder - SkipClaimsValidation bool // Skip claims validation during token parsing -} - -// Parse, validate, and return a token. -// keyFunc will receive the parsed token and should return the key for validating. -// If everything is kosher, err will be nil -func (p *Parser) Parse(tokenString string, keyFunc Keyfunc) (*Token, error) { - return p.ParseWithClaims(tokenString, MapClaims{}, keyFunc) -} - -func (p *Parser) ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) { - token, parts, err := p.ParseUnverified(tokenString, claims) - if err != nil { - return token, err - } - - // Verify signing method is in the required set - if p.ValidMethods != nil { - var signingMethodValid = false - var alg = token.Method.Alg() - for _, m := range p.ValidMethods { - if m == alg { - signingMethodValid = true - break - } - } - if !signingMethodValid { - // signing method is not in the listed set - return token, NewValidationError(fmt.Sprintf("signing method %v is invalid", alg), ValidationErrorSignatureInvalid) - } - } - - // Lookup key - var key interface{} - if keyFunc == nil { - // keyFunc was not provided. short circuiting validation - return token, NewValidationError("no Keyfunc was provided.", ValidationErrorUnverifiable) - } - if key, err = keyFunc(token); err != nil { - // keyFunc returned an error - if ve, ok := err.(*ValidationError); ok { - return token, ve - } - return token, &ValidationError{Inner: err, Errors: ValidationErrorUnverifiable} - } - - vErr := &ValidationError{} - - // Validate Claims - if !p.SkipClaimsValidation { - if err := token.Claims.Valid(); err != nil { - - // If the Claims Valid returned an error, check if it is a validation error, - // If it was another error type, create a ValidationError with a generic ClaimsInvalid flag set - if e, ok := err.(*ValidationError); !ok { - vErr = &ValidationError{Inner: err, Errors: ValidationErrorClaimsInvalid} - } else { - vErr = e - } - } - } - - // Perform validation - token.Signature = parts[2] - if err = token.Method.Verify(strings.Join(parts[0:2], "."), token.Signature, key); err != nil { - vErr.Inner = err - vErr.Errors |= ValidationErrorSignatureInvalid - } - - if vErr.valid() { - token.Valid = true - return token, nil - } - - return token, vErr -} - -// WARNING: Don't use this method unless you know what you're doing -// -// This method parses the token but doesn't validate the signature. It's only -// ever useful in cases where you know the signature is valid (because it has -// been checked previously in the stack) and you want to extract values from -// it. -func (p *Parser) ParseUnverified(tokenString string, claims Claims) (token *Token, parts []string, err error) { - parts = strings.Split(tokenString, ".") - if len(parts) != 3 { - return nil, parts, NewValidationError("token contains an invalid number of segments", ValidationErrorMalformed) - } - - token = &Token{Raw: tokenString} - - // parse Header - var headerBytes []byte - if headerBytes, err = DecodeSegment(parts[0]); err != nil { - if strings.HasPrefix(strings.ToLower(tokenString), "bearer ") { - return token, parts, NewValidationError("tokenstring should not contain 'bearer '", ValidationErrorMalformed) - } - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - if err = json.Unmarshal(headerBytes, &token.Header); err != nil { - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - - // parse Claims - var claimBytes []byte - token.Claims = claims - - if claimBytes, err = DecodeSegment(parts[1]); err != nil { - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - dec := json.NewDecoder(bytes.NewBuffer(claimBytes)) - if p.UseJSONNumber { - dec.UseNumber() - } - // JSON Decode. Special case for map type to avoid weird pointer behavior - if c, ok := token.Claims.(MapClaims); ok { - err = dec.Decode(&c) - } else { - err = dec.Decode(&claims) - } - // Handle decode error - if err != nil { - return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} - } - - // Lookup signature method - if method, ok := token.Header["alg"].(string); ok { - if token.Method = GetSigningMethod(method); token.Method == nil { - return token, parts, NewValidationError("signing method (alg) is unavailable.", ValidationErrorUnverifiable) - } - } else { - return token, parts, NewValidationError("signing method (alg) is unspecified.", ValidationErrorUnverifiable) - } - - return token, parts, nil -} diff --git a/vendor/github.com/dgrijalva/jwt-go/rsa.go b/vendor/github.com/dgrijalva/jwt-go/rsa.go deleted file mode 100644 index e4caf1ca4..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/rsa.go +++ /dev/null @@ -1,101 +0,0 @@ -package jwt - -import ( - "crypto" - "crypto/rand" - "crypto/rsa" -) - -// Implements the RSA family of signing methods signing methods -// Expects *rsa.PrivateKey for signing and *rsa.PublicKey for validation -type SigningMethodRSA struct { - Name string - Hash crypto.Hash -} - -// Specific instances for RS256 and company -var ( - SigningMethodRS256 *SigningMethodRSA - SigningMethodRS384 *SigningMethodRSA - SigningMethodRS512 *SigningMethodRSA -) - -func init() { - // RS256 - SigningMethodRS256 = &SigningMethodRSA{"RS256", crypto.SHA256} - RegisterSigningMethod(SigningMethodRS256.Alg(), func() SigningMethod { - return SigningMethodRS256 - }) - - // RS384 - SigningMethodRS384 = &SigningMethodRSA{"RS384", crypto.SHA384} - RegisterSigningMethod(SigningMethodRS384.Alg(), func() SigningMethod { - return SigningMethodRS384 - }) - - // RS512 - SigningMethodRS512 = &SigningMethodRSA{"RS512", crypto.SHA512} - RegisterSigningMethod(SigningMethodRS512.Alg(), func() SigningMethod { - return SigningMethodRS512 - }) -} - -func (m *SigningMethodRSA) Alg() string { - return m.Name -} - -// Implements the Verify method from SigningMethod -// For this signing method, must be an *rsa.PublicKey structure. -func (m *SigningMethodRSA) Verify(signingString, signature string, key interface{}) error { - var err error - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - var rsaKey *rsa.PublicKey - var ok bool - - if rsaKey, ok = key.(*rsa.PublicKey); !ok { - return ErrInvalidKeyType - } - - // Create hasher - if !m.Hash.Available() { - return ErrHashUnavailable - } - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Verify the signature - return rsa.VerifyPKCS1v15(rsaKey, m.Hash, hasher.Sum(nil), sig) -} - -// Implements the Sign method from SigningMethod -// For this signing method, must be an *rsa.PrivateKey structure. -func (m *SigningMethodRSA) Sign(signingString string, key interface{}) (string, error) { - var rsaKey *rsa.PrivateKey - var ok bool - - // Validate type of key - if rsaKey, ok = key.(*rsa.PrivateKey); !ok { - return "", ErrInvalidKey - } - - // Create the hasher - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Sign the string and return the encoded bytes - if sigBytes, err := rsa.SignPKCS1v15(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil)); err == nil { - return EncodeSegment(sigBytes), nil - } else { - return "", err - } -} diff --git a/vendor/github.com/dgrijalva/jwt-go/rsa_pss.go b/vendor/github.com/dgrijalva/jwt-go/rsa_pss.go deleted file mode 100644 index 10ee9db8a..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/rsa_pss.go +++ /dev/null @@ -1,126 +0,0 @@ -// +build go1.4 - -package jwt - -import ( - "crypto" - "crypto/rand" - "crypto/rsa" -) - -// Implements the RSAPSS family of signing methods signing methods -type SigningMethodRSAPSS struct { - *SigningMethodRSA - Options *rsa.PSSOptions -} - -// Specific instances for RS/PS and company -var ( - SigningMethodPS256 *SigningMethodRSAPSS - SigningMethodPS384 *SigningMethodRSAPSS - SigningMethodPS512 *SigningMethodRSAPSS -) - -func init() { - // PS256 - SigningMethodPS256 = &SigningMethodRSAPSS{ - &SigningMethodRSA{ - Name: "PS256", - Hash: crypto.SHA256, - }, - &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthAuto, - Hash: crypto.SHA256, - }, - } - RegisterSigningMethod(SigningMethodPS256.Alg(), func() SigningMethod { - return SigningMethodPS256 - }) - - // PS384 - SigningMethodPS384 = &SigningMethodRSAPSS{ - &SigningMethodRSA{ - Name: "PS384", - Hash: crypto.SHA384, - }, - &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthAuto, - Hash: crypto.SHA384, - }, - } - RegisterSigningMethod(SigningMethodPS384.Alg(), func() SigningMethod { - return SigningMethodPS384 - }) - - // PS512 - SigningMethodPS512 = &SigningMethodRSAPSS{ - &SigningMethodRSA{ - Name: "PS512", - Hash: crypto.SHA512, - }, - &rsa.PSSOptions{ - SaltLength: rsa.PSSSaltLengthAuto, - Hash: crypto.SHA512, - }, - } - RegisterSigningMethod(SigningMethodPS512.Alg(), func() SigningMethod { - return SigningMethodPS512 - }) -} - -// Implements the Verify method from SigningMethod -// For this verify method, key must be an rsa.PublicKey struct -func (m *SigningMethodRSAPSS) Verify(signingString, signature string, key interface{}) error { - var err error - - // Decode the signature - var sig []byte - if sig, err = DecodeSegment(signature); err != nil { - return err - } - - var rsaKey *rsa.PublicKey - switch k := key.(type) { - case *rsa.PublicKey: - rsaKey = k - default: - return ErrInvalidKey - } - - // Create hasher - if !m.Hash.Available() { - return ErrHashUnavailable - } - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - return rsa.VerifyPSS(rsaKey, m.Hash, hasher.Sum(nil), sig, m.Options) -} - -// Implements the Sign method from SigningMethod -// For this signing method, key must be an rsa.PrivateKey struct -func (m *SigningMethodRSAPSS) Sign(signingString string, key interface{}) (string, error) { - var rsaKey *rsa.PrivateKey - - switch k := key.(type) { - case *rsa.PrivateKey: - rsaKey = k - default: - return "", ErrInvalidKeyType - } - - // Create the hasher - if !m.Hash.Available() { - return "", ErrHashUnavailable - } - - hasher := m.Hash.New() - hasher.Write([]byte(signingString)) - - // Sign the string and return the encoded bytes - if sigBytes, err := rsa.SignPSS(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil), m.Options); err == nil { - return EncodeSegment(sigBytes), nil - } else { - return "", err - } -} diff --git a/vendor/github.com/dgrijalva/jwt-go/rsa_utils.go b/vendor/github.com/dgrijalva/jwt-go/rsa_utils.go deleted file mode 100644 index a5ababf95..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/rsa_utils.go +++ /dev/null @@ -1,101 +0,0 @@ -package jwt - -import ( - "crypto/rsa" - "crypto/x509" - "encoding/pem" - "errors" -) - -var ( - ErrKeyMustBePEMEncoded = errors.New("Invalid Key: Key must be PEM encoded PKCS1 or PKCS8 private key") - ErrNotRSAPrivateKey = errors.New("Key is not a valid RSA private key") - ErrNotRSAPublicKey = errors.New("Key is not a valid RSA public key") -) - -// Parse PEM encoded PKCS1 or PKCS8 private key -func ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - var parsedKey interface{} - if parsedKey, err = x509.ParsePKCS1PrivateKey(block.Bytes); err != nil { - if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { - return nil, err - } - } - - var pkey *rsa.PrivateKey - var ok bool - if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { - return nil, ErrNotRSAPrivateKey - } - - return pkey, nil -} - -// Parse PEM encoded PKCS1 or PKCS8 private key protected with password -func ParseRSAPrivateKeyFromPEMWithPassword(key []byte, password string) (*rsa.PrivateKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - var parsedKey interface{} - - var blockDecrypted []byte - if blockDecrypted, err = x509.DecryptPEMBlock(block, []byte(password)); err != nil { - return nil, err - } - - if parsedKey, err = x509.ParsePKCS1PrivateKey(blockDecrypted); err != nil { - if parsedKey, err = x509.ParsePKCS8PrivateKey(blockDecrypted); err != nil { - return nil, err - } - } - - var pkey *rsa.PrivateKey - var ok bool - if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { - return nil, ErrNotRSAPrivateKey - } - - return pkey, nil -} - -// Parse PEM encoded PKCS1 or PKCS8 public key -func ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error) { - var err error - - // Parse PEM block - var block *pem.Block - if block, _ = pem.Decode(key); block == nil { - return nil, ErrKeyMustBePEMEncoded - } - - // Parse the key - var parsedKey interface{} - if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { - if cert, err := x509.ParseCertificate(block.Bytes); err == nil { - parsedKey = cert.PublicKey - } else { - return nil, err - } - } - - var pkey *rsa.PublicKey - var ok bool - if pkey, ok = parsedKey.(*rsa.PublicKey); !ok { - return nil, ErrNotRSAPublicKey - } - - return pkey, nil -} diff --git a/vendor/github.com/dgrijalva/jwt-go/signing_method.go b/vendor/github.com/dgrijalva/jwt-go/signing_method.go deleted file mode 100644 index ed1f212b2..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/signing_method.go +++ /dev/null @@ -1,35 +0,0 @@ -package jwt - -import ( - "sync" -) - -var signingMethods = map[string]func() SigningMethod{} -var signingMethodLock = new(sync.RWMutex) - -// Implement SigningMethod to add new methods for signing or verifying tokens. -type SigningMethod interface { - Verify(signingString, signature string, key interface{}) error // Returns nil if signature is valid - Sign(signingString string, key interface{}) (string, error) // Returns encoded signature or error - Alg() string // returns the alg identifier for this method (example: 'HS256') -} - -// Register the "alg" name and a factory function for signing method. -// This is typically done during init() in the method's implementation -func RegisterSigningMethod(alg string, f func() SigningMethod) { - signingMethodLock.Lock() - defer signingMethodLock.Unlock() - - signingMethods[alg] = f -} - -// Get a signing method from an "alg" string -func GetSigningMethod(alg string) (method SigningMethod) { - signingMethodLock.RLock() - defer signingMethodLock.RUnlock() - - if methodF, ok := signingMethods[alg]; ok { - method = methodF() - } - return -} diff --git a/vendor/github.com/dgrijalva/jwt-go/token.go b/vendor/github.com/dgrijalva/jwt-go/token.go deleted file mode 100644 index d637e0867..000000000 --- a/vendor/github.com/dgrijalva/jwt-go/token.go +++ /dev/null @@ -1,108 +0,0 @@ -package jwt - -import ( - "encoding/base64" - "encoding/json" - "strings" - "time" -) - -// TimeFunc provides the current time when parsing token to validate "exp" claim (expiration time). -// You can override it to use another time value. This is useful for testing or if your -// server uses a different time zone than your tokens. -var TimeFunc = time.Now - -// Parse methods use this callback function to supply -// the key for verification. The function receives the parsed, -// but unverified Token. This allows you to use properties in the -// Header of the token (such as `kid`) to identify which key to use. -type Keyfunc func(*Token) (interface{}, error) - -// A JWT Token. Different fields will be used depending on whether you're -// creating or parsing/verifying a token. -type Token struct { - Raw string // The raw token. Populated when you Parse a token - Method SigningMethod // The signing method used or to be used - Header map[string]interface{} // The first segment of the token - Claims Claims // The second segment of the token - Signature string // The third segment of the token. Populated when you Parse a token - Valid bool // Is the token valid? Populated when you Parse/Verify a token -} - -// Create a new Token. Takes a signing method -func New(method SigningMethod) *Token { - return NewWithClaims(method, MapClaims{}) -} - -func NewWithClaims(method SigningMethod, claims Claims) *Token { - return &Token{ - Header: map[string]interface{}{ - "typ": "JWT", - "alg": method.Alg(), - }, - Claims: claims, - Method: method, - } -} - -// Get the complete, signed token -func (t *Token) SignedString(key interface{}) (string, error) { - var sig, sstr string - var err error - if sstr, err = t.SigningString(); err != nil { - return "", err - } - if sig, err = t.Method.Sign(sstr, key); err != nil { - return "", err - } - return strings.Join([]string{sstr, sig}, "."), nil -} - -// Generate the signing string. This is the -// most expensive part of the whole deal. Unless you -// need this for something special, just go straight for -// the SignedString. -func (t *Token) SigningString() (string, error) { - var err error - parts := make([]string, 2) - for i, _ := range parts { - var jsonValue []byte - if i == 0 { - if jsonValue, err = json.Marshal(t.Header); err != nil { - return "", err - } - } else { - if jsonValue, err = json.Marshal(t.Claims); err != nil { - return "", err - } - } - - parts[i] = EncodeSegment(jsonValue) - } - return strings.Join(parts, "."), nil -} - -// Parse, validate, and return a token. -// keyFunc will receive the parsed token and should return the key for validating. -// If everything is kosher, err will be nil -func Parse(tokenString string, keyFunc Keyfunc) (*Token, error) { - return new(Parser).Parse(tokenString, keyFunc) -} - -func ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) { - return new(Parser).ParseWithClaims(tokenString, claims, keyFunc) -} - -// Encode JWT specific base64url encoding with padding stripped -func EncodeSegment(seg []byte) string { - return strings.TrimRight(base64.URLEncoding.EncodeToString(seg), "=") -} - -// Decode JWT specific base64url encoding with padding stripped -func DecodeSegment(seg string) ([]byte, error) { - if l := len(seg) % 4; l > 0 { - seg += strings.Repeat("=", 4-l) - } - - return base64.URLEncoding.DecodeString(seg) -} diff --git a/vendor/github.com/libopenstorage/openstorage/api/api.go b/vendor/github.com/libopenstorage/openstorage/api/api.go index 003c58f45..ebf0ddefb 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/api.go +++ b/vendor/github.com/libopenstorage/openstorage/api/api.go @@ -16,52 +16,56 @@ import ( // Strings for VolumeSpec const ( - Name = "name" - Token = "token" - TokenSecret = "token_secret" - TokenSecretNamespace = "token_secret_namespace" - SpecNodes = "nodes" - SpecParent = "parent" - SpecEphemeral = "ephemeral" - SpecShared = "shared" - SpecJournal = "journal" - SpecSharedv4 = "sharedv4" - SpecCascaded = "cascaded" - SpecSticky = "sticky" - SpecSecure = "secure" - SpecCompressed = "compressed" - SpecSize = "size" - SpecScale = "scale" - SpecFilesystem = "fs" - SpecBlockSize = "block_size" - SpecQueueDepth = "queue_depth" - SpecHaLevel = "repl" - SpecPriority = "io_priority" - SpecSnapshotInterval = "snap_interval" - SpecSnapshotSchedule = "snap_schedule" - SpecAggregationLevel = "aggregation_level" - SpecDedupe = "dedupe" - SpecPassphrase = "secret_key" - SpecAutoAggregationValue = "auto" - SpecGroup = "group" - SpecGroupEnforce = "fg" - SpecZones = "zones" - SpecRacks = "racks" - SpecRack = "rack" - SpecRegions = "regions" - SpecLabels = "labels" - SpecPriorityAlias = "priority_io" - SpecIoProfile = "io_profile" - SpecAsyncIo = "async_io" - SpecEarlyAck = "early_ack" - SpecExportProtocol = "export" - SpecExportProtocolISCSI = "iscsi" - SpecExportProtocolPXD = "pxd" - SpecExportProtocolNFS = "nfs" - SpecExportProtocolCustom = "custom" - SpecExportOptions = "export_options" - SpecExportOptionsEmpty = "empty_export_options" - SpecMountOptions = "mount_options" + Name = "name" + Token = "token" + TokenSecret = "token_secret" + TokenSecretNamespace = "token_secret_namespace" + SpecNodes = "nodes" + SpecParent = "parent" + SpecEphemeral = "ephemeral" + SpecShared = "shared" + SpecJournal = "journal" + SpecSharedv4 = "sharedv4" + SpecCascaded = "cascaded" + SpecSticky = "sticky" + SpecSecure = "secure" + SpecCompressed = "compressed" + SpecSize = "size" + SpecScale = "scale" + SpecFilesystem = "fs" + SpecBlockSize = "block_size" + SpecQueueDepth = "queue_depth" + SpecHaLevel = "repl" + SpecPriority = "io_priority" + SpecSnapshotInterval = "snap_interval" + SpecSnapshotSchedule = "snap_schedule" + SpecAggregationLevel = "aggregation_level" + SpecDedupe = "dedupe" + SpecPassphrase = "secret_key" + SpecAutoAggregationValue = "auto" + SpecGroup = "group" + SpecGroupEnforce = "fg" + SpecZones = "zones" + SpecRacks = "racks" + SpecRack = "rack" + SpecRegions = "regions" + SpecLabels = "labels" + SpecPriorityAlias = "priority_io" + SpecIoProfile = "io_profile" + SpecNearSync = "nearsync" + SpecNearSyncReplicationStrategy = "nearsync_replication_strategy" + SpecAsyncIo = "async_io" + SpecEarlyAck = "early_ack" + SpecExportProtocol = "export" + SpecExportProtocolISCSI = "iscsi" + SpecExportProtocolPXD = "pxd" + SpecExportProtocolNFS = "nfs" + SpecExportProtocolCustom = "custom" + SpecExportOptions = "export_options" + SpecExportOptionsEmpty = "empty_export_options" + SpecMountOptions = "mount_options" + // spec key cannot change due to parity with existing PSO storageclasses + SpecFaCreateOptions = "createoptions" SpecCSIMountOptions = "csi_mount_options" SpecSharedv4MountOptions = "sharedv4_mount_options" SpecProxyProtocolS3 = "s3" @@ -167,6 +171,14 @@ const ( OptCredOwnership = "CredOwnership" // OptCredProxy proxy key in params OptCredProxy = "CredProxy" + // OptCredNFSServer is the server address for NFS access + OptCredNFSServer = "CredNFSServer" + // OptCredNFSSubPath is the sub-path for objects + OptCredNFSSubPath = "CredNFSSubPath" + // OptCredNFSMountOpts is the optional mount options + OptCredNFSMountOpts = "CredNFSMountOpts" + // OptCredNFSTimeout is the optional timeout value + OptCredNFSTimeoutSeconds = "CredNFSTimeout" // OptCredIAMPolicy if "true", indicates IAM creds to be used OptCredIAMPolicy = "CredIAMPolicy" // OptRemoteCredUUID is the UUID of the remote cluster credential @@ -354,6 +366,8 @@ type CloudBackupCreateRequest struct { // DeleteLocal indicates if local snap must be deleted after the // backup is complete DeleteLocal bool + // Indicates if this is a nearsync migration + NearSyncMigrate bool } type CloudBackupCreateResponse struct { @@ -501,6 +515,8 @@ type CloudBackupStatusRequest struct { // ignored. This could be GroupCloudBackupId too, and in that case multiple // statuses belonging to the groupCloudBackupID is returned. ID string + // Indicates if this is for nearsync migration + NearSyncMigrate bool } type CloudBackupStatusRequestOld struct { @@ -515,6 +531,10 @@ type CloudBackupOpType string const ( CloudBackupOp = CloudBackupOpType("Backup") CloudRestoreOp = CloudBackupOpType("Restore") + + NearSyncCloneOp = CloudBackupOpType("NsClone") + NearSyncReplAddOp = CloudBackupOpType("NsReplAdd") + NearSyncRestoreOp = CloudBackupOpType("NsRestore") ) // Allowed storage classes s3 @@ -539,10 +559,23 @@ const ( CloudBackupStatusInvalid = CloudBackupStatusType("Invalid") ) +const ( + NearSyncStatusNotStarted = CloudBackupStatusType("NsNotStarted") + NearSyncStatusDone = CloudBackupStatusType("NsDone") + NearSyncStatusPaused = CloudBackupStatusType("NsPaused") + NearSyncStatusStopped = CloudBackupStatusType("NsStopped") + NearSyncStatusActive = CloudBackupStatusType("NsActive") + NearSyncStatusFailed = CloudBackupStatusType("NsFailed") + NearSyncStatusInvalid = CloudBackupStatusType("NsInvalid") +) + const ( CloudBackupRequestedStatePause = "pause" CloudBackupRequestedStateResume = "resume" CloudBackupRequestedStateStop = "stop" + NearSyncRequestedStatePause = "ns_pause" + NearSyncRequestedStateResume = "ns_resume" + NearSyncRequestedStateStop = "ns_stop" ) type CloudBackupStatus struct { @@ -797,6 +830,12 @@ func IoProfileSimpleValueOf(s string) (IoProfile, error) { return IoProfile(obj), err } +// NearSyncReplicationStrategySimpleValueOf returns the string format of NearSyncReplicationStrategy +func NearSyncReplicationStrategySimpleValueOf(s string) (NearSyncReplicationStrategy, error) { + obj, err := simpleValueOf("near_sync_strategy", NearSyncReplicationStrategy_value, s) + return NearSyncReplicationStrategy(obj), err +} + // SimpleString returns the string format of IoProfile func (x IoProfile) SimpleString() string { return simpleString("io_profile", IoProfile_name, int32(x)) @@ -1046,6 +1085,20 @@ func CloudBackupStatusTypeToSdkCloudBackupStatusType( return SdkCloudBackupStatusType_SdkCloudBackupStatusTypeQueued case CloudBackupStatusInvalid: return SdkCloudBackupStatusType_SdkCloudBackupStatusTypeInvalid + case NearSyncStatusNotStarted: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypeNotStarted + case NearSyncStatusDone: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypeDone + case NearSyncStatusPaused: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypePaused + case NearSyncStatusStopped: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypeStopped + case NearSyncStatusActive: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypeActive + case NearSyncStatusFailed: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypeFailed + case NearSyncStatusInvalid: + return SdkCloudBackupStatusType_SdkNearSyncStatusTypeInvalid default: return SdkCloudBackupStatusType_SdkCloudBackupStatusTypeUnknown } @@ -1073,6 +1126,20 @@ func SdkCloudBackupStatusTypeToCloudBackupStatusString( return string(CloudBackupStatusQueued) case SdkCloudBackupStatusType_SdkCloudBackupStatusTypeInvalid: return string(CloudBackupStatusInvalid) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypeNotStarted: + return string(NearSyncStatusNotStarted) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypeDone: + return string(NearSyncStatusDone) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypePaused: + return string(NearSyncStatusPaused) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypeStopped: + return string(NearSyncStatusStopped) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypeActive: + return string(NearSyncStatusActive) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypeFailed: + return string(NearSyncStatusFailed) + case SdkCloudBackupStatusType_SdkNearSyncStatusTypeInvalid: + return string(NearSyncStatusInvalid) default: return string(CloudBackupStatusFailed) } @@ -1116,6 +1183,12 @@ func CloudBackupOpTypeToSdkCloudBackupOpType(t CloudBackupOpType) SdkCloudBackup return SdkCloudBackupOpType_SdkCloudBackupOpTypeBackupOp case CloudRestoreOp: return SdkCloudBackupOpType_SdkCloudBackupOpTypeRestoreOp + case NearSyncCloneOp: // for internal state transition + return SdkCloudBackupOpType_SdkNearSyncOpTypeCloneOp + case NearSyncReplAddOp: // for internal state transition + return SdkCloudBackupOpType_SdkNearSyncOpTypeReplAddOp + case NearSyncRestoreOp: // for internal state transition + return SdkCloudBackupOpType_SdkNearSyncOpTypeRestoreOp default: return SdkCloudBackupOpType_SdkCloudBackupOpTypeUnknown } @@ -1131,6 +1204,12 @@ func SdkCloudBackupOpTypeToCloudBackupOpType(t SdkCloudBackupOpType) CloudBackup return CloudBackupOp case SdkCloudBackupOpType_SdkCloudBackupOpTypeRestoreOp: return CloudRestoreOp + case SdkCloudBackupOpType_SdkNearSyncOpTypeCloneOp: // for internal state transition + return NearSyncCloneOp + case SdkCloudBackupOpType_SdkNearSyncOpTypeReplAddOp: // for internal state transition + return NearSyncReplAddOp + case SdkCloudBackupOpType_SdkNearSyncOpTypeRestoreOp: // for internal state transition + return NearSyncRestoreOp default: return CloudBackupOpType("Unknown") } @@ -1292,6 +1371,12 @@ func CloudBackupRequestedStateToSdkCloudBackupRequestedState( return SdkCloudBackupRequestedState_SdkCloudBackupRequestedStatePause case CloudBackupRequestedStateResume: return SdkCloudBackupRequestedState_SdkCloudBackupRequestedStateResume + case NearSyncRequestedStateStop: + return SdkCloudBackupRequestedState_SdkNearSyncRequestedStateStop + case NearSyncRequestedStatePause: + return SdkCloudBackupRequestedState_SdkNearSyncRequestedStatePause + case NearSyncRequestedStateResume: + return SdkCloudBackupRequestedState_SdkNearSyncRequestedStateResume default: return SdkCloudBackupRequestedState_SdkCloudBackupRequestedStateUnknown } @@ -1365,6 +1450,22 @@ func (s *ProxySpec) IsPureImport() bool { return (s.PureBlockSpec != nil && s.PureBlockSpec.FullVolName != "") || (s.PureFileSpec != nil && s.PureFileSpec.FullVolName != "") } +func (s *ProxySpec) GetPureFullVolumeName() string { + if !s.IsPureImport() { + return "" + } + + if s.PureBlockSpec != nil { + return s.PureBlockSpec.FullVolName + } + + if s.PureFileSpec != nil { + return s.PureFileSpec.FullVolName + } + + return "" +} + // GetAllEnumInfo returns an EnumInfo for every proto enum func GetAllEnumInfo() []protoimpl.EnumInfo { return file_api_api_proto_enumTypes diff --git a/vendor/github.com/libopenstorage/openstorage/api/api.pb.go b/vendor/github.com/libopenstorage/openstorage/api/api.pb.go index 1224c319d..ab14913da 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/api.pb.go +++ b/vendor/github.com/libopenstorage/openstorage/api/api.pb.go @@ -1281,6 +1281,55 @@ func (FastpathProtocol) EnumDescriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{20} } +type NearSyncReplicationStrategy int32 + +const ( + NearSyncReplicationStrategy_NEAR_SYNC_STRATEGY_NONE NearSyncReplicationStrategy = 0 + NearSyncReplicationStrategy_NEAR_SYNC_STRATEGY_AGGRESSIVE NearSyncReplicationStrategy = 1 + NearSyncReplicationStrategy_NEAR_SYNC_STRATEGY_OPTIMIZED NearSyncReplicationStrategy = 2 +) + +// Enum value maps for NearSyncReplicationStrategy. +var ( + NearSyncReplicationStrategy_name = map[int32]string{ + 0: "NEAR_SYNC_STRATEGY_NONE", + 1: "NEAR_SYNC_STRATEGY_AGGRESSIVE", + 2: "NEAR_SYNC_STRATEGY_OPTIMIZED", + } + NearSyncReplicationStrategy_value = map[string]int32{ + "NEAR_SYNC_STRATEGY_NONE": 0, + "NEAR_SYNC_STRATEGY_AGGRESSIVE": 1, + "NEAR_SYNC_STRATEGY_OPTIMIZED": 2, + } +) + +func (x NearSyncReplicationStrategy) Enum() *NearSyncReplicationStrategy { + p := new(NearSyncReplicationStrategy) + *p = x + return p +} + +func (x NearSyncReplicationStrategy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NearSyncReplicationStrategy) Descriptor() protoreflect.EnumDescriptor { + return file_api_api_proto_enumTypes[21].Descriptor() +} + +func (NearSyncReplicationStrategy) Type() protoreflect.EnumType { + return &file_api_api_proto_enumTypes[21] +} + +func (x NearSyncReplicationStrategy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NearSyncReplicationStrategy.Descriptor instead. +func (NearSyncReplicationStrategy) EnumDescriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{21} +} + type AnonymousBucketAccessMode int32 const ( @@ -1324,11 +1373,11 @@ func (x AnonymousBucketAccessMode) String() string { } func (AnonymousBucketAccessMode) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[21].Descriptor() + return file_api_api_proto_enumTypes[22].Descriptor() } func (AnonymousBucketAccessMode) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[21] + return &file_api_api_proto_enumTypes[22] } func (x AnonymousBucketAccessMode) Number() protoreflect.EnumNumber { @@ -1337,7 +1386,7 @@ func (x AnonymousBucketAccessMode) Number() protoreflect.EnumNumber { // Deprecated: Use AnonymousBucketAccessMode.Descriptor instead. func (AnonymousBucketAccessMode) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{21} + return file_api_api_proto_rawDescGZIP(), []int{22} } // Defines times of day @@ -1393,11 +1442,11 @@ func (x SdkTimeWeekday) String() string { } func (SdkTimeWeekday) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[22].Descriptor() + return file_api_api_proto_enumTypes[23].Descriptor() } func (SdkTimeWeekday) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[22] + return &file_api_api_proto_enumTypes[23] } func (x SdkTimeWeekday) Number() protoreflect.EnumNumber { @@ -1406,7 +1455,7 @@ func (x SdkTimeWeekday) Number() protoreflect.EnumNumber { // Deprecated: Use SdkTimeWeekday.Descriptor instead. func (SdkTimeWeekday) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{22} + return file_api_api_proto_rawDescGZIP(), []int{23} } // StorageRebalanceJobState is an enum for state of the current rebalance operation @@ -1454,11 +1503,11 @@ func (x StorageRebalanceJobState) String() string { } func (StorageRebalanceJobState) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[23].Descriptor() + return file_api_api_proto_enumTypes[24].Descriptor() } func (StorageRebalanceJobState) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[23] + return &file_api_api_proto_enumTypes[24] } func (x StorageRebalanceJobState) Number() protoreflect.EnumNumber { @@ -1467,7 +1516,7 @@ func (x StorageRebalanceJobState) Number() protoreflect.EnumNumber { // Deprecated: Use StorageRebalanceJobState.Descriptor instead. func (StorageRebalanceJobState) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{23} + return file_api_api_proto_rawDescGZIP(), []int{24} } // CloudBackup operations types @@ -1507,11 +1556,11 @@ func (x SdkCloudBackupClusterType) String() string { } func (SdkCloudBackupClusterType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[24].Descriptor() + return file_api_api_proto_enumTypes[25].Descriptor() } func (SdkCloudBackupClusterType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[24] + return &file_api_api_proto_enumTypes[25] } func (x SdkCloudBackupClusterType) Number() protoreflect.EnumNumber { @@ -1520,7 +1569,7 @@ func (x SdkCloudBackupClusterType) Number() protoreflect.EnumNumber { // Deprecated: Use SdkCloudBackupClusterType.Descriptor instead. func (SdkCloudBackupClusterType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{24} + return file_api_api_proto_rawDescGZIP(), []int{25} } // CloudBackup operations types @@ -1533,6 +1582,12 @@ const ( SdkCloudBackupOpType_SdkCloudBackupOpTypeBackupOp SdkCloudBackupOpType = 1 // Restore SdkCloudBackupOpType_SdkCloudBackupOpTypeRestoreOp SdkCloudBackupOpType = 2 + // NearSync clone + SdkCloudBackupOpType_SdkNearSyncOpTypeCloneOp SdkCloudBackupOpType = 3 + // NearSync replication add + SdkCloudBackupOpType_SdkNearSyncOpTypeReplAddOp SdkCloudBackupOpType = 4 + // NearSync restore + SdkCloudBackupOpType_SdkNearSyncOpTypeRestoreOp SdkCloudBackupOpType = 5 ) // Enum value maps for SdkCloudBackupOpType. @@ -1541,11 +1596,17 @@ var ( 0: "SdkCloudBackupOpTypeUnknown", 1: "SdkCloudBackupOpTypeBackupOp", 2: "SdkCloudBackupOpTypeRestoreOp", + 3: "SdkNearSyncOpTypeCloneOp", + 4: "SdkNearSyncOpTypeReplAddOp", + 5: "SdkNearSyncOpTypeRestoreOp", } SdkCloudBackupOpType_value = map[string]int32{ "SdkCloudBackupOpTypeUnknown": 0, "SdkCloudBackupOpTypeBackupOp": 1, "SdkCloudBackupOpTypeRestoreOp": 2, + "SdkNearSyncOpTypeCloneOp": 3, + "SdkNearSyncOpTypeReplAddOp": 4, + "SdkNearSyncOpTypeRestoreOp": 5, } ) @@ -1560,11 +1621,11 @@ func (x SdkCloudBackupOpType) String() string { } func (SdkCloudBackupOpType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[25].Descriptor() + return file_api_api_proto_enumTypes[26].Descriptor() } func (SdkCloudBackupOpType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[25] + return &file_api_api_proto_enumTypes[26] } func (x SdkCloudBackupOpType) Number() protoreflect.EnumNumber { @@ -1573,7 +1634,7 @@ func (x SdkCloudBackupOpType) Number() protoreflect.EnumNumber { // Deprecated: Use SdkCloudBackupOpType.Descriptor instead. func (SdkCloudBackupOpType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{25} + return file_api_api_proto_rawDescGZIP(), []int{26} } // CloudBackup status types @@ -1601,21 +1662,43 @@ const ( // Invalid, used by enumerate, includes failed, // stopped and aborted SdkCloudBackupStatusType_SdkCloudBackupStatusTypeInvalid SdkCloudBackupStatusType = 9 + // Near sync + // Not started + SdkCloudBackupStatusType_SdkNearSyncStatusTypeNotStarted SdkCloudBackupStatusType = 10 + // Done + SdkCloudBackupStatusType_SdkNearSyncStatusTypeDone SdkCloudBackupStatusType = 11 + // Paused + SdkCloudBackupStatusType_SdkNearSyncStatusTypePaused SdkCloudBackupStatusType = 12 + // Stopped + SdkCloudBackupStatusType_SdkNearSyncStatusTypeStopped SdkCloudBackupStatusType = 13 + // Active + SdkCloudBackupStatusType_SdkNearSyncStatusTypeActive SdkCloudBackupStatusType = 14 + // Failed + SdkCloudBackupStatusType_SdkNearSyncStatusTypeFailed SdkCloudBackupStatusType = 15 + // Invalid + SdkCloudBackupStatusType_SdkNearSyncStatusTypeInvalid SdkCloudBackupStatusType = 16 ) // Enum value maps for SdkCloudBackupStatusType. var ( SdkCloudBackupStatusType_name = map[int32]string{ - 0: "SdkCloudBackupStatusTypeUnknown", - 1: "SdkCloudBackupStatusTypeNotStarted", - 2: "SdkCloudBackupStatusTypeDone", - 3: "SdkCloudBackupStatusTypeAborted", - 4: "SdkCloudBackupStatusTypePaused", - 5: "SdkCloudBackupStatusTypeStopped", - 6: "SdkCloudBackupStatusTypeActive", - 7: "SdkCloudBackupStatusTypeFailed", - 8: "SdkCloudBackupStatusTypeQueued", - 9: "SdkCloudBackupStatusTypeInvalid", + 0: "SdkCloudBackupStatusTypeUnknown", + 1: "SdkCloudBackupStatusTypeNotStarted", + 2: "SdkCloudBackupStatusTypeDone", + 3: "SdkCloudBackupStatusTypeAborted", + 4: "SdkCloudBackupStatusTypePaused", + 5: "SdkCloudBackupStatusTypeStopped", + 6: "SdkCloudBackupStatusTypeActive", + 7: "SdkCloudBackupStatusTypeFailed", + 8: "SdkCloudBackupStatusTypeQueued", + 9: "SdkCloudBackupStatusTypeInvalid", + 10: "SdkNearSyncStatusTypeNotStarted", + 11: "SdkNearSyncStatusTypeDone", + 12: "SdkNearSyncStatusTypePaused", + 13: "SdkNearSyncStatusTypeStopped", + 14: "SdkNearSyncStatusTypeActive", + 15: "SdkNearSyncStatusTypeFailed", + 16: "SdkNearSyncStatusTypeInvalid", } SdkCloudBackupStatusType_value = map[string]int32{ "SdkCloudBackupStatusTypeUnknown": 0, @@ -1628,6 +1711,13 @@ var ( "SdkCloudBackupStatusTypeFailed": 7, "SdkCloudBackupStatusTypeQueued": 8, "SdkCloudBackupStatusTypeInvalid": 9, + "SdkNearSyncStatusTypeNotStarted": 10, + "SdkNearSyncStatusTypeDone": 11, + "SdkNearSyncStatusTypePaused": 12, + "SdkNearSyncStatusTypeStopped": 13, + "SdkNearSyncStatusTypeActive": 14, + "SdkNearSyncStatusTypeFailed": 15, + "SdkNearSyncStatusTypeInvalid": 16, } ) @@ -1642,11 +1732,11 @@ func (x SdkCloudBackupStatusType) String() string { } func (SdkCloudBackupStatusType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[26].Descriptor() + return file_api_api_proto_enumTypes[27].Descriptor() } func (SdkCloudBackupStatusType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[26] + return &file_api_api_proto_enumTypes[27] } func (x SdkCloudBackupStatusType) Number() protoreflect.EnumNumber { @@ -1655,7 +1745,7 @@ func (x SdkCloudBackupStatusType) Number() protoreflect.EnumNumber { // Deprecated: Use SdkCloudBackupStatusType.Descriptor instead. func (SdkCloudBackupStatusType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{26} + return file_api_api_proto_rawDescGZIP(), []int{27} } // SdkCloudBackupRequestedState defines states to set a specified backup or restore @@ -1671,6 +1761,12 @@ const ( SdkCloudBackupRequestedState_SdkCloudBackupRequestedStateResume SdkCloudBackupRequestedState = 2 // Stop a backup or restore SdkCloudBackupRequestedState_SdkCloudBackupRequestedStateStop SdkCloudBackupRequestedState = 3 + // Pause the near sync migrate + SdkCloudBackupRequestedState_SdkNearSyncRequestedStatePause SdkCloudBackupRequestedState = 4 + // Resume the near sync migrate + SdkCloudBackupRequestedState_SdkNearSyncRequestedStateResume SdkCloudBackupRequestedState = 5 + // Stop a near sync migrate + SdkCloudBackupRequestedState_SdkNearSyncRequestedStateStop SdkCloudBackupRequestedState = 6 ) // Enum value maps for SdkCloudBackupRequestedState. @@ -1680,12 +1776,18 @@ var ( 1: "SdkCloudBackupRequestedStatePause", 2: "SdkCloudBackupRequestedStateResume", 3: "SdkCloudBackupRequestedStateStop", + 4: "SdkNearSyncRequestedStatePause", + 5: "SdkNearSyncRequestedStateResume", + 6: "SdkNearSyncRequestedStateStop", } SdkCloudBackupRequestedState_value = map[string]int32{ "SdkCloudBackupRequestedStateUnknown": 0, "SdkCloudBackupRequestedStatePause": 1, "SdkCloudBackupRequestedStateResume": 2, "SdkCloudBackupRequestedStateStop": 3, + "SdkNearSyncRequestedStatePause": 4, + "SdkNearSyncRequestedStateResume": 5, + "SdkNearSyncRequestedStateStop": 6, } ) @@ -1700,11 +1802,11 @@ func (x SdkCloudBackupRequestedState) String() string { } func (SdkCloudBackupRequestedState) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[27].Descriptor() + return file_api_api_proto_enumTypes[28].Descriptor() } func (SdkCloudBackupRequestedState) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[27] + return &file_api_api_proto_enumTypes[28] } func (x SdkCloudBackupRequestedState) Number() protoreflect.EnumNumber { @@ -1713,7 +1815,7 @@ func (x SdkCloudBackupRequestedState) Number() protoreflect.EnumNumber { // Deprecated: Use SdkCloudBackupRequestedState.Descriptor instead. func (SdkCloudBackupRequestedState) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{27} + return file_api_api_proto_rawDescGZIP(), []int{28} } // Defines the types of enforcement on the given rules @@ -1749,11 +1851,11 @@ func (x EnforcementType) String() string { } func (EnforcementType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[28].Descriptor() + return file_api_api_proto_enumTypes[29].Descriptor() } func (EnforcementType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[28] + return &file_api_api_proto_enumTypes[29] } func (x EnforcementType) Number() protoreflect.EnumNumber { @@ -1762,7 +1864,7 @@ func (x EnforcementType) Number() protoreflect.EnumNumber { // Deprecated: Use EnforcementType.Descriptor instead. func (EnforcementType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{28} + return file_api_api_proto_rawDescGZIP(), []int{29} } type RestoreParamBoolType int32 @@ -1798,11 +1900,11 @@ func (x RestoreParamBoolType) String() string { } func (RestoreParamBoolType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[29].Descriptor() + return file_api_api_proto_enumTypes[30].Descriptor() } func (RestoreParamBoolType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[29] + return &file_api_api_proto_enumTypes[30] } func (x RestoreParamBoolType) Number() protoreflect.EnumNumber { @@ -1811,7 +1913,7 @@ func (x RestoreParamBoolType) Number() protoreflect.EnumNumber { // Deprecated: Use RestoreParamBoolType.Descriptor instead. func (RestoreParamBoolType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{29} + return file_api_api_proto_rawDescGZIP(), []int{30} } type Xattr_Value int32 @@ -1846,11 +1948,11 @@ func (x Xattr_Value) String() string { } func (Xattr_Value) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[30].Descriptor() + return file_api_api_proto_enumTypes[31].Descriptor() } func (Xattr_Value) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[30] + return &file_api_api_proto_enumTypes[31] } func (x Xattr_Value) Number() protoreflect.EnumNumber { @@ -1881,6 +1983,8 @@ const ( // Applicable when running in cloud. In this mode the sharedv4 volume // can be accessed from outside the cluster. Sharedv4ServiceSpec_LOADBALANCER Sharedv4ServiceSpec_ServiceType = 3 + // Do not use sharedv4 service feature. Use legacy sharedv4 volumes instead. + Sharedv4ServiceSpec_NONE Sharedv4ServiceSpec_ServiceType = 4 ) // Enum value maps for Sharedv4ServiceSpec_ServiceType. @@ -1890,12 +1994,14 @@ var ( 1: "NODEPORT", 2: "CLUSTERIP", 3: "LOADBALANCER", + 4: "NONE", } Sharedv4ServiceSpec_ServiceType_value = map[string]int32{ "UNSPECIFIED": 0, "NODEPORT": 1, "CLUSTERIP": 2, "LOADBALANCER": 3, + "NONE": 4, } ) @@ -1910,11 +2016,11 @@ func (x Sharedv4ServiceSpec_ServiceType) String() string { } func (Sharedv4ServiceSpec_ServiceType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[31].Descriptor() + return file_api_api_proto_enumTypes[32].Descriptor() } func (Sharedv4ServiceSpec_ServiceType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[31] + return &file_api_api_proto_enumTypes[32] } func (x Sharedv4ServiceSpec_ServiceType) Number() protoreflect.EnumNumber { @@ -1967,11 +2073,11 @@ func (x Sharedv4FailoverStrategy_Value) String() string { } func (Sharedv4FailoverStrategy_Value) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[32].Descriptor() + return file_api_api_proto_enumTypes[33].Descriptor() } func (Sharedv4FailoverStrategy_Value) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[32] + return &file_api_api_proto_enumTypes[33] } func (x Sharedv4FailoverStrategy_Value) Number() protoreflect.EnumNumber { @@ -2016,11 +2122,11 @@ func (x ScanPolicy_ScanTrigger) String() string { } func (ScanPolicy_ScanTrigger) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[33].Descriptor() + return file_api_api_proto_enumTypes[34].Descriptor() } func (ScanPolicy_ScanTrigger) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[33] + return &file_api_api_proto_enumTypes[34] } func (x ScanPolicy_ScanTrigger) Number() protoreflect.EnumNumber { @@ -2065,11 +2171,11 @@ func (x ScanPolicy_ScanAction) String() string { } func (ScanPolicy_ScanAction) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[34].Descriptor() + return file_api_api_proto_enumTypes[35].Descriptor() } func (ScanPolicy_ScanAction) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[34] + return &file_api_api_proto_enumTypes[35] } func (x ScanPolicy_ScanAction) Number() protoreflect.EnumNumber { @@ -2118,11 +2224,11 @@ func (x VolumeSpecPolicy_PolicyOp) String() string { } func (VolumeSpecPolicy_PolicyOp) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[35].Descriptor() + return file_api_api_proto_enumTypes[36].Descriptor() } func (VolumeSpecPolicy_PolicyOp) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[35] + return &file_api_api_proto_enumTypes[36] } func (x VolumeSpecPolicy_PolicyOp) Number() protoreflect.EnumNumber { @@ -2177,11 +2283,11 @@ func (x Ownership_AccessType) String() string { } func (Ownership_AccessType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[36].Descriptor() + return file_api_api_proto_enumTypes[37].Descriptor() } func (Ownership_AccessType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[36] + return &file_api_api_proto_enumTypes[37] } func (x Ownership_AccessType) Number() protoreflect.EnumNumber { @@ -2235,11 +2341,11 @@ func (x StorageNode_SecurityStatus) String() string { } func (StorageNode_SecurityStatus) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[37].Descriptor() + return file_api_api_proto_enumTypes[38].Descriptor() } func (StorageNode_SecurityStatus) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[37] + return &file_api_api_proto_enumTypes[38] } func (x StorageNode_SecurityStatus) Number() protoreflect.EnumNumber { @@ -2248,7 +2354,7 @@ func (x StorageNode_SecurityStatus) Number() protoreflect.EnumNumber { // Deprecated: Use StorageNode_SecurityStatus.Descriptor instead. func (StorageNode_SecurityStatus) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{73, 0} + return file_api_api_proto_rawDescGZIP(), []int{75, 0} } // Type are the supported job types @@ -2296,11 +2402,11 @@ func (x Job_Type) String() string { } func (Job_Type) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[38].Descriptor() + return file_api_api_proto_enumTypes[39].Descriptor() } func (Job_Type) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[38] + return &file_api_api_proto_enumTypes[39] } func (x Job_Type) Number() protoreflect.EnumNumber { @@ -2309,7 +2415,7 @@ func (x Job_Type) Number() protoreflect.EnumNumber { // Deprecated: Use Job_Type.Descriptor instead. func (Job_Type) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{192, 0} + return file_api_api_proto_rawDescGZIP(), []int{196, 0} } // State is an enum for state of a node drain operation @@ -2365,11 +2471,11 @@ func (x Job_State) String() string { } func (Job_State) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[39].Descriptor() + return file_api_api_proto_enumTypes[40].Descriptor() } func (Job_State) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[39] + return &file_api_api_proto_enumTypes[40] } func (x Job_State) Number() protoreflect.EnumNumber { @@ -2378,7 +2484,7 @@ func (x Job_State) Number() protoreflect.EnumNumber { // Deprecated: Use Job_State.Descriptor instead. func (Job_State) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{192, 1} + return file_api_api_proto_rawDescGZIP(), []int{196, 1} } // State is an enum for state of diags collection on a given node @@ -2426,11 +2532,11 @@ func (x DiagsCollectionStatus_State) String() string { } func (DiagsCollectionStatus_State) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[40].Descriptor() + return file_api_api_proto_enumTypes[41].Descriptor() } func (DiagsCollectionStatus_State) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[40] + return &file_api_api_proto_enumTypes[41] } func (x DiagsCollectionStatus_State) Number() protoreflect.EnumNumber { @@ -2439,7 +2545,7 @@ func (x DiagsCollectionStatus_State) Number() protoreflect.EnumNumber { // Deprecated: Use DiagsCollectionStatus_State.Descriptor instead. func (DiagsCollectionStatus_State) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{199, 0} + return file_api_api_proto_rawDescGZIP(), []int{203, 0} } // Type is an enum that defines the type fo the trigger threshold @@ -2477,11 +2583,11 @@ func (x StorageRebalanceTriggerThreshold_Type) String() string { } func (StorageRebalanceTriggerThreshold_Type) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[41].Descriptor() + return file_api_api_proto_enumTypes[42].Descriptor() } func (StorageRebalanceTriggerThreshold_Type) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[41] + return &file_api_api_proto_enumTypes[42] } func (x StorageRebalanceTriggerThreshold_Type) Number() protoreflect.EnumNumber { @@ -2490,7 +2596,7 @@ func (x StorageRebalanceTriggerThreshold_Type) Number() protoreflect.EnumNumber // Deprecated: Use StorageRebalanceTriggerThreshold_Type.Descriptor instead. func (StorageRebalanceTriggerThreshold_Type) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{219, 0} + return file_api_api_proto_rawDescGZIP(), []int{223, 0} } // Metric is an enum that defines the metric to use for rebalance @@ -2526,11 +2632,11 @@ func (x StorageRebalanceTriggerThreshold_Metric) String() string { } func (StorageRebalanceTriggerThreshold_Metric) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[42].Descriptor() + return file_api_api_proto_enumTypes[43].Descriptor() } func (StorageRebalanceTriggerThreshold_Metric) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[42] + return &file_api_api_proto_enumTypes[43] } func (x StorageRebalanceTriggerThreshold_Metric) Number() protoreflect.EnumNumber { @@ -2539,7 +2645,7 @@ func (x StorageRebalanceTriggerThreshold_Metric) Number() protoreflect.EnumNumbe // Deprecated: Use StorageRebalanceTriggerThreshold_Metric.Descriptor instead. func (StorageRebalanceTriggerThreshold_Metric) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{219, 1} + return file_api_api_proto_rawDescGZIP(), []int{223, 1} } // Type is an enum to indicate the type of work summary @@ -2583,11 +2689,11 @@ func (x StorageRebalanceWorkSummary_Type) String() string { } func (StorageRebalanceWorkSummary_Type) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[43].Descriptor() + return file_api_api_proto_enumTypes[44].Descriptor() } func (StorageRebalanceWorkSummary_Type) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[43] + return &file_api_api_proto_enumTypes[44] } func (x StorageRebalanceWorkSummary_Type) Number() protoreflect.EnumNumber { @@ -2596,7 +2702,7 @@ func (x StorageRebalanceWorkSummary_Type) Number() protoreflect.EnumNumber { // Deprecated: Use StorageRebalanceWorkSummary_Type.Descriptor instead. func (StorageRebalanceWorkSummary_Type) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{224, 0} + return file_api_api_proto_rawDescGZIP(), []int{228, 0} } // StorageRebalanceAction describes type of rebalance action @@ -2632,11 +2738,11 @@ func (x StorageRebalanceAudit_StorageRebalanceAction) String() string { } func (StorageRebalanceAudit_StorageRebalanceAction) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[44].Descriptor() + return file_api_api_proto_enumTypes[45].Descriptor() } func (StorageRebalanceAudit_StorageRebalanceAction) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[44] + return &file_api_api_proto_enumTypes[45] } func (x StorageRebalanceAudit_StorageRebalanceAction) Number() protoreflect.EnumNumber { @@ -2645,7 +2751,7 @@ func (x StorageRebalanceAudit_StorageRebalanceAction) Number() protoreflect.Enum // Deprecated: Use StorageRebalanceAudit_StorageRebalanceAction.Descriptor instead. func (StorageRebalanceAudit_StorageRebalanceAction) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{225, 0} + return file_api_api_proto_rawDescGZIP(), []int{229, 0} } // OperationStatus captures the various statuses of a storage pool operation @@ -2689,11 +2795,11 @@ func (x SdkStoragePool_OperationStatus) String() string { } func (SdkStoragePool_OperationStatus) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[45].Descriptor() + return file_api_api_proto_enumTypes[46].Descriptor() } func (SdkStoragePool_OperationStatus) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[45] + return &file_api_api_proto_enumTypes[46] } func (x SdkStoragePool_OperationStatus) Number() protoreflect.EnumNumber { @@ -2702,7 +2808,7 @@ func (x SdkStoragePool_OperationStatus) Number() protoreflect.EnumNumber { // Deprecated: Use SdkStoragePool_OperationStatus.Descriptor instead. func (SdkStoragePool_OperationStatus) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{232, 0} + return file_api_api_proto_rawDescGZIP(), []int{236, 0} } // OperationType defines the various operations that are performed on a storage pool @@ -2734,11 +2840,11 @@ func (x SdkStoragePool_OperationType) String() string { } func (SdkStoragePool_OperationType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[46].Descriptor() + return file_api_api_proto_enumTypes[47].Descriptor() } func (SdkStoragePool_OperationType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[46] + return &file_api_api_proto_enumTypes[47] } func (x SdkStoragePool_OperationType) Number() protoreflect.EnumNumber { @@ -2747,7 +2853,7 @@ func (x SdkStoragePool_OperationType) Number() protoreflect.EnumNumber { // Deprecated: Use SdkStoragePool_OperationType.Descriptor instead. func (SdkStoragePool_OperationType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{232, 1} + return file_api_api_proto_rawDescGZIP(), []int{236, 1} } // Defines the operation types available to resize a storage pool @@ -2787,11 +2893,11 @@ func (x SdkStoragePool_ResizeOperationType) String() string { } func (SdkStoragePool_ResizeOperationType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[47].Descriptor() + return file_api_api_proto_enumTypes[48].Descriptor() } func (SdkStoragePool_ResizeOperationType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[47] + return &file_api_api_proto_enumTypes[48] } func (x SdkStoragePool_ResizeOperationType) Number() protoreflect.EnumNumber { @@ -2800,7 +2906,7 @@ func (x SdkStoragePool_ResizeOperationType) Number() protoreflect.EnumNumber { // Deprecated: Use SdkStoragePool_ResizeOperationType.Descriptor instead. func (SdkStoragePool_ResizeOperationType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{232, 2} + return file_api_api_proto_rawDescGZIP(), []int{236, 2} } // FilesystemTrimStatus represents the status codes returned from @@ -2858,11 +2964,11 @@ func (x FilesystemTrim_FilesystemTrimStatus) String() string { } func (FilesystemTrim_FilesystemTrimStatus) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[48].Descriptor() + return file_api_api_proto_enumTypes[49].Descriptor() } func (FilesystemTrim_FilesystemTrimStatus) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[48] + return &file_api_api_proto_enumTypes[49] } func (x FilesystemTrim_FilesystemTrimStatus) Number() protoreflect.EnumNumber { @@ -2871,7 +2977,7 @@ func (x FilesystemTrim_FilesystemTrimStatus) Number() protoreflect.EnumNumber { // Deprecated: Use FilesystemTrim_FilesystemTrimStatus.Descriptor instead. func (FilesystemTrim_FilesystemTrimStatus) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{295, 0} + return file_api_api_proto_rawDescGZIP(), []int{299, 0} } // FilesystemChecktatus represents the status codes returned from @@ -2928,11 +3034,11 @@ func (x FilesystemCheck_FilesystemCheckStatus) String() string { } func (FilesystemCheck_FilesystemCheckStatus) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[49].Descriptor() + return file_api_api_proto_enumTypes[50].Descriptor() } func (FilesystemCheck_FilesystemCheckStatus) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[49] + return &file_api_api_proto_enumTypes[50] } func (x FilesystemCheck_FilesystemCheckStatus) Number() protoreflect.EnumNumber { @@ -2941,7 +3047,7 @@ func (x FilesystemCheck_FilesystemCheckStatus) Number() protoreflect.EnumNumber // Deprecated: Use FilesystemCheck_FilesystemCheckStatus.Descriptor instead. func (FilesystemCheck_FilesystemCheckStatus) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{306, 0} + return file_api_api_proto_rawDescGZIP(), []int{316, 0} } type SdkServiceCapability_OpenStorageService_Type int32 @@ -3024,11 +3130,11 @@ func (x SdkServiceCapability_OpenStorageService_Type) String() string { } func (SdkServiceCapability_OpenStorageService_Type) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[50].Descriptor() + return file_api_api_proto_enumTypes[51].Descriptor() } func (SdkServiceCapability_OpenStorageService_Type) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[50] + return &file_api_api_proto_enumTypes[51] } func (x SdkServiceCapability_OpenStorageService_Type) Number() protoreflect.EnumNumber { @@ -3037,7 +3143,7 @@ func (x SdkServiceCapability_OpenStorageService_Type) Number() protoreflect.Enum // Deprecated: Use SdkServiceCapability_OpenStorageService_Type.Descriptor instead. func (SdkServiceCapability_OpenStorageService_Type) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{317, 0, 0} + return file_api_api_proto_rawDescGZIP(), []int{327, 0, 0} } // These values are constants that can be used by the @@ -3050,7 +3156,7 @@ const ( // SDK version major value of this specification SdkVersion_Major SdkVersion_Version = 0 // SDK version minor value of this specification - SdkVersion_Minor SdkVersion_Version = 148 + SdkVersion_Minor SdkVersion_Version = 159 // SDK version patch value of this specification SdkVersion_Patch SdkVersion_Version = 0 ) @@ -3060,13 +3166,13 @@ var ( SdkVersion_Version_name = map[int32]string{ 0: "MUST_HAVE_ZERO_VALUE", // Duplicate value: 0: "Major", - 148: "Minor", + 159: "Minor", // Duplicate value: 0: "Patch", } SdkVersion_Version_value = map[string]int32{ "MUST_HAVE_ZERO_VALUE": 0, "Major": 0, - "Minor": 148, + "Minor": 159, "Patch": 0, } ) @@ -3082,11 +3188,11 @@ func (x SdkVersion_Version) String() string { } func (SdkVersion_Version) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[51].Descriptor() + return file_api_api_proto_enumTypes[52].Descriptor() } func (SdkVersion_Version) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[51] + return &file_api_api_proto_enumTypes[52] } func (x SdkVersion_Version) Number() protoreflect.EnumNumber { @@ -3095,7 +3201,7 @@ func (x SdkVersion_Version) Number() protoreflect.EnumNumber { // Deprecated: Use SdkVersion_Version.Descriptor instead. func (SdkVersion_Version) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{318, 0} + return file_api_api_proto_rawDescGZIP(), []int{328, 0} } type CloudMigrate_OperationType int32 @@ -3137,11 +3243,11 @@ func (x CloudMigrate_OperationType) String() string { } func (CloudMigrate_OperationType) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[52].Descriptor() + return file_api_api_proto_enumTypes[53].Descriptor() } func (CloudMigrate_OperationType) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[52] + return &file_api_api_proto_enumTypes[53] } func (x CloudMigrate_OperationType) Number() protoreflect.EnumNumber { @@ -3150,7 +3256,7 @@ func (x CloudMigrate_OperationType) Number() protoreflect.EnumNumber { // Deprecated: Use CloudMigrate_OperationType.Descriptor instead. func (CloudMigrate_OperationType) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{320, 0} + return file_api_api_proto_rawDescGZIP(), []int{330, 0} } type CloudMigrate_Stage int32 @@ -3192,11 +3298,11 @@ func (x CloudMigrate_Stage) String() string { } func (CloudMigrate_Stage) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[53].Descriptor() + return file_api_api_proto_enumTypes[54].Descriptor() } func (CloudMigrate_Stage) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[53] + return &file_api_api_proto_enumTypes[54] } func (x CloudMigrate_Stage) Number() protoreflect.EnumNumber { @@ -3205,7 +3311,7 @@ func (x CloudMigrate_Stage) Number() protoreflect.EnumNumber { // Deprecated: Use CloudMigrate_Stage.Descriptor instead. func (CloudMigrate_Stage) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{320, 1} + return file_api_api_proto_rawDescGZIP(), []int{330, 1} } type CloudMigrate_Status int32 @@ -3253,11 +3359,11 @@ func (x CloudMigrate_Status) String() string { } func (CloudMigrate_Status) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[54].Descriptor() + return file_api_api_proto_enumTypes[55].Descriptor() } func (CloudMigrate_Status) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[54] + return &file_api_api_proto_enumTypes[55] } func (x CloudMigrate_Status) Number() protoreflect.EnumNumber { @@ -3266,7 +3372,7 @@ func (x CloudMigrate_Status) Number() protoreflect.EnumNumber { // Deprecated: Use CloudMigrate_Status.Descriptor instead. func (CloudMigrate_Status) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{320, 2} + return file_api_api_proto_rawDescGZIP(), []int{330, 2} } type ClusterPairMode_Mode int32 @@ -3305,11 +3411,11 @@ func (x ClusterPairMode_Mode) String() string { } func (ClusterPairMode_Mode) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[55].Descriptor() + return file_api_api_proto_enumTypes[56].Descriptor() } func (ClusterPairMode_Mode) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[55] + return &file_api_api_proto_enumTypes[56] } func (x ClusterPairMode_Mode) Number() protoreflect.EnumNumber { @@ -3318,7 +3424,7 @@ func (x ClusterPairMode_Mode) Number() protoreflect.EnumNumber { // Deprecated: Use ClusterPairMode_Mode.Descriptor instead. func (ClusterPairMode_Mode) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{334, 0} + return file_api_api_proto_rawDescGZIP(), []int{344, 0} } // This defines operator types used in a label matching rule @@ -3370,11 +3476,11 @@ func (x LabelSelectorRequirement_Operator) String() string { } func (LabelSelectorRequirement_Operator) Descriptor() protoreflect.EnumDescriptor { - return file_api_api_proto_enumTypes[56].Descriptor() + return file_api_api_proto_enumTypes[57].Descriptor() } func (LabelSelectorRequirement_Operator) Type() protoreflect.EnumType { - return &file_api_api_proto_enumTypes[56] + return &file_api_api_proto_enumTypes[57] } func (x LabelSelectorRequirement_Operator) Number() protoreflect.EnumNumber { @@ -3383,7 +3489,7 @@ func (x LabelSelectorRequirement_Operator) Number() protoreflect.EnumNumber { // Deprecated: Use LabelSelectorRequirement_Operator.Descriptor instead. func (LabelSelectorRequirement_Operator) EnumDescriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{362, 0} + return file_api_api_proto_rawDescGZIP(), []int{372, 0} } // StorageResource groups properties of a storage device. @@ -4997,6 +5103,8 @@ type FastpathConfig struct { Dirty bool `protobuf:"varint,5,opt,name=dirty,proto3" json:"dirty,omitempty"` // fastpath coordinator node uuid to enhance reporting CoordUuid string `protobuf:"bytes,6,opt,name=coord_uuid,json=coordUuid,proto3" json:"coord_uuid,omitempty"` + // fastpath force failover, disable auto promote to fastpath + ForceFailover bool `protobuf:"varint,7,opt,name=force_failover,json=forceFailover,proto3" json:"force_failover,omitempty"` } func (x *FastpathConfig) Reset() { @@ -5073,6 +5181,13 @@ func (x *FastpathConfig) GetCoordUuid() string { return "" } +func (x *FastpathConfig) GetForceFailover() bool { + if x != nil { + return x.ForceFailover + } + return false +} + // ScanPolicy defines when a filesystem check is triggered and what action to take // User can specify *one* of the following valid policies // 1. trigger=SCAN_TRIGGER_ON_MOUNT, action=SCAN_ACTION_SCAN_ONLY @@ -5318,6 +5433,12 @@ type VolumeSpec struct { TopologyRequirement *TopologyRequirement `protobuf:"bytes,48,opt,name=topology_requirement,json=topologyRequirement,proto3" json:"topology_requirement,omitempty"` // winshare is true if this volume can be accessed from windows pods. Winshare bool `protobuf:"varint,49,opt,name=winshare,proto3" json:"winshare,omitempty"` + // Filesystem create options to be honored. + FaCreateOptions string `protobuf:"bytes,50,opt,name=fa_create_options,json=faCreateOptions,proto3" json:"fa_create_options,omitempty"` + // NearSync specifies the volume has a near-sync replica + NearSync bool `protobuf:"varint,51,opt,name=near_sync,json=nearSync,proto3" json:"near_sync,omitempty"` + // NearSyncReplicationStrategy is replication strategy for near sync volumes + NearSyncReplicationStrategy NearSyncReplicationStrategy `protobuf:"varint,52,opt,name=near_sync_replication_strategy,json=nearSyncReplicationStrategy,proto3,enum=openstorage.api.NearSyncReplicationStrategy" json:"near_sync_replication_strategy,omitempty"` } func (x *VolumeSpec) Reset() { @@ -5681,6 +5802,27 @@ func (x *VolumeSpec) GetWinshare() bool { return false } +func (x *VolumeSpec) GetFaCreateOptions() string { + if x != nil { + return x.FaCreateOptions + } + return "" +} + +func (x *VolumeSpec) GetNearSync() bool { + if x != nil { + return x.NearSync + } + return false +} + +func (x *VolumeSpec) GetNearSyncReplicationStrategy() NearSyncReplicationStrategy { + if x != nil { + return x.NearSyncReplicationStrategy + } + return NearSyncReplicationStrategy_NEAR_SYNC_STRATEGY_NONE +} + // VolumeSpecUpdate provides a method to set any of the VolumeSpec of an existing volume type VolumeSpecUpdate struct { state protoimpl.MessageState @@ -5846,6 +5988,11 @@ type VolumeSpecUpdate struct { // Types that are assignable to WinshareOpt: // *VolumeSpecUpdate_Winshare WinshareOpt isVolumeSpecUpdate_WinshareOpt `protobuf_oneof:"winshare_opt"` + // NearSyncReplicationStrategy is replication strategy for near sync volumes + // + // Types that are assignable to NearSyncReplicationStrategyOpt: + // *VolumeSpecUpdate_NearSyncReplicationStrategy + NearSyncReplicationStrategyOpt isVolumeSpecUpdate_NearSyncReplicationStrategyOpt `protobuf_oneof:"near_sync_replication_strategy_opt"` } func (x *VolumeSpecUpdate) Reset() { @@ -6321,6 +6468,20 @@ func (x *VolumeSpecUpdate) GetWinshare() bool { return false } +func (m *VolumeSpecUpdate) GetNearSyncReplicationStrategyOpt() isVolumeSpecUpdate_NearSyncReplicationStrategyOpt { + if m != nil { + return m.NearSyncReplicationStrategyOpt + } + return nil +} + +func (x *VolumeSpecUpdate) GetNearSyncReplicationStrategy() NearSyncReplicationStrategy { + if x, ok := x.GetNearSyncReplicationStrategyOpt().(*VolumeSpecUpdate_NearSyncReplicationStrategy); ok { + return x.NearSyncReplicationStrategy + } + return NearSyncReplicationStrategy_NEAR_SYNC_STRATEGY_NONE +} + type isVolumeSpecUpdate_SizeOpt interface { isVolumeSpecUpdate_SizeOpt() } @@ -6621,6 +6782,17 @@ type VolumeSpecUpdate_Winshare struct { func (*VolumeSpecUpdate_Winshare) isVolumeSpecUpdate_WinshareOpt() {} +type isVolumeSpecUpdate_NearSyncReplicationStrategyOpt interface { + isVolumeSpecUpdate_NearSyncReplicationStrategyOpt() +} + +type VolumeSpecUpdate_NearSyncReplicationStrategy struct { + NearSyncReplicationStrategy NearSyncReplicationStrategy `protobuf:"varint,43,opt,name=near_sync_replication_strategy,json=nearSyncReplicationStrategy,proto3,enum=openstorage.api.NearSyncReplicationStrategy,oneof"` +} + +func (*VolumeSpecUpdate_NearSyncReplicationStrategy) isVolumeSpecUpdate_NearSyncReplicationStrategyOpt() { +} + // VolumeSpecPolicy provides a method to set volume storage policy type VolumeSpecPolicy struct { state protoimpl.MessageState @@ -8521,6 +8693,122 @@ func (x *VolumeUsageByNode) GetVolumeUsage() []*VolumeUsage { return nil } +// VolumeBytesUsed defines volume utilization +type VolumeBytesUsed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // id for the volume/snapshot + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // size in bytes by the volume/snapshot + TotalBytes uint64 `protobuf:"varint,2,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` +} + +func (x *VolumeBytesUsed) Reset() { + *x = VolumeBytesUsed{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VolumeBytesUsed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VolumeBytesUsed) ProtoMessage() {} + +func (x *VolumeBytesUsed) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[37] + 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 VolumeBytesUsed.ProtoReflect.Descriptor instead. +func (*VolumeBytesUsed) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{37} +} + +func (x *VolumeBytesUsed) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *VolumeBytesUsed) GetTotalBytes() uint64 { + if x != nil { + return x.TotalBytes + } + return 0 +} + +// VolumeBytesUsedByNode defines volume utilization for multiple volumes in a given node +type VolumeBytesUsedByNode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // machine uuid + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // VolumeBytesUsed for each requested volume on the given node + VolUsage []*VolumeBytesUsed `protobuf:"bytes,2,rep,name=vol_usage,json=volUsage,proto3" json:"vol_usage,omitempty"` +} + +func (x *VolumeBytesUsedByNode) Reset() { + *x = VolumeBytesUsedByNode{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VolumeBytesUsedByNode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VolumeBytesUsedByNode) ProtoMessage() {} + +func (x *VolumeBytesUsedByNode) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[38] + 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 VolumeBytesUsedByNode.ProtoReflect.Descriptor instead. +func (*VolumeBytesUsedByNode) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{38} +} + +func (x *VolumeBytesUsedByNode) GetNodeId() string { + if x != nil { + return x.NodeId + } + return "" +} + +func (x *VolumeBytesUsedByNode) GetVolUsage() []*VolumeBytesUsed { + if x != nil { + return x.VolUsage + } + return nil +} + // FstrimVolUsageInfo type FstrimVolumeUsageInfo struct { state protoimpl.MessageState @@ -8542,7 +8830,7 @@ type FstrimVolumeUsageInfo struct { func (x *FstrimVolumeUsageInfo) Reset() { *x = FstrimVolumeUsageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[37] + mi := &file_api_api_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8555,7 +8843,7 @@ func (x *FstrimVolumeUsageInfo) String() string { func (*FstrimVolumeUsageInfo) ProtoMessage() {} func (x *FstrimVolumeUsageInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[37] + mi := &file_api_api_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8568,7 +8856,7 @@ func (x *FstrimVolumeUsageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FstrimVolumeUsageInfo.ProtoReflect.Descriptor instead. func (*FstrimVolumeUsageInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{37} + return file_api_api_proto_rawDescGZIP(), []int{39} } func (x *FstrimVolumeUsageInfo) GetVolumeName() string { @@ -8619,7 +8907,7 @@ type RelaxedReclaimPurge struct { func (x *RelaxedReclaimPurge) Reset() { *x = RelaxedReclaimPurge{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[38] + mi := &file_api_api_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8632,7 +8920,7 @@ func (x *RelaxedReclaimPurge) String() string { func (*RelaxedReclaimPurge) ProtoMessage() {} func (x *RelaxedReclaimPurge) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[38] + mi := &file_api_api_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8645,7 +8933,7 @@ func (x *RelaxedReclaimPurge) ProtoReflect() protoreflect.Message { // Deprecated: Use RelaxedReclaimPurge.ProtoReflect.Descriptor instead. func (*RelaxedReclaimPurge) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{38} + return file_api_api_proto_rawDescGZIP(), []int{40} } func (x *RelaxedReclaimPurge) GetNumPurged() uint64 { @@ -8683,7 +8971,7 @@ type SdkStoragePolicy struct { func (x *SdkStoragePolicy) Reset() { *x = SdkStoragePolicy{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[39] + mi := &file_api_api_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8696,7 +8984,7 @@ func (x *SdkStoragePolicy) String() string { func (*SdkStoragePolicy) ProtoMessage() {} func (x *SdkStoragePolicy) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[39] + mi := &file_api_api_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8709,7 +8997,7 @@ func (x *SdkStoragePolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkStoragePolicy.ProtoReflect.Descriptor instead. func (*SdkStoragePolicy) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{39} + return file_api_api_proto_rawDescGZIP(), []int{41} } func (x *SdkStoragePolicy) GetName() string { @@ -8782,7 +9070,7 @@ type Alert struct { func (x *Alert) Reset() { *x = Alert{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[40] + mi := &file_api_api_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8795,7 +9083,7 @@ func (x *Alert) String() string { func (*Alert) ProtoMessage() {} func (x *Alert) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[40] + mi := &file_api_api_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8808,7 +9096,7 @@ func (x *Alert) ProtoReflect() protoreflect.Message { // Deprecated: Use Alert.ProtoReflect.Descriptor instead. func (*Alert) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{40} + return file_api_api_proto_rawDescGZIP(), []int{42} } func (x *Alert) GetId() int64 { @@ -8910,7 +9198,7 @@ type SdkAlertsTimeSpan struct { func (x *SdkAlertsTimeSpan) Reset() { *x = SdkAlertsTimeSpan{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[41] + mi := &file_api_api_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8923,7 +9211,7 @@ func (x *SdkAlertsTimeSpan) String() string { func (*SdkAlertsTimeSpan) ProtoMessage() {} func (x *SdkAlertsTimeSpan) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[41] + mi := &file_api_api_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8936,7 +9224,7 @@ func (x *SdkAlertsTimeSpan) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsTimeSpan.ProtoReflect.Descriptor instead. func (*SdkAlertsTimeSpan) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{41} + return file_api_api_proto_rawDescGZIP(), []int{43} } func (x *SdkAlertsTimeSpan) GetStartTime() *timestamppb.Timestamp { @@ -8968,7 +9256,7 @@ type SdkAlertsCountSpan struct { func (x *SdkAlertsCountSpan) Reset() { *x = SdkAlertsCountSpan{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[42] + mi := &file_api_api_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8981,7 +9269,7 @@ func (x *SdkAlertsCountSpan) String() string { func (*SdkAlertsCountSpan) ProtoMessage() {} func (x *SdkAlertsCountSpan) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[42] + mi := &file_api_api_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8994,7 +9282,7 @@ func (x *SdkAlertsCountSpan) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsCountSpan.ProtoReflect.Descriptor instead. func (*SdkAlertsCountSpan) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{42} + return file_api_api_proto_rawDescGZIP(), []int{44} } func (x *SdkAlertsCountSpan) GetMinCount() int64 { @@ -9028,7 +9316,7 @@ type SdkAlertsOption struct { func (x *SdkAlertsOption) Reset() { *x = SdkAlertsOption{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[43] + mi := &file_api_api_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9041,7 +9329,7 @@ func (x *SdkAlertsOption) String() string { func (*SdkAlertsOption) ProtoMessage() {} func (x *SdkAlertsOption) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[43] + mi := &file_api_api_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9054,7 +9342,7 @@ func (x *SdkAlertsOption) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsOption.ProtoReflect.Descriptor instead. func (*SdkAlertsOption) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{43} + return file_api_api_proto_rawDescGZIP(), []int{45} } func (m *SdkAlertsOption) GetOpt() isSdkAlertsOption_Opt { @@ -9137,7 +9425,7 @@ type SdkAlertsResourceTypeQuery struct { func (x *SdkAlertsResourceTypeQuery) Reset() { *x = SdkAlertsResourceTypeQuery{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[44] + mi := &file_api_api_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9150,7 +9438,7 @@ func (x *SdkAlertsResourceTypeQuery) String() string { func (*SdkAlertsResourceTypeQuery) ProtoMessage() {} func (x *SdkAlertsResourceTypeQuery) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[44] + mi := &file_api_api_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9163,7 +9451,7 @@ func (x *SdkAlertsResourceTypeQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsResourceTypeQuery.ProtoReflect.Descriptor instead. func (*SdkAlertsResourceTypeQuery) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{44} + return file_api_api_proto_rawDescGZIP(), []int{46} } func (x *SdkAlertsResourceTypeQuery) GetResourceType() ResourceType { @@ -9189,7 +9477,7 @@ type SdkAlertsAlertTypeQuery struct { func (x *SdkAlertsAlertTypeQuery) Reset() { *x = SdkAlertsAlertTypeQuery{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[45] + mi := &file_api_api_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9202,7 +9490,7 @@ func (x *SdkAlertsAlertTypeQuery) String() string { func (*SdkAlertsAlertTypeQuery) ProtoMessage() {} func (x *SdkAlertsAlertTypeQuery) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[45] + mi := &file_api_api_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9215,7 +9503,7 @@ func (x *SdkAlertsAlertTypeQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsAlertTypeQuery.ProtoReflect.Descriptor instead. func (*SdkAlertsAlertTypeQuery) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{45} + return file_api_api_proto_rawDescGZIP(), []int{47} } func (x *SdkAlertsAlertTypeQuery) GetResourceType() ResourceType { @@ -9251,7 +9539,7 @@ type SdkAlertsResourceIdQuery struct { func (x *SdkAlertsResourceIdQuery) Reset() { *x = SdkAlertsResourceIdQuery{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[46] + mi := &file_api_api_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9264,7 +9552,7 @@ func (x *SdkAlertsResourceIdQuery) String() string { func (*SdkAlertsResourceIdQuery) ProtoMessage() {} func (x *SdkAlertsResourceIdQuery) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[46] + mi := &file_api_api_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9277,7 +9565,7 @@ func (x *SdkAlertsResourceIdQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsResourceIdQuery.ProtoReflect.Descriptor instead. func (*SdkAlertsResourceIdQuery) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{46} + return file_api_api_proto_rawDescGZIP(), []int{48} } func (x *SdkAlertsResourceIdQuery) GetResourceType() ResourceType { @@ -9323,7 +9611,7 @@ type SdkAlertsQuery struct { func (x *SdkAlertsQuery) Reset() { *x = SdkAlertsQuery{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[47] + mi := &file_api_api_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9336,7 +9624,7 @@ func (x *SdkAlertsQuery) String() string { func (*SdkAlertsQuery) ProtoMessage() {} func (x *SdkAlertsQuery) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[47] + mi := &file_api_api_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9349,7 +9637,7 @@ func (x *SdkAlertsQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsQuery.ProtoReflect.Descriptor instead. func (*SdkAlertsQuery) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{47} + return file_api_api_proto_rawDescGZIP(), []int{49} } func (m *SdkAlertsQuery) GetQuery() isSdkAlertsQuery_Query { @@ -9429,7 +9717,7 @@ type SdkAlertsEnumerateWithFiltersRequest struct { func (x *SdkAlertsEnumerateWithFiltersRequest) Reset() { *x = SdkAlertsEnumerateWithFiltersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[48] + mi := &file_api_api_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9442,7 +9730,7 @@ func (x *SdkAlertsEnumerateWithFiltersRequest) String() string { func (*SdkAlertsEnumerateWithFiltersRequest) ProtoMessage() {} func (x *SdkAlertsEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[48] + mi := &file_api_api_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9455,7 +9743,7 @@ func (x *SdkAlertsEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use SdkAlertsEnumerateWithFiltersRequest.ProtoReflect.Descriptor instead. func (*SdkAlertsEnumerateWithFiltersRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{48} + return file_api_api_proto_rawDescGZIP(), []int{50} } func (x *SdkAlertsEnumerateWithFiltersRequest) GetQueries() []*SdkAlertsQuery { @@ -9478,7 +9766,7 @@ type SdkAlertsEnumerateWithFiltersResponse struct { func (x *SdkAlertsEnumerateWithFiltersResponse) Reset() { *x = SdkAlertsEnumerateWithFiltersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[49] + mi := &file_api_api_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9491,7 +9779,7 @@ func (x *SdkAlertsEnumerateWithFiltersResponse) String() string { func (*SdkAlertsEnumerateWithFiltersResponse) ProtoMessage() {} func (x *SdkAlertsEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[49] + mi := &file_api_api_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9504,7 +9792,7 @@ func (x *SdkAlertsEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use SdkAlertsEnumerateWithFiltersResponse.ProtoReflect.Descriptor instead. func (*SdkAlertsEnumerateWithFiltersResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{49} + return file_api_api_proto_rawDescGZIP(), []int{51} } func (x *SdkAlertsEnumerateWithFiltersResponse) GetAlerts() []*Alert { @@ -9528,7 +9816,7 @@ type SdkAlertsDeleteRequest struct { func (x *SdkAlertsDeleteRequest) Reset() { *x = SdkAlertsDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[50] + mi := &file_api_api_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9541,7 +9829,7 @@ func (x *SdkAlertsDeleteRequest) String() string { func (*SdkAlertsDeleteRequest) ProtoMessage() {} func (x *SdkAlertsDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[50] + mi := &file_api_api_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9554,7 +9842,7 @@ func (x *SdkAlertsDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkAlertsDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{50} + return file_api_api_proto_rawDescGZIP(), []int{52} } func (x *SdkAlertsDeleteRequest) GetQueries() []*SdkAlertsQuery { @@ -9574,7 +9862,7 @@ type SdkAlertsDeleteResponse struct { func (x *SdkAlertsDeleteResponse) Reset() { *x = SdkAlertsDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[51] + mi := &file_api_api_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9587,7 +9875,7 @@ func (x *SdkAlertsDeleteResponse) String() string { func (*SdkAlertsDeleteResponse) ProtoMessage() {} func (x *SdkAlertsDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[51] + mi := &file_api_api_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9600,7 +9888,7 @@ func (x *SdkAlertsDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAlertsDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkAlertsDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{51} + return file_api_api_proto_rawDescGZIP(), []int{53} } // Alerts is an array of Alert objects @@ -9615,7 +9903,7 @@ type Alerts struct { func (x *Alerts) Reset() { *x = Alerts{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[52] + mi := &file_api_api_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9628,7 +9916,7 @@ func (x *Alerts) String() string { func (*Alerts) ProtoMessage() {} func (x *Alerts) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[52] + mi := &file_api_api_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9641,7 +9929,7 @@ func (x *Alerts) ProtoReflect() protoreflect.Message { // Deprecated: Use Alerts.ProtoReflect.Descriptor instead. func (*Alerts) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{52} + return file_api_api_proto_rawDescGZIP(), []int{54} } func (x *Alerts) GetAlert() []*Alert { @@ -9684,7 +9972,7 @@ type ObjectstoreInfo struct { func (x *ObjectstoreInfo) Reset() { *x = ObjectstoreInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[53] + mi := &file_api_api_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9697,7 +9985,7 @@ func (x *ObjectstoreInfo) String() string { func (*ObjectstoreInfo) ProtoMessage() {} func (x *ObjectstoreInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[53] + mi := &file_api_api_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9710,7 +9998,7 @@ func (x *ObjectstoreInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ObjectstoreInfo.ProtoReflect.Descriptor instead. func (*ObjectstoreInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{53} + return file_api_api_proto_rawDescGZIP(), []int{55} } func (x *ObjectstoreInfo) GetUuid() string { @@ -9808,7 +10096,7 @@ type VolumeCreateRequest struct { func (x *VolumeCreateRequest) Reset() { *x = VolumeCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[54] + mi := &file_api_api_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9821,7 +10109,7 @@ func (x *VolumeCreateRequest) String() string { func (*VolumeCreateRequest) ProtoMessage() {} func (x *VolumeCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[54] + mi := &file_api_api_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9834,7 +10122,7 @@ func (x *VolumeCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeCreateRequest.ProtoReflect.Descriptor instead. func (*VolumeCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{54} + return file_api_api_proto_rawDescGZIP(), []int{56} } func (x *VolumeCreateRequest) GetLocator() *VolumeLocator { @@ -9874,7 +10162,7 @@ type VolumeResponse struct { func (x *VolumeResponse) Reset() { *x = VolumeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[55] + mi := &file_api_api_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9887,7 +10175,7 @@ func (x *VolumeResponse) String() string { func (*VolumeResponse) ProtoMessage() {} func (x *VolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[55] + mi := &file_api_api_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9900,7 +10188,7 @@ func (x *VolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeResponse.ProtoReflect.Descriptor instead. func (*VolumeResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{55} + return file_api_api_proto_rawDescGZIP(), []int{57} } func (x *VolumeResponse) GetError() string { @@ -9931,7 +10219,7 @@ type VolumeCreateResponse struct { func (x *VolumeCreateResponse) Reset() { *x = VolumeCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[56] + mi := &file_api_api_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9944,7 +10232,7 @@ func (x *VolumeCreateResponse) String() string { func (*VolumeCreateResponse) ProtoMessage() {} func (x *VolumeCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[56] + mi := &file_api_api_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9957,7 +10245,7 @@ func (x *VolumeCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeCreateResponse.ProtoReflect.Descriptor instead. func (*VolumeCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{56} + return file_api_api_proto_rawDescGZIP(), []int{58} } func (x *VolumeCreateResponse) GetId() string { @@ -9993,7 +10281,7 @@ type VolumeStateAction struct { func (x *VolumeStateAction) Reset() { *x = VolumeStateAction{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[57] + mi := &file_api_api_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10006,7 +10294,7 @@ func (x *VolumeStateAction) String() string { func (*VolumeStateAction) ProtoMessage() {} func (x *VolumeStateAction) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[57] + mi := &file_api_api_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10019,7 +10307,7 @@ func (x *VolumeStateAction) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeStateAction.ProtoReflect.Descriptor instead. func (*VolumeStateAction) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{57} + return file_api_api_proto_rawDescGZIP(), []int{59} } func (x *VolumeStateAction) GetAttach() VolumeActionParam { @@ -10070,7 +10358,7 @@ type VolumeSetRequest struct { func (x *VolumeSetRequest) Reset() { *x = VolumeSetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[58] + mi := &file_api_api_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10083,7 +10371,7 @@ func (x *VolumeSetRequest) String() string { func (*VolumeSetRequest) ProtoMessage() {} func (x *VolumeSetRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[58] + mi := &file_api_api_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10096,7 +10384,7 @@ func (x *VolumeSetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeSetRequest.ProtoReflect.Descriptor instead. func (*VolumeSetRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{58} + return file_api_api_proto_rawDescGZIP(), []int{60} } func (x *VolumeSetRequest) GetLocator() *VolumeLocator { @@ -10142,7 +10430,7 @@ type VolumeSetResponse struct { func (x *VolumeSetResponse) Reset() { *x = VolumeSetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[59] + mi := &file_api_api_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10155,7 +10443,7 @@ func (x *VolumeSetResponse) String() string { func (*VolumeSetResponse) ProtoMessage() {} func (x *VolumeSetResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[59] + mi := &file_api_api_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10168,7 +10456,7 @@ func (x *VolumeSetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeSetResponse.ProtoReflect.Descriptor instead. func (*VolumeSetResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{59} + return file_api_api_proto_rawDescGZIP(), []int{61} } func (x *VolumeSetResponse) GetVolume() *Volume { @@ -10202,7 +10490,7 @@ type SnapCreateRequest struct { func (x *SnapCreateRequest) Reset() { *x = SnapCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[60] + mi := &file_api_api_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10215,7 +10503,7 @@ func (x *SnapCreateRequest) String() string { func (*SnapCreateRequest) ProtoMessage() {} func (x *SnapCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[60] + mi := &file_api_api_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10228,7 +10516,7 @@ func (x *SnapCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SnapCreateRequest.ProtoReflect.Descriptor instead. func (*SnapCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{60} + return file_api_api_proto_rawDescGZIP(), []int{62} } func (x *SnapCreateRequest) GetId() string { @@ -10275,7 +10563,7 @@ type SnapCreateResponse struct { func (x *SnapCreateResponse) Reset() { *x = SnapCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[61] + mi := &file_api_api_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10288,7 +10576,7 @@ func (x *SnapCreateResponse) String() string { func (*SnapCreateResponse) ProtoMessage() {} func (x *SnapCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[61] + mi := &file_api_api_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10301,7 +10589,7 @@ func (x *SnapCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SnapCreateResponse.ProtoReflect.Descriptor instead. func (*SnapCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{61} + return file_api_api_proto_rawDescGZIP(), []int{63} } func (x *SnapCreateResponse) GetVolumeCreateResponse() *VolumeCreateResponse { @@ -10325,7 +10613,7 @@ type VolumeInfo struct { func (x *VolumeInfo) Reset() { *x = VolumeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[62] + mi := &file_api_api_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10338,7 +10626,7 @@ func (x *VolumeInfo) String() string { func (*VolumeInfo) ProtoMessage() {} func (x *VolumeInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[62] + mi := &file_api_api_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10351,7 +10639,7 @@ func (x *VolumeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeInfo.ProtoReflect.Descriptor instead. func (*VolumeInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{62} + return file_api_api_proto_rawDescGZIP(), []int{64} } func (x *VolumeInfo) GetVolumeId() string { @@ -10405,7 +10693,7 @@ type VolumeConsumer struct { func (x *VolumeConsumer) Reset() { *x = VolumeConsumer{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[63] + mi := &file_api_api_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10418,7 +10706,7 @@ func (x *VolumeConsumer) String() string { func (*VolumeConsumer) ProtoMessage() {} func (x *VolumeConsumer) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[63] + mi := &file_api_api_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10431,7 +10719,7 @@ func (x *VolumeConsumer) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeConsumer.ProtoReflect.Descriptor instead. func (*VolumeConsumer) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{63} + return file_api_api_proto_rawDescGZIP(), []int{65} } func (x *VolumeConsumer) GetName() string { @@ -10492,7 +10780,7 @@ type VolumeServiceRequest struct { func (x *VolumeServiceRequest) Reset() { *x = VolumeServiceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[64] + mi := &file_api_api_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10505,7 +10793,7 @@ func (x *VolumeServiceRequest) String() string { func (*VolumeServiceRequest) ProtoMessage() {} func (x *VolumeServiceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[64] + mi := &file_api_api_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10518,7 +10806,7 @@ func (x *VolumeServiceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeServiceRequest.ProtoReflect.Descriptor instead. func (*VolumeServiceRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{64} + return file_api_api_proto_rawDescGZIP(), []int{66} } func (x *VolumeServiceRequest) GetSrvCmd() string { @@ -10549,7 +10837,7 @@ type VolumeServiceInstanceResponse struct { func (x *VolumeServiceInstanceResponse) Reset() { *x = VolumeServiceInstanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[65] + mi := &file_api_api_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10562,7 +10850,7 @@ func (x *VolumeServiceInstanceResponse) String() string { func (*VolumeServiceInstanceResponse) ProtoMessage() {} func (x *VolumeServiceInstanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[65] + mi := &file_api_api_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10575,7 +10863,7 @@ func (x *VolumeServiceInstanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeServiceInstanceResponse.ProtoReflect.Descriptor instead. func (*VolumeServiceInstanceResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{65} + return file_api_api_proto_rawDescGZIP(), []int{67} } func (x *VolumeServiceInstanceResponse) GetError() string { @@ -10608,7 +10896,7 @@ type VolumeServiceResponse struct { func (x *VolumeServiceResponse) Reset() { *x = VolumeServiceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[66] + mi := &file_api_api_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10621,7 +10909,7 @@ func (x *VolumeServiceResponse) String() string { func (*VolumeServiceResponse) ProtoMessage() {} func (x *VolumeServiceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[66] + mi := &file_api_api_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10634,7 +10922,7 @@ func (x *VolumeServiceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeServiceResponse.ProtoReflect.Descriptor instead. func (*VolumeServiceResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{66} + return file_api_api_proto_rawDescGZIP(), []int{68} } func (x *VolumeServiceResponse) GetVolSrvRspObjCnt() int32 { @@ -10667,7 +10955,7 @@ type GraphDriverChanges struct { func (x *GraphDriverChanges) Reset() { *x = GraphDriverChanges{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[67] + mi := &file_api_api_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10680,7 +10968,7 @@ func (x *GraphDriverChanges) String() string { func (*GraphDriverChanges) ProtoMessage() {} func (x *GraphDriverChanges) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[67] + mi := &file_api_api_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10693,7 +10981,7 @@ func (x *GraphDriverChanges) ProtoReflect() protoreflect.Message { // Deprecated: Use GraphDriverChanges.ProtoReflect.Descriptor instead. func (*GraphDriverChanges) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{67} + return file_api_api_proto_rawDescGZIP(), []int{69} } func (x *GraphDriverChanges) GetPath() string { @@ -10725,7 +11013,7 @@ type ClusterResponse struct { func (x *ClusterResponse) Reset() { *x = ClusterResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[68] + mi := &file_api_api_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10738,7 +11026,7 @@ func (x *ClusterResponse) String() string { func (*ClusterResponse) ProtoMessage() {} func (x *ClusterResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[68] + mi := &file_api_api_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10751,7 +11039,7 @@ func (x *ClusterResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterResponse.ProtoReflect.Descriptor instead. func (*ClusterResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{68} + return file_api_api_proto_rawDescGZIP(), []int{70} } func (x *ClusterResponse) GetError() string { @@ -10773,7 +11061,7 @@ type ActiveRequest struct { func (x *ActiveRequest) Reset() { *x = ActiveRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[69] + mi := &file_api_api_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10786,7 +11074,7 @@ func (x *ActiveRequest) String() string { func (*ActiveRequest) ProtoMessage() {} func (x *ActiveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[69] + mi := &file_api_api_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10799,7 +11087,7 @@ func (x *ActiveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ActiveRequest.ProtoReflect.Descriptor instead. func (*ActiveRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{69} + return file_api_api_proto_rawDescGZIP(), []int{71} } func (x *ActiveRequest) GetReqestKV() map[int64]string { @@ -10822,7 +11110,7 @@ type ActiveRequests struct { func (x *ActiveRequests) Reset() { *x = ActiveRequests{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[70] + mi := &file_api_api_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10835,7 +11123,7 @@ func (x *ActiveRequests) String() string { func (*ActiveRequests) ProtoMessage() {} func (x *ActiveRequests) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[70] + mi := &file_api_api_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10848,7 +11136,7 @@ func (x *ActiveRequests) ProtoReflect() protoreflect.Message { // Deprecated: Use ActiveRequests.ProtoReflect.Descriptor instead. func (*ActiveRequests) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{70} + return file_api_api_proto_rawDescGZIP(), []int{72} } func (x *ActiveRequests) GetRequestCount() int64 { @@ -10880,7 +11168,7 @@ type GroupSnapCreateRequest struct { func (x *GroupSnapCreateRequest) Reset() { *x = GroupSnapCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[71] + mi := &file_api_api_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10893,7 +11181,7 @@ func (x *GroupSnapCreateRequest) String() string { func (*GroupSnapCreateRequest) ProtoMessage() {} func (x *GroupSnapCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[71] + mi := &file_api_api_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10906,7 +11194,7 @@ func (x *GroupSnapCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupSnapCreateRequest.ProtoReflect.Descriptor instead. func (*GroupSnapCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{71} + return file_api_api_proto_rawDescGZIP(), []int{73} } func (x *GroupSnapCreateRequest) GetId() string { @@ -10958,7 +11246,7 @@ type GroupSnapCreateResponse struct { func (x *GroupSnapCreateResponse) Reset() { *x = GroupSnapCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[72] + mi := &file_api_api_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10971,7 +11259,7 @@ func (x *GroupSnapCreateResponse) String() string { func (*GroupSnapCreateResponse) ProtoMessage() {} func (x *GroupSnapCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[72] + mi := &file_api_api_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10984,7 +11272,7 @@ func (x *GroupSnapCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupSnapCreateResponse.ProtoReflect.Descriptor instead. func (*GroupSnapCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{72} + return file_api_api_proto_rawDescGZIP(), []int{74} } func (x *GroupSnapCreateResponse) GetSnapshots() map[string]*SnapCreateResponse { @@ -11047,7 +11335,7 @@ type StorageNode struct { func (x *StorageNode) Reset() { *x = StorageNode{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[73] + mi := &file_api_api_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11060,7 +11348,7 @@ func (x *StorageNode) String() string { func (*StorageNode) ProtoMessage() {} func (x *StorageNode) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[73] + mi := &file_api_api_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11073,7 +11361,7 @@ func (x *StorageNode) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageNode.ProtoReflect.Descriptor instead. func (*StorageNode) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{73} + return file_api_api_proto_rawDescGZIP(), []int{75} } func (x *StorageNode) GetId() string { @@ -11212,7 +11500,7 @@ type StorageCluster struct { func (x *StorageCluster) Reset() { *x = StorageCluster{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[74] + mi := &file_api_api_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11225,7 +11513,7 @@ func (x *StorageCluster) String() string { func (*StorageCluster) ProtoMessage() {} func (x *StorageCluster) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[74] + mi := &file_api_api_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11238,7 +11526,7 @@ func (x *StorageCluster) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageCluster.ProtoReflect.Descriptor instead. func (*StorageCluster) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{74} + return file_api_api_proto_rawDescGZIP(), []int{76} } func (x *StorageCluster) GetStatus() Status { @@ -11281,7 +11569,7 @@ type BucketCreateRequest struct { func (x *BucketCreateRequest) Reset() { *x = BucketCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[75] + mi := &file_api_api_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11294,7 +11582,7 @@ func (x *BucketCreateRequest) String() string { func (*BucketCreateRequest) ProtoMessage() {} func (x *BucketCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[75] + mi := &file_api_api_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11307,7 +11595,7 @@ func (x *BucketCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketCreateRequest.ProtoReflect.Descriptor instead. func (*BucketCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{75} + return file_api_api_proto_rawDescGZIP(), []int{77} } func (x *BucketCreateRequest) GetName() string { @@ -11351,7 +11639,7 @@ type BucketCreateResponse struct { func (x *BucketCreateResponse) Reset() { *x = BucketCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[76] + mi := &file_api_api_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11364,7 +11652,7 @@ func (x *BucketCreateResponse) String() string { func (*BucketCreateResponse) ProtoMessage() {} func (x *BucketCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[76] + mi := &file_api_api_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11377,7 +11665,7 @@ func (x *BucketCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketCreateResponse.ProtoReflect.Descriptor instead. func (*BucketCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{76} + return file_api_api_proto_rawDescGZIP(), []int{78} } func (x *BucketCreateResponse) GetBucketId() string { @@ -11406,7 +11694,7 @@ type BucketDeleteRequest struct { func (x *BucketDeleteRequest) Reset() { *x = BucketDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[77] + mi := &file_api_api_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11419,7 +11707,7 @@ func (x *BucketDeleteRequest) String() string { func (*BucketDeleteRequest) ProtoMessage() {} func (x *BucketDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[77] + mi := &file_api_api_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11432,7 +11720,7 @@ func (x *BucketDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketDeleteRequest.ProtoReflect.Descriptor instead. func (*BucketDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{77} + return file_api_api_proto_rawDescGZIP(), []int{79} } func (x *BucketDeleteRequest) GetBucketId() string { @@ -11473,7 +11761,7 @@ type BucketDeleteResponse struct { func (x *BucketDeleteResponse) Reset() { *x = BucketDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[78] + mi := &file_api_api_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11486,7 +11774,7 @@ func (x *BucketDeleteResponse) String() string { func (*BucketDeleteResponse) ProtoMessage() {} func (x *BucketDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[78] + mi := &file_api_api_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11499,7 +11787,7 @@ func (x *BucketDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketDeleteResponse.ProtoReflect.Descriptor instead. func (*BucketDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{78} + return file_api_api_proto_rawDescGZIP(), []int{80} } // Defines a request to grant access to the bucket @@ -11519,7 +11807,7 @@ type BucketGrantAccessRequest struct { func (x *BucketGrantAccessRequest) Reset() { *x = BucketGrantAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[79] + mi := &file_api_api_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11532,7 +11820,7 @@ func (x *BucketGrantAccessRequest) String() string { func (*BucketGrantAccessRequest) ProtoMessage() {} func (x *BucketGrantAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[79] + mi := &file_api_api_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11545,7 +11833,7 @@ func (x *BucketGrantAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketGrantAccessRequest.ProtoReflect.Descriptor instead. func (*BucketGrantAccessRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{79} + return file_api_api_proto_rawDescGZIP(), []int{81} } func (x *BucketGrantAccessRequest) GetBucketId() string { @@ -11585,7 +11873,7 @@ type BucketGrantAccessResponse struct { func (x *BucketGrantAccessResponse) Reset() { *x = BucketGrantAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[80] + mi := &file_api_api_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11598,7 +11886,7 @@ func (x *BucketGrantAccessResponse) String() string { func (*BucketGrantAccessResponse) ProtoMessage() {} func (x *BucketGrantAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[80] + mi := &file_api_api_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11611,7 +11899,7 @@ func (x *BucketGrantAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketGrantAccessResponse.ProtoReflect.Descriptor instead. func (*BucketGrantAccessResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{80} + return file_api_api_proto_rawDescGZIP(), []int{82} } func (x *BucketGrantAccessResponse) GetAccountId() string { @@ -11643,7 +11931,7 @@ type BucketRevokeAccessRequest struct { func (x *BucketRevokeAccessRequest) Reset() { *x = BucketRevokeAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[81] + mi := &file_api_api_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11656,7 +11944,7 @@ func (x *BucketRevokeAccessRequest) String() string { func (*BucketRevokeAccessRequest) ProtoMessage() {} func (x *BucketRevokeAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[81] + mi := &file_api_api_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11669,7 +11957,7 @@ func (x *BucketRevokeAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketRevokeAccessRequest.ProtoReflect.Descriptor instead. func (*BucketRevokeAccessRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{81} + return file_api_api_proto_rawDescGZIP(), []int{83} } func (x *BucketRevokeAccessRequest) GetBucketId() string { @@ -11696,7 +11984,7 @@ type BucketRevokeAccessResponse struct { func (x *BucketRevokeAccessResponse) Reset() { *x = BucketRevokeAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[82] + mi := &file_api_api_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11709,7 +11997,7 @@ func (x *BucketRevokeAccessResponse) String() string { func (*BucketRevokeAccessResponse) ProtoMessage() {} func (x *BucketRevokeAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[82] + mi := &file_api_api_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11722,7 +12010,7 @@ func (x *BucketRevokeAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketRevokeAccessResponse.ProtoReflect.Descriptor instead. func (*BucketRevokeAccessResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{82} + return file_api_api_proto_rawDescGZIP(), []int{84} } // Defines the bucket access credential object @@ -11740,7 +12028,7 @@ type BucketAccessCredentials struct { func (x *BucketAccessCredentials) Reset() { *x = BucketAccessCredentials{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[83] + mi := &file_api_api_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11753,7 +12041,7 @@ func (x *BucketAccessCredentials) String() string { func (*BucketAccessCredentials) ProtoMessage() {} func (x *BucketAccessCredentials) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[83] + mi := &file_api_api_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11766,7 +12054,7 @@ func (x *BucketAccessCredentials) ProtoReflect() protoreflect.Message { // Deprecated: Use BucketAccessCredentials.ProtoReflect.Descriptor instead. func (*BucketAccessCredentials) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{83} + return file_api_api_proto_rawDescGZIP(), []int{85} } func (x *BucketAccessCredentials) GetAccessKeyId() string { @@ -11796,7 +12084,7 @@ type SdkOpenStoragePolicyCreateRequest struct { func (x *SdkOpenStoragePolicyCreateRequest) Reset() { *x = SdkOpenStoragePolicyCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[84] + mi := &file_api_api_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11809,7 +12097,7 @@ func (x *SdkOpenStoragePolicyCreateRequest) String() string { func (*SdkOpenStoragePolicyCreateRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[84] + mi := &file_api_api_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11822,7 +12110,7 @@ func (x *SdkOpenStoragePolicyCreateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyCreateRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{84} + return file_api_api_proto_rawDescGZIP(), []int{86} } func (x *SdkOpenStoragePolicyCreateRequest) GetStoragePolicy() *SdkStoragePolicy { @@ -11842,7 +12130,7 @@ type SdkOpenStoragePolicyCreateResponse struct { func (x *SdkOpenStoragePolicyCreateResponse) Reset() { *x = SdkOpenStoragePolicyCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[85] + mi := &file_api_api_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11855,7 +12143,7 @@ func (x *SdkOpenStoragePolicyCreateResponse) String() string { func (*SdkOpenStoragePolicyCreateResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[85] + mi := &file_api_api_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11868,7 +12156,7 @@ func (x *SdkOpenStoragePolicyCreateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyCreateResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{85} + return file_api_api_proto_rawDescGZIP(), []int{87} } // Empty request @@ -11881,7 +12169,7 @@ type SdkOpenStoragePolicyEnumerateRequest struct { func (x *SdkOpenStoragePolicyEnumerateRequest) Reset() { *x = SdkOpenStoragePolicyEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[86] + mi := &file_api_api_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11894,7 +12182,7 @@ func (x *SdkOpenStoragePolicyEnumerateRequest) String() string { func (*SdkOpenStoragePolicyEnumerateRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[86] + mi := &file_api_api_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11907,7 +12195,7 @@ func (x *SdkOpenStoragePolicyEnumerateRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use SdkOpenStoragePolicyEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{86} + return file_api_api_proto_rawDescGZIP(), []int{88} } // Define a storage policy enumerate response @@ -11923,7 +12211,7 @@ type SdkOpenStoragePolicyEnumerateResponse struct { func (x *SdkOpenStoragePolicyEnumerateResponse) Reset() { *x = SdkOpenStoragePolicyEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[87] + mi := &file_api_api_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11936,7 +12224,7 @@ func (x *SdkOpenStoragePolicyEnumerateResponse) String() string { func (*SdkOpenStoragePolicyEnumerateResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[87] + mi := &file_api_api_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11949,7 +12237,7 @@ func (x *SdkOpenStoragePolicyEnumerateResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use SdkOpenStoragePolicyEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{87} + return file_api_api_proto_rawDescGZIP(), []int{89} } func (x *SdkOpenStoragePolicyEnumerateResponse) GetStoragePolicies() []*SdkStoragePolicy { @@ -11972,7 +12260,7 @@ type SdkOpenStoragePolicyInspectRequest struct { func (x *SdkOpenStoragePolicyInspectRequest) Reset() { *x = SdkOpenStoragePolicyInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[88] + mi := &file_api_api_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11985,7 +12273,7 @@ func (x *SdkOpenStoragePolicyInspectRequest) String() string { func (*SdkOpenStoragePolicyInspectRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[88] + mi := &file_api_api_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11998,7 +12286,7 @@ func (x *SdkOpenStoragePolicyInspectRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyInspectRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{88} + return file_api_api_proto_rawDescGZIP(), []int{90} } func (x *SdkOpenStoragePolicyInspectRequest) GetName() string { @@ -12021,7 +12309,7 @@ type SdkOpenStoragePolicyInspectResponse struct { func (x *SdkOpenStoragePolicyInspectResponse) Reset() { *x = SdkOpenStoragePolicyInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[89] + mi := &file_api_api_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12034,7 +12322,7 @@ func (x *SdkOpenStoragePolicyInspectResponse) String() string { func (*SdkOpenStoragePolicyInspectResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[89] + mi := &file_api_api_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12047,7 +12335,7 @@ func (x *SdkOpenStoragePolicyInspectResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use SdkOpenStoragePolicyInspectResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{89} + return file_api_api_proto_rawDescGZIP(), []int{91} } func (x *SdkOpenStoragePolicyInspectResponse) GetStoragePolicy() *SdkStoragePolicy { @@ -12070,7 +12358,7 @@ type SdkOpenStoragePolicyDeleteRequest struct { func (x *SdkOpenStoragePolicyDeleteRequest) Reset() { *x = SdkOpenStoragePolicyDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[90] + mi := &file_api_api_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12083,7 +12371,7 @@ func (x *SdkOpenStoragePolicyDeleteRequest) String() string { func (*SdkOpenStoragePolicyDeleteRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[90] + mi := &file_api_api_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12096,7 +12384,7 @@ func (x *SdkOpenStoragePolicyDeleteRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{90} + return file_api_api_proto_rawDescGZIP(), []int{92} } func (x *SdkOpenStoragePolicyDeleteRequest) GetName() string { @@ -12116,7 +12404,7 @@ type SdkOpenStoragePolicyDeleteResponse struct { func (x *SdkOpenStoragePolicyDeleteResponse) Reset() { *x = SdkOpenStoragePolicyDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[91] + mi := &file_api_api_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12129,7 +12417,7 @@ func (x *SdkOpenStoragePolicyDeleteResponse) String() string { func (*SdkOpenStoragePolicyDeleteResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[91] + mi := &file_api_api_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12142,7 +12430,7 @@ func (x *SdkOpenStoragePolicyDeleteResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{91} + return file_api_api_proto_rawDescGZIP(), []int{93} } // Define a request to update storage policy @@ -12158,7 +12446,7 @@ type SdkOpenStoragePolicyUpdateRequest struct { func (x *SdkOpenStoragePolicyUpdateRequest) Reset() { *x = SdkOpenStoragePolicyUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[92] + mi := &file_api_api_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12171,7 +12459,7 @@ func (x *SdkOpenStoragePolicyUpdateRequest) String() string { func (*SdkOpenStoragePolicyUpdateRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[92] + mi := &file_api_api_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12184,7 +12472,7 @@ func (x *SdkOpenStoragePolicyUpdateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{92} + return file_api_api_proto_rawDescGZIP(), []int{94} } func (x *SdkOpenStoragePolicyUpdateRequest) GetStoragePolicy() *SdkStoragePolicy { @@ -12204,7 +12492,7 @@ type SdkOpenStoragePolicyUpdateResponse struct { func (x *SdkOpenStoragePolicyUpdateResponse) Reset() { *x = SdkOpenStoragePolicyUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[93] + mi := &file_api_api_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12217,7 +12505,7 @@ func (x *SdkOpenStoragePolicyUpdateResponse) String() string { func (*SdkOpenStoragePolicyUpdateResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[93] + mi := &file_api_api_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12230,7 +12518,7 @@ func (x *SdkOpenStoragePolicyUpdateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{93} + return file_api_api_proto_rawDescGZIP(), []int{95} } // Define a request to set default storage policy @@ -12248,7 +12536,7 @@ type SdkOpenStoragePolicySetDefaultRequest struct { func (x *SdkOpenStoragePolicySetDefaultRequest) Reset() { *x = SdkOpenStoragePolicySetDefaultRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[94] + mi := &file_api_api_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12261,7 +12549,7 @@ func (x *SdkOpenStoragePolicySetDefaultRequest) String() string { func (*SdkOpenStoragePolicySetDefaultRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicySetDefaultRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[94] + mi := &file_api_api_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12274,7 +12562,7 @@ func (x *SdkOpenStoragePolicySetDefaultRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use SdkOpenStoragePolicySetDefaultRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicySetDefaultRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{94} + return file_api_api_proto_rawDescGZIP(), []int{96} } func (x *SdkOpenStoragePolicySetDefaultRequest) GetName() string { @@ -12294,7 +12582,7 @@ type SdkOpenStoragePolicySetDefaultResponse struct { func (x *SdkOpenStoragePolicySetDefaultResponse) Reset() { *x = SdkOpenStoragePolicySetDefaultResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[95] + mi := &file_api_api_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12307,7 +12595,7 @@ func (x *SdkOpenStoragePolicySetDefaultResponse) String() string { func (*SdkOpenStoragePolicySetDefaultResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicySetDefaultResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[95] + mi := &file_api_api_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12320,7 +12608,7 @@ func (x *SdkOpenStoragePolicySetDefaultResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use SdkOpenStoragePolicySetDefaultResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicySetDefaultResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{95} + return file_api_api_proto_rawDescGZIP(), []int{97} } // Empty Request @@ -12333,7 +12621,7 @@ type SdkOpenStoragePolicyReleaseRequest struct { func (x *SdkOpenStoragePolicyReleaseRequest) Reset() { *x = SdkOpenStoragePolicyReleaseRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[96] + mi := &file_api_api_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12346,7 +12634,7 @@ func (x *SdkOpenStoragePolicyReleaseRequest) String() string { func (*SdkOpenStoragePolicyReleaseRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyReleaseRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[96] + mi := &file_api_api_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12359,7 +12647,7 @@ func (x *SdkOpenStoragePolicyReleaseRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkOpenStoragePolicyReleaseRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyReleaseRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{96} + return file_api_api_proto_rawDescGZIP(), []int{98} } // Empty Response @@ -12372,7 +12660,7 @@ type SdkOpenStoragePolicyReleaseResponse struct { func (x *SdkOpenStoragePolicyReleaseResponse) Reset() { *x = SdkOpenStoragePolicyReleaseResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[97] + mi := &file_api_api_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12385,7 +12673,7 @@ func (x *SdkOpenStoragePolicyReleaseResponse) String() string { func (*SdkOpenStoragePolicyReleaseResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyReleaseResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[97] + mi := &file_api_api_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12398,7 +12686,7 @@ func (x *SdkOpenStoragePolicyReleaseResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use SdkOpenStoragePolicyReleaseResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyReleaseResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{97} + return file_api_api_proto_rawDescGZIP(), []int{99} } // Empty Request @@ -12411,7 +12699,7 @@ type SdkOpenStoragePolicyDefaultInspectRequest struct { func (x *SdkOpenStoragePolicyDefaultInspectRequest) Reset() { *x = SdkOpenStoragePolicyDefaultInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[98] + mi := &file_api_api_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12424,7 +12712,7 @@ func (x *SdkOpenStoragePolicyDefaultInspectRequest) String() string { func (*SdkOpenStoragePolicyDefaultInspectRequest) ProtoMessage() {} func (x *SdkOpenStoragePolicyDefaultInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[98] + mi := &file_api_api_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12437,7 +12725,7 @@ func (x *SdkOpenStoragePolicyDefaultInspectRequest) ProtoReflect() protoreflect. // Deprecated: Use SdkOpenStoragePolicyDefaultInspectRequest.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyDefaultInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{98} + return file_api_api_proto_rawDescGZIP(), []int{100} } // Define default storage policy response @@ -12453,7 +12741,7 @@ type SdkOpenStoragePolicyDefaultInspectResponse struct { func (x *SdkOpenStoragePolicyDefaultInspectResponse) Reset() { *x = SdkOpenStoragePolicyDefaultInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[99] + mi := &file_api_api_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12466,7 +12754,7 @@ func (x *SdkOpenStoragePolicyDefaultInspectResponse) String() string { func (*SdkOpenStoragePolicyDefaultInspectResponse) ProtoMessage() {} func (x *SdkOpenStoragePolicyDefaultInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[99] + mi := &file_api_api_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12479,7 +12767,7 @@ func (x *SdkOpenStoragePolicyDefaultInspectResponse) ProtoReflect() protoreflect // Deprecated: Use SdkOpenStoragePolicyDefaultInspectResponse.ProtoReflect.Descriptor instead. func (*SdkOpenStoragePolicyDefaultInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{99} + return file_api_api_proto_rawDescGZIP(), []int{101} } func (x *SdkOpenStoragePolicyDefaultInspectResponse) GetStoragePolicy() *SdkStoragePolicy { @@ -12502,7 +12790,7 @@ type SdkSchedulePolicyCreateRequest struct { func (x *SdkSchedulePolicyCreateRequest) Reset() { *x = SdkSchedulePolicyCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[100] + mi := &file_api_api_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12515,7 +12803,7 @@ func (x *SdkSchedulePolicyCreateRequest) String() string { func (*SdkSchedulePolicyCreateRequest) ProtoMessage() {} func (x *SdkSchedulePolicyCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[100] + mi := &file_api_api_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12528,7 +12816,7 @@ func (x *SdkSchedulePolicyCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyCreateRequest.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{100} + return file_api_api_proto_rawDescGZIP(), []int{102} } func (x *SdkSchedulePolicyCreateRequest) GetSchedulePolicy() *SdkSchedulePolicy { @@ -12548,7 +12836,7 @@ type SdkSchedulePolicyCreateResponse struct { func (x *SdkSchedulePolicyCreateResponse) Reset() { *x = SdkSchedulePolicyCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[101] + mi := &file_api_api_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12561,7 +12849,7 @@ func (x *SdkSchedulePolicyCreateResponse) String() string { func (*SdkSchedulePolicyCreateResponse) ProtoMessage() {} func (x *SdkSchedulePolicyCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[101] + mi := &file_api_api_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12574,7 +12862,7 @@ func (x *SdkSchedulePolicyCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyCreateResponse.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{101} + return file_api_api_proto_rawDescGZIP(), []int{103} } // Define a request to update a schedule policy @@ -12590,7 +12878,7 @@ type SdkSchedulePolicyUpdateRequest struct { func (x *SdkSchedulePolicyUpdateRequest) Reset() { *x = SdkSchedulePolicyUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[102] + mi := &file_api_api_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12603,7 +12891,7 @@ func (x *SdkSchedulePolicyUpdateRequest) String() string { func (*SdkSchedulePolicyUpdateRequest) ProtoMessage() {} func (x *SdkSchedulePolicyUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[102] + mi := &file_api_api_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12616,7 +12904,7 @@ func (x *SdkSchedulePolicyUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{102} + return file_api_api_proto_rawDescGZIP(), []int{104} } func (x *SdkSchedulePolicyUpdateRequest) GetSchedulePolicy() *SdkSchedulePolicy { @@ -12636,7 +12924,7 @@ type SdkSchedulePolicyUpdateResponse struct { func (x *SdkSchedulePolicyUpdateResponse) Reset() { *x = SdkSchedulePolicyUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[103] + mi := &file_api_api_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12649,7 +12937,7 @@ func (x *SdkSchedulePolicyUpdateResponse) String() string { func (*SdkSchedulePolicyUpdateResponse) ProtoMessage() {} func (x *SdkSchedulePolicyUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[103] + mi := &file_api_api_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12662,7 +12950,7 @@ func (x *SdkSchedulePolicyUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{103} + return file_api_api_proto_rawDescGZIP(), []int{105} } // Empty request @@ -12675,7 +12963,7 @@ type SdkSchedulePolicyEnumerateRequest struct { func (x *SdkSchedulePolicyEnumerateRequest) Reset() { *x = SdkSchedulePolicyEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[104] + mi := &file_api_api_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12688,7 +12976,7 @@ func (x *SdkSchedulePolicyEnumerateRequest) String() string { func (*SdkSchedulePolicyEnumerateRequest) ProtoMessage() {} func (x *SdkSchedulePolicyEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[104] + mi := &file_api_api_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12701,7 +12989,7 @@ func (x *SdkSchedulePolicyEnumerateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkSchedulePolicyEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{104} + return file_api_api_proto_rawDescGZIP(), []int{106} } // Defines a schedule policy enumerate response @@ -12717,7 +13005,7 @@ type SdkSchedulePolicyEnumerateResponse struct { func (x *SdkSchedulePolicyEnumerateResponse) Reset() { *x = SdkSchedulePolicyEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[105] + mi := &file_api_api_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12730,7 +13018,7 @@ func (x *SdkSchedulePolicyEnumerateResponse) String() string { func (*SdkSchedulePolicyEnumerateResponse) ProtoMessage() {} func (x *SdkSchedulePolicyEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[105] + mi := &file_api_api_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12743,7 +13031,7 @@ func (x *SdkSchedulePolicyEnumerateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkSchedulePolicyEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{105} + return file_api_api_proto_rawDescGZIP(), []int{107} } func (x *SdkSchedulePolicyEnumerateResponse) GetPolicies() []*SdkSchedulePolicy { @@ -12766,7 +13054,7 @@ type SdkSchedulePolicyInspectRequest struct { func (x *SdkSchedulePolicyInspectRequest) Reset() { *x = SdkSchedulePolicyInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[106] + mi := &file_api_api_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12779,7 +13067,7 @@ func (x *SdkSchedulePolicyInspectRequest) String() string { func (*SdkSchedulePolicyInspectRequest) ProtoMessage() {} func (x *SdkSchedulePolicyInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[106] + mi := &file_api_api_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12792,7 +13080,7 @@ func (x *SdkSchedulePolicyInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyInspectRequest.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{106} + return file_api_api_proto_rawDescGZIP(), []int{108} } func (x *SdkSchedulePolicyInspectRequest) GetName() string { @@ -12815,7 +13103,7 @@ type SdkSchedulePolicyInspectResponse struct { func (x *SdkSchedulePolicyInspectResponse) Reset() { *x = SdkSchedulePolicyInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[107] + mi := &file_api_api_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12828,7 +13116,7 @@ func (x *SdkSchedulePolicyInspectResponse) String() string { func (*SdkSchedulePolicyInspectResponse) ProtoMessage() {} func (x *SdkSchedulePolicyInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[107] + mi := &file_api_api_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12841,7 +13129,7 @@ func (x *SdkSchedulePolicyInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyInspectResponse.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{107} + return file_api_api_proto_rawDescGZIP(), []int{109} } func (x *SdkSchedulePolicyInspectResponse) GetPolicy() *SdkSchedulePolicy { @@ -12864,7 +13152,7 @@ type SdkSchedulePolicyDeleteRequest struct { func (x *SdkSchedulePolicyDeleteRequest) Reset() { *x = SdkSchedulePolicyDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[108] + mi := &file_api_api_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12877,7 +13165,7 @@ func (x *SdkSchedulePolicyDeleteRequest) String() string { func (*SdkSchedulePolicyDeleteRequest) ProtoMessage() {} func (x *SdkSchedulePolicyDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[108] + mi := &file_api_api_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12890,7 +13178,7 @@ func (x *SdkSchedulePolicyDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{108} + return file_api_api_proto_rawDescGZIP(), []int{110} } func (x *SdkSchedulePolicyDeleteRequest) GetName() string { @@ -12910,7 +13198,7 @@ type SdkSchedulePolicyDeleteResponse struct { func (x *SdkSchedulePolicyDeleteResponse) Reset() { *x = SdkSchedulePolicyDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[109] + mi := &file_api_api_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12923,7 +13211,7 @@ func (x *SdkSchedulePolicyDeleteResponse) String() string { func (*SdkSchedulePolicyDeleteResponse) ProtoMessage() {} func (x *SdkSchedulePolicyDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[109] + mi := &file_api_api_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12936,7 +13224,7 @@ func (x *SdkSchedulePolicyDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{109} + return file_api_api_proto_rawDescGZIP(), []int{111} } // Defines a daily schedule @@ -12954,7 +13242,7 @@ type SdkSchedulePolicyIntervalDaily struct { func (x *SdkSchedulePolicyIntervalDaily) Reset() { *x = SdkSchedulePolicyIntervalDaily{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[110] + mi := &file_api_api_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12967,7 +13255,7 @@ func (x *SdkSchedulePolicyIntervalDaily) String() string { func (*SdkSchedulePolicyIntervalDaily) ProtoMessage() {} func (x *SdkSchedulePolicyIntervalDaily) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[110] + mi := &file_api_api_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12980,7 +13268,7 @@ func (x *SdkSchedulePolicyIntervalDaily) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyIntervalDaily.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyIntervalDaily) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{110} + return file_api_api_proto_rawDescGZIP(), []int{112} } func (x *SdkSchedulePolicyIntervalDaily) GetHour() int32 { @@ -13013,7 +13301,7 @@ type SdkSchedulePolicyIntervalWeekly struct { func (x *SdkSchedulePolicyIntervalWeekly) Reset() { *x = SdkSchedulePolicyIntervalWeekly{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[111] + mi := &file_api_api_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13026,7 +13314,7 @@ func (x *SdkSchedulePolicyIntervalWeekly) String() string { func (*SdkSchedulePolicyIntervalWeekly) ProtoMessage() {} func (x *SdkSchedulePolicyIntervalWeekly) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[111] + mi := &file_api_api_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13039,7 +13327,7 @@ func (x *SdkSchedulePolicyIntervalWeekly) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyIntervalWeekly.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyIntervalWeekly) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{111} + return file_api_api_proto_rawDescGZIP(), []int{113} } func (x *SdkSchedulePolicyIntervalWeekly) GetDay() SdkTimeWeekday { @@ -13080,7 +13368,7 @@ type SdkSchedulePolicyIntervalMonthly struct { func (x *SdkSchedulePolicyIntervalMonthly) Reset() { *x = SdkSchedulePolicyIntervalMonthly{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[112] + mi := &file_api_api_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13093,7 +13381,7 @@ func (x *SdkSchedulePolicyIntervalMonthly) String() string { func (*SdkSchedulePolicyIntervalMonthly) ProtoMessage() {} func (x *SdkSchedulePolicyIntervalMonthly) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[112] + mi := &file_api_api_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13106,7 +13394,7 @@ func (x *SdkSchedulePolicyIntervalMonthly) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyIntervalMonthly.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyIntervalMonthly) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{112} + return file_api_api_proto_rawDescGZIP(), []int{114} } func (x *SdkSchedulePolicyIntervalMonthly) GetDay() int32 { @@ -13143,7 +13431,7 @@ type SdkSchedulePolicyIntervalPeriodic struct { func (x *SdkSchedulePolicyIntervalPeriodic) Reset() { *x = SdkSchedulePolicyIntervalPeriodic{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[113] + mi := &file_api_api_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13156,7 +13444,7 @@ func (x *SdkSchedulePolicyIntervalPeriodic) String() string { func (*SdkSchedulePolicyIntervalPeriodic) ProtoMessage() {} func (x *SdkSchedulePolicyIntervalPeriodic) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[113] + mi := &file_api_api_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13169,7 +13457,7 @@ func (x *SdkSchedulePolicyIntervalPeriodic) ProtoReflect() protoreflect.Message // Deprecated: Use SdkSchedulePolicyIntervalPeriodic.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyIntervalPeriodic) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{113} + return file_api_api_proto_rawDescGZIP(), []int{115} } func (x *SdkSchedulePolicyIntervalPeriodic) GetSeconds() int64 { @@ -13200,7 +13488,7 @@ type SdkSchedulePolicyInterval struct { func (x *SdkSchedulePolicyInterval) Reset() { *x = SdkSchedulePolicyInterval{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[114] + mi := &file_api_api_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13213,7 +13501,7 @@ func (x *SdkSchedulePolicyInterval) String() string { func (*SdkSchedulePolicyInterval) ProtoMessage() {} func (x *SdkSchedulePolicyInterval) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[114] + mi := &file_api_api_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13226,7 +13514,7 @@ func (x *SdkSchedulePolicyInterval) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicyInterval.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicyInterval) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{114} + return file_api_api_proto_rawDescGZIP(), []int{116} } func (x *SdkSchedulePolicyInterval) GetRetain() int64 { @@ -13318,7 +13606,7 @@ type SdkSchedulePolicy struct { func (x *SdkSchedulePolicy) Reset() { *x = SdkSchedulePolicy{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[115] + mi := &file_api_api_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13331,7 +13619,7 @@ func (x *SdkSchedulePolicy) String() string { func (*SdkSchedulePolicy) ProtoMessage() {} func (x *SdkSchedulePolicy) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[115] + mi := &file_api_api_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13344,7 +13632,7 @@ func (x *SdkSchedulePolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkSchedulePolicy.ProtoReflect.Descriptor instead. func (*SdkSchedulePolicy) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{115} + return file_api_api_proto_rawDescGZIP(), []int{117} } func (x *SdkSchedulePolicy) GetName() string { @@ -13388,13 +13676,14 @@ type SdkCredentialCreateRequest struct { // *SdkCredentialCreateRequest_AwsCredential // *SdkCredentialCreateRequest_AzureCredential // *SdkCredentialCreateRequest_GoogleCredential + // *SdkCredentialCreateRequest_NfsCredential CredentialType isSdkCredentialCreateRequest_CredentialType `protobuf_oneof:"credential_type"` } func (x *SdkCredentialCreateRequest) Reset() { *x = SdkCredentialCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[116] + mi := &file_api_api_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13407,7 +13696,7 @@ func (x *SdkCredentialCreateRequest) String() string { func (*SdkCredentialCreateRequest) ProtoMessage() {} func (x *SdkCredentialCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[116] + mi := &file_api_api_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13420,7 +13709,7 @@ func (x *SdkCredentialCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialCreateRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{116} + return file_api_api_proto_rawDescGZIP(), []int{118} } func (x *SdkCredentialCreateRequest) GetName() string { @@ -13500,6 +13789,13 @@ func (x *SdkCredentialCreateRequest) GetGoogleCredential() *SdkGoogleCredentialR return nil } +func (x *SdkCredentialCreateRequest) GetNfsCredential() *SdkNfsCredentialRequest { + if x, ok := x.GetCredentialType().(*SdkCredentialCreateRequest_NfsCredential); ok { + return x.NfsCredential + } + return nil +} + type isSdkCredentialCreateRequest_CredentialType interface { isSdkCredentialCreateRequest_CredentialType() } @@ -13519,12 +13815,19 @@ type SdkCredentialCreateRequest_GoogleCredential struct { GoogleCredential *SdkGoogleCredentialRequest `protobuf:"bytes,202,opt,name=google_credential,json=googleCredential,proto3,oneof"` } +type SdkCredentialCreateRequest_NfsCredential struct { + // Credentials for NFS + NfsCredential *SdkNfsCredentialRequest `protobuf:"bytes,203,opt,name=nfs_credential,json=nfsCredential,proto3,oneof"` +} + func (*SdkCredentialCreateRequest_AwsCredential) isSdkCredentialCreateRequest_CredentialType() {} func (*SdkCredentialCreateRequest_AzureCredential) isSdkCredentialCreateRequest_CredentialType() {} func (*SdkCredentialCreateRequest_GoogleCredential) isSdkCredentialCreateRequest_CredentialType() {} +func (*SdkCredentialCreateRequest_NfsCredential) isSdkCredentialCreateRequest_CredentialType() {} + // Defines a response from creating a credential type SdkCredentialCreateResponse struct { state protoimpl.MessageState @@ -13538,7 +13841,7 @@ type SdkCredentialCreateResponse struct { func (x *SdkCredentialCreateResponse) Reset() { *x = SdkCredentialCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[117] + mi := &file_api_api_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13551,7 +13854,7 @@ func (x *SdkCredentialCreateResponse) String() string { func (*SdkCredentialCreateResponse) ProtoMessage() {} func (x *SdkCredentialCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[117] + mi := &file_api_api_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13564,7 +13867,7 @@ func (x *SdkCredentialCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialCreateResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{117} + return file_api_api_proto_rawDescGZIP(), []int{119} } func (x *SdkCredentialCreateResponse) GetCredentialId() string { @@ -13587,7 +13890,7 @@ type SdkCredentialUpdateRequest struct { func (x *SdkCredentialUpdateRequest) Reset() { *x = SdkCredentialUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[118] + mi := &file_api_api_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13600,7 +13903,7 @@ func (x *SdkCredentialUpdateRequest) String() string { func (*SdkCredentialUpdateRequest) ProtoMessage() {} func (x *SdkCredentialUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[118] + mi := &file_api_api_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13613,7 +13916,7 @@ func (x *SdkCredentialUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{118} + return file_api_api_proto_rawDescGZIP(), []int{120} } func (x *SdkCredentialUpdateRequest) GetCredentialId() string { @@ -13640,7 +13943,7 @@ type SdkCredentialUpdateResponse struct { func (x *SdkCredentialUpdateResponse) Reset() { *x = SdkCredentialUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[119] + mi := &file_api_api_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13653,7 +13956,7 @@ func (x *SdkCredentialUpdateResponse) String() string { func (*SdkCredentialUpdateResponse) ProtoMessage() {} func (x *SdkCredentialUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[119] + mi := &file_api_api_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13666,7 +13969,7 @@ func (x *SdkCredentialUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{119} + return file_api_api_proto_rawDescGZIP(), []int{121} } // Defines credentials for Aws/S3 endpoints @@ -13692,7 +13995,7 @@ type SdkAwsCredentialRequest struct { func (x *SdkAwsCredentialRequest) Reset() { *x = SdkAwsCredentialRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[120] + mi := &file_api_api_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13705,7 +14008,7 @@ func (x *SdkAwsCredentialRequest) String() string { func (*SdkAwsCredentialRequest) ProtoMessage() {} func (x *SdkAwsCredentialRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[120] + mi := &file_api_api_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13718,7 +14021,7 @@ func (x *SdkAwsCredentialRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAwsCredentialRequest.ProtoReflect.Descriptor instead. func (*SdkAwsCredentialRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{120} + return file_api_api_proto_rawDescGZIP(), []int{122} } func (x *SdkAwsCredentialRequest) GetAccessKey() string { @@ -13778,7 +14081,7 @@ type SdkAzureCredentialRequest struct { func (x *SdkAzureCredentialRequest) Reset() { *x = SdkAzureCredentialRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[121] + mi := &file_api_api_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13791,7 +14094,7 @@ func (x *SdkAzureCredentialRequest) String() string { func (*SdkAzureCredentialRequest) ProtoMessage() {} func (x *SdkAzureCredentialRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[121] + mi := &file_api_api_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13804,7 +14107,7 @@ func (x *SdkAzureCredentialRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAzureCredentialRequest.ProtoReflect.Descriptor instead. func (*SdkAzureCredentialRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{121} + return file_api_api_proto_rawDescGZIP(), []int{123} } func (x *SdkAzureCredentialRequest) GetAccountName() string { @@ -13836,7 +14139,7 @@ type SdkGoogleCredentialRequest struct { func (x *SdkGoogleCredentialRequest) Reset() { *x = SdkGoogleCredentialRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[122] + mi := &file_api_api_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13849,7 +14152,7 @@ func (x *SdkGoogleCredentialRequest) String() string { func (*SdkGoogleCredentialRequest) ProtoMessage() {} func (x *SdkGoogleCredentialRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[122] + mi := &file_api_api_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13862,7 +14165,7 @@ func (x *SdkGoogleCredentialRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkGoogleCredentialRequest.ProtoReflect.Descriptor instead. func (*SdkGoogleCredentialRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{122} + return file_api_api_proto_rawDescGZIP(), []int{124} } func (x *SdkGoogleCredentialRequest) GetProjectId() string { @@ -13879,6 +14182,82 @@ func (x *SdkGoogleCredentialRequest) GetJsonKey() string { return "" } +// Defines credentials for NFS +type SdkNfsCredentialRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // NFS Server address + Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` + // NFS export path + SubPath string `protobuf:"bytes,2,opt,name=sub_path,json=subPath,proto3" json:"sub_path,omitempty"` + // mount options for nfs mount + MountOpts string `protobuf:"bytes,3,opt,name=mount_opts,json=mountOpts,proto3" json:"mount_opts,omitempty"` + // timeout for nfs IO in seconds + TimeoutSeconds uint32 `protobuf:"varint,4,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` +} + +func (x *SdkNfsCredentialRequest) Reset() { + *x = SdkNfsCredentialRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkNfsCredentialRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkNfsCredentialRequest) ProtoMessage() {} + +func (x *SdkNfsCredentialRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[125] + 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 SdkNfsCredentialRequest.ProtoReflect.Descriptor instead. +func (*SdkNfsCredentialRequest) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{125} +} + +func (x *SdkNfsCredentialRequest) GetServer() string { + if x != nil { + return x.Server + } + return "" +} + +func (x *SdkNfsCredentialRequest) GetSubPath() string { + if x != nil { + return x.SubPath + } + return "" +} + +func (x *SdkNfsCredentialRequest) GetMountOpts() string { + if x != nil { + return x.MountOpts + } + return "" +} + +func (x *SdkNfsCredentialRequest) GetTimeoutSeconds() uint32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + // Defines the response for AWS/S3 credentials type SdkAwsCredentialResponse struct { state protoimpl.MessageState @@ -13902,7 +14281,7 @@ type SdkAwsCredentialResponse struct { func (x *SdkAwsCredentialResponse) Reset() { *x = SdkAwsCredentialResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[123] + mi := &file_api_api_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13915,7 +14294,7 @@ func (x *SdkAwsCredentialResponse) String() string { func (*SdkAwsCredentialResponse) ProtoMessage() {} func (x *SdkAwsCredentialResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[123] + mi := &file_api_api_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13928,7 +14307,7 @@ func (x *SdkAwsCredentialResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAwsCredentialResponse.ProtoReflect.Descriptor instead. func (*SdkAwsCredentialResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{123} + return file_api_api_proto_rawDescGZIP(), []int{126} } func (x *SdkAwsCredentialResponse) GetAccessKey() string { @@ -13986,7 +14365,7 @@ type SdkAzureCredentialResponse struct { func (x *SdkAzureCredentialResponse) Reset() { *x = SdkAzureCredentialResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[124] + mi := &file_api_api_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13999,7 +14378,7 @@ func (x *SdkAzureCredentialResponse) String() string { func (*SdkAzureCredentialResponse) ProtoMessage() {} func (x *SdkAzureCredentialResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[124] + mi := &file_api_api_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14012,7 +14391,7 @@ func (x *SdkAzureCredentialResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAzureCredentialResponse.ProtoReflect.Descriptor instead. func (*SdkAzureCredentialResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{124} + return file_api_api_proto_rawDescGZIP(), []int{127} } func (x *SdkAzureCredentialResponse) GetAccountName() string { @@ -14035,7 +14414,7 @@ type SdkGoogleCredentialResponse struct { func (x *SdkGoogleCredentialResponse) Reset() { *x = SdkGoogleCredentialResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[125] + mi := &file_api_api_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14048,7 +14427,7 @@ func (x *SdkGoogleCredentialResponse) String() string { func (*SdkGoogleCredentialResponse) ProtoMessage() {} func (x *SdkGoogleCredentialResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[125] + mi := &file_api_api_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14061,7 +14440,7 @@ func (x *SdkGoogleCredentialResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkGoogleCredentialResponse.ProtoReflect.Descriptor instead. func (*SdkGoogleCredentialResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{125} + return file_api_api_proto_rawDescGZIP(), []int{128} } func (x *SdkGoogleCredentialResponse) GetProjectId() string { @@ -14071,6 +14450,82 @@ func (x *SdkGoogleCredentialResponse) GetProjectId() string { return "" } +// Defines the response for NFS credential +type SdkNfsCredentialResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // NFS Server Address + Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` + // NFS export path + SubPath string `protobuf:"bytes,2,opt,name=sub_path,json=subPath,proto3" json:"sub_path,omitempty"` + // mount options ( "," separated) + MountOpts string `protobuf:"bytes,3,opt,name=mount_opts,json=mountOpts,proto3" json:"mount_opts,omitempty"` + // timeout in seconds + TimeoutSeconds uint32 `protobuf:"varint,4,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` +} + +func (x *SdkNfsCredentialResponse) Reset() { + *x = SdkNfsCredentialResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkNfsCredentialResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkNfsCredentialResponse) ProtoMessage() {} + +func (x *SdkNfsCredentialResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[129] + 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 SdkNfsCredentialResponse.ProtoReflect.Descriptor instead. +func (*SdkNfsCredentialResponse) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{129} +} + +func (x *SdkNfsCredentialResponse) GetServer() string { + if x != nil { + return x.Server + } + return "" +} + +func (x *SdkNfsCredentialResponse) GetSubPath() string { + if x != nil { + return x.SubPath + } + return "" +} + +func (x *SdkNfsCredentialResponse) GetMountOpts() string { + if x != nil { + return x.MountOpts + } + return "" +} + +func (x *SdkNfsCredentialResponse) GetTimeoutSeconds() uint32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + // Empty request type SdkCredentialEnumerateRequest struct { state protoimpl.MessageState @@ -14081,7 +14536,7 @@ type SdkCredentialEnumerateRequest struct { func (x *SdkCredentialEnumerateRequest) Reset() { *x = SdkCredentialEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[126] + mi := &file_api_api_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14094,7 +14549,7 @@ func (x *SdkCredentialEnumerateRequest) String() string { func (*SdkCredentialEnumerateRequest) ProtoMessage() {} func (x *SdkCredentialEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[126] + mi := &file_api_api_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14107,7 +14562,7 @@ func (x *SdkCredentialEnumerateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{126} + return file_api_api_proto_rawDescGZIP(), []int{130} } // Defines response for a enumeration of credentials @@ -14123,7 +14578,7 @@ type SdkCredentialEnumerateResponse struct { func (x *SdkCredentialEnumerateResponse) Reset() { *x = SdkCredentialEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[127] + mi := &file_api_api_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14136,7 +14591,7 @@ func (x *SdkCredentialEnumerateResponse) String() string { func (*SdkCredentialEnumerateResponse) ProtoMessage() {} func (x *SdkCredentialEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[127] + mi := &file_api_api_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14149,7 +14604,7 @@ func (x *SdkCredentialEnumerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{127} + return file_api_api_proto_rawDescGZIP(), []int{131} } func (x *SdkCredentialEnumerateResponse) GetCredentialIds() []string { @@ -14172,7 +14627,7 @@ type SdkCredentialInspectRequest struct { func (x *SdkCredentialInspectRequest) Reset() { *x = SdkCredentialInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[128] + mi := &file_api_api_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14185,7 +14640,7 @@ func (x *SdkCredentialInspectRequest) String() string { func (*SdkCredentialInspectRequest) ProtoMessage() {} func (x *SdkCredentialInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[128] + mi := &file_api_api_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14198,7 +14653,7 @@ func (x *SdkCredentialInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialInspectRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{128} + return file_api_api_proto_rawDescGZIP(), []int{132} } func (x *SdkCredentialInspectRequest) GetCredentialId() string { @@ -14234,13 +14689,14 @@ type SdkCredentialInspectResponse struct { // *SdkCredentialInspectResponse_AwsCredential // *SdkCredentialInspectResponse_AzureCredential // *SdkCredentialInspectResponse_GoogleCredential + // *SdkCredentialInspectResponse_NfsCredential CredentialType isSdkCredentialInspectResponse_CredentialType `protobuf_oneof:"credential_type"` } func (x *SdkCredentialInspectResponse) Reset() { *x = SdkCredentialInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[129] + mi := &file_api_api_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14253,7 +14709,7 @@ func (x *SdkCredentialInspectResponse) String() string { func (*SdkCredentialInspectResponse) ProtoMessage() {} func (x *SdkCredentialInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[129] + mi := &file_api_api_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14266,7 +14722,7 @@ func (x *SdkCredentialInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialInspectResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{129} + return file_api_api_proto_rawDescGZIP(), []int{133} } func (x *SdkCredentialInspectResponse) GetCredentialId() string { @@ -14339,6 +14795,13 @@ func (x *SdkCredentialInspectResponse) GetGoogleCredential() *SdkGoogleCredentia return nil } +func (x *SdkCredentialInspectResponse) GetNfsCredential() *SdkNfsCredentialResponse { + if x, ok := x.GetCredentialType().(*SdkCredentialInspectResponse_NfsCredential); ok { + return x.NfsCredential + } + return nil +} + type isSdkCredentialInspectResponse_CredentialType interface { isSdkCredentialInspectResponse_CredentialType() } @@ -14358,6 +14821,11 @@ type SdkCredentialInspectResponse_GoogleCredential struct { GoogleCredential *SdkGoogleCredentialResponse `protobuf:"bytes,202,opt,name=google_credential,json=googleCredential,proto3,oneof"` } +type SdkCredentialInspectResponse_NfsCredential struct { + // NFS credentials + NfsCredential *SdkNfsCredentialResponse `protobuf:"bytes,203,opt,name=nfs_credential,json=nfsCredential,proto3,oneof"` +} + func (*SdkCredentialInspectResponse_AwsCredential) isSdkCredentialInspectResponse_CredentialType() {} func (*SdkCredentialInspectResponse_AzureCredential) isSdkCredentialInspectResponse_CredentialType() { @@ -14366,6 +14834,8 @@ func (*SdkCredentialInspectResponse_AzureCredential) isSdkCredentialInspectRespo func (*SdkCredentialInspectResponse_GoogleCredential) isSdkCredentialInspectResponse_CredentialType() { } +func (*SdkCredentialInspectResponse_NfsCredential) isSdkCredentialInspectResponse_CredentialType() {} + // Defines the request to delete credentials type SdkCredentialDeleteRequest struct { state protoimpl.MessageState @@ -14379,7 +14849,7 @@ type SdkCredentialDeleteRequest struct { func (x *SdkCredentialDeleteRequest) Reset() { *x = SdkCredentialDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[130] + mi := &file_api_api_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14392,7 +14862,7 @@ func (x *SdkCredentialDeleteRequest) String() string { func (*SdkCredentialDeleteRequest) ProtoMessage() {} func (x *SdkCredentialDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[130] + mi := &file_api_api_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14405,7 +14875,7 @@ func (x *SdkCredentialDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{130} + return file_api_api_proto_rawDescGZIP(), []int{134} } func (x *SdkCredentialDeleteRequest) GetCredentialId() string { @@ -14425,7 +14895,7 @@ type SdkCredentialDeleteResponse struct { func (x *SdkCredentialDeleteResponse) Reset() { *x = SdkCredentialDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[131] + mi := &file_api_api_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14438,7 +14908,7 @@ func (x *SdkCredentialDeleteResponse) String() string { func (*SdkCredentialDeleteResponse) ProtoMessage() {} func (x *SdkCredentialDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[131] + mi := &file_api_api_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14451,7 +14921,7 @@ func (x *SdkCredentialDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{131} + return file_api_api_proto_rawDescGZIP(), []int{135} } // Defines a request to validate credentials @@ -14467,7 +14937,7 @@ type SdkCredentialValidateRequest struct { func (x *SdkCredentialValidateRequest) Reset() { *x = SdkCredentialValidateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[132] + mi := &file_api_api_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14480,7 +14950,7 @@ func (x *SdkCredentialValidateRequest) String() string { func (*SdkCredentialValidateRequest) ProtoMessage() {} func (x *SdkCredentialValidateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[132] + mi := &file_api_api_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14493,7 +14963,7 @@ func (x *SdkCredentialValidateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialValidateRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialValidateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{132} + return file_api_api_proto_rawDescGZIP(), []int{136} } func (x *SdkCredentialValidateRequest) GetCredentialId() string { @@ -14513,7 +14983,7 @@ type SdkCredentialValidateResponse struct { func (x *SdkCredentialValidateResponse) Reset() { *x = SdkCredentialValidateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[133] + mi := &file_api_api_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14526,7 +14996,7 @@ func (x *SdkCredentialValidateResponse) String() string { func (*SdkCredentialValidateResponse) ProtoMessage() {} func (x *SdkCredentialValidateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[133] + mi := &file_api_api_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14539,7 +15009,7 @@ func (x *SdkCredentialValidateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCredentialValidateResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialValidateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{133} + return file_api_api_proto_rawDescGZIP(), []int{137} } // Defines a request to remove any references to credentials @@ -14555,7 +15025,7 @@ type SdkCredentialDeleteReferencesRequest struct { func (x *SdkCredentialDeleteReferencesRequest) Reset() { *x = SdkCredentialDeleteReferencesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[134] + mi := &file_api_api_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14568,7 +15038,7 @@ func (x *SdkCredentialDeleteReferencesRequest) String() string { func (*SdkCredentialDeleteReferencesRequest) ProtoMessage() {} func (x *SdkCredentialDeleteReferencesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[134] + mi := &file_api_api_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14581,7 +15051,7 @@ func (x *SdkCredentialDeleteReferencesRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use SdkCredentialDeleteReferencesRequest.ProtoReflect.Descriptor instead. func (*SdkCredentialDeleteReferencesRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{134} + return file_api_api_proto_rawDescGZIP(), []int{138} } func (x *SdkCredentialDeleteReferencesRequest) GetCredentialId() string { @@ -14601,7 +15071,7 @@ type SdkCredentialDeleteReferencesResponse struct { func (x *SdkCredentialDeleteReferencesResponse) Reset() { *x = SdkCredentialDeleteReferencesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[135] + mi := &file_api_api_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14614,7 +15084,7 @@ func (x *SdkCredentialDeleteReferencesResponse) String() string { func (*SdkCredentialDeleteReferencesResponse) ProtoMessage() {} func (x *SdkCredentialDeleteReferencesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[135] + mi := &file_api_api_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14627,7 +15097,7 @@ func (x *SdkCredentialDeleteReferencesResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use SdkCredentialDeleteReferencesResponse.ProtoReflect.Descriptor instead. func (*SdkCredentialDeleteReferencesResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{135} + return file_api_api_proto_rawDescGZIP(), []int{139} } // Options to attach device @@ -14652,7 +15122,7 @@ type SdkVolumeAttachOptions struct { func (x *SdkVolumeAttachOptions) Reset() { *x = SdkVolumeAttachOptions{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[136] + mi := &file_api_api_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14665,7 +15135,7 @@ func (x *SdkVolumeAttachOptions) String() string { func (*SdkVolumeAttachOptions) ProtoMessage() {} func (x *SdkVolumeAttachOptions) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[136] + mi := &file_api_api_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14678,7 +15148,7 @@ func (x *SdkVolumeAttachOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeAttachOptions.ProtoReflect.Descriptor instead. func (*SdkVolumeAttachOptions) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{136} + return file_api_api_proto_rawDescGZIP(), []int{140} } func (x *SdkVolumeAttachOptions) GetSecretName() string { @@ -14730,7 +15200,7 @@ type SdkVolumeMountRequest struct { func (x *SdkVolumeMountRequest) Reset() { *x = SdkVolumeMountRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[137] + mi := &file_api_api_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14743,7 +15213,7 @@ func (x *SdkVolumeMountRequest) String() string { func (*SdkVolumeMountRequest) ProtoMessage() {} func (x *SdkVolumeMountRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[137] + mi := &file_api_api_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14756,7 +15226,7 @@ func (x *SdkVolumeMountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeMountRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeMountRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{137} + return file_api_api_proto_rawDescGZIP(), []int{141} } func (x *SdkVolumeMountRequest) GetVolumeId() string { @@ -14797,7 +15267,7 @@ type SdkVolumeMountResponse struct { func (x *SdkVolumeMountResponse) Reset() { *x = SdkVolumeMountResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[138] + mi := &file_api_api_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14810,7 +15280,7 @@ func (x *SdkVolumeMountResponse) String() string { func (*SdkVolumeMountResponse) ProtoMessage() {} func (x *SdkVolumeMountResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[138] + mi := &file_api_api_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14823,7 +15293,7 @@ func (x *SdkVolumeMountResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeMountResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeMountResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{138} + return file_api_api_proto_rawDescGZIP(), []int{142} } // Options to unmount device @@ -14845,7 +15315,7 @@ type SdkVolumeUnmountOptions struct { func (x *SdkVolumeUnmountOptions) Reset() { *x = SdkVolumeUnmountOptions{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[139] + mi := &file_api_api_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14858,7 +15328,7 @@ func (x *SdkVolumeUnmountOptions) String() string { func (*SdkVolumeUnmountOptions) ProtoMessage() {} func (x *SdkVolumeUnmountOptions) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[139] + mi := &file_api_api_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14871,7 +15341,7 @@ func (x *SdkVolumeUnmountOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeUnmountOptions.ProtoReflect.Descriptor instead. func (*SdkVolumeUnmountOptions) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{139} + return file_api_api_proto_rawDescGZIP(), []int{143} } func (x *SdkVolumeUnmountOptions) GetDeleteMountPath() bool { @@ -14909,7 +15379,7 @@ type SdkVolumeUnmountRequest struct { func (x *SdkVolumeUnmountRequest) Reset() { *x = SdkVolumeUnmountRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[140] + mi := &file_api_api_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14922,7 +15392,7 @@ func (x *SdkVolumeUnmountRequest) String() string { func (*SdkVolumeUnmountRequest) ProtoMessage() {} func (x *SdkVolumeUnmountRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[140] + mi := &file_api_api_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14935,7 +15405,7 @@ func (x *SdkVolumeUnmountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeUnmountRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeUnmountRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{140} + return file_api_api_proto_rawDescGZIP(), []int{144} } func (x *SdkVolumeUnmountRequest) GetVolumeId() string { @@ -14976,7 +15446,7 @@ type SdkVolumeUnmountResponse struct { func (x *SdkVolumeUnmountResponse) Reset() { *x = SdkVolumeUnmountResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[141] + mi := &file_api_api_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14989,7 +15459,7 @@ func (x *SdkVolumeUnmountResponse) String() string { func (*SdkVolumeUnmountResponse) ProtoMessage() {} func (x *SdkVolumeUnmountResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[141] + mi := &file_api_api_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15002,7 +15472,7 @@ func (x *SdkVolumeUnmountResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeUnmountResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeUnmountResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{141} + return file_api_api_proto_rawDescGZIP(), []int{145} } // Defines a request to attach a volume to the node receiving this request @@ -15024,7 +15494,7 @@ type SdkVolumeAttachRequest struct { func (x *SdkVolumeAttachRequest) Reset() { *x = SdkVolumeAttachRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[142] + mi := &file_api_api_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15037,7 +15507,7 @@ func (x *SdkVolumeAttachRequest) String() string { func (*SdkVolumeAttachRequest) ProtoMessage() {} func (x *SdkVolumeAttachRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[142] + mi := &file_api_api_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15050,7 +15520,7 @@ func (x *SdkVolumeAttachRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeAttachRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeAttachRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{142} + return file_api_api_proto_rawDescGZIP(), []int{146} } func (x *SdkVolumeAttachRequest) GetVolumeId() string { @@ -15087,7 +15557,7 @@ type SdkVolumeAttachResponse struct { func (x *SdkVolumeAttachResponse) Reset() { *x = SdkVolumeAttachResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[143] + mi := &file_api_api_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15100,7 +15570,7 @@ func (x *SdkVolumeAttachResponse) String() string { func (*SdkVolumeAttachResponse) ProtoMessage() {} func (x *SdkVolumeAttachResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[143] + mi := &file_api_api_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15113,7 +15583,7 @@ func (x *SdkVolumeAttachResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeAttachResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeAttachResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{143} + return file_api_api_proto_rawDescGZIP(), []int{147} } func (x *SdkVolumeAttachResponse) GetDevicePath() string { @@ -15139,7 +15609,7 @@ type SdkVolumeDetachOptions struct { func (x *SdkVolumeDetachOptions) Reset() { *x = SdkVolumeDetachOptions{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[144] + mi := &file_api_api_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15152,7 +15622,7 @@ func (x *SdkVolumeDetachOptions) String() string { func (*SdkVolumeDetachOptions) ProtoMessage() {} func (x *SdkVolumeDetachOptions) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[144] + mi := &file_api_api_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15165,7 +15635,7 @@ func (x *SdkVolumeDetachOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeDetachOptions.ProtoReflect.Descriptor instead. func (*SdkVolumeDetachOptions) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{144} + return file_api_api_proto_rawDescGZIP(), []int{148} } func (x *SdkVolumeDetachOptions) GetForce() bool { @@ -15208,7 +15678,7 @@ type SdkVolumeDetachRequest struct { func (x *SdkVolumeDetachRequest) Reset() { *x = SdkVolumeDetachRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[145] + mi := &file_api_api_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15221,7 +15691,7 @@ func (x *SdkVolumeDetachRequest) String() string { func (*SdkVolumeDetachRequest) ProtoMessage() {} func (x *SdkVolumeDetachRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[145] + mi := &file_api_api_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15234,7 +15704,7 @@ func (x *SdkVolumeDetachRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeDetachRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeDetachRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{145} + return file_api_api_proto_rawDescGZIP(), []int{149} } func (x *SdkVolumeDetachRequest) GetVolumeId() string { @@ -15268,7 +15738,7 @@ type SdkVolumeDetachResponse struct { func (x *SdkVolumeDetachResponse) Reset() { *x = SdkVolumeDetachResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[146] + mi := &file_api_api_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15281,7 +15751,7 @@ func (x *SdkVolumeDetachResponse) String() string { func (*SdkVolumeDetachResponse) ProtoMessage() {} func (x *SdkVolumeDetachResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[146] + mi := &file_api_api_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15294,7 +15764,7 @@ func (x *SdkVolumeDetachResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeDetachResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeDetachResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{146} + return file_api_api_proto_rawDescGZIP(), []int{150} } // Defines a request to create a volume. Use OpenStorageVolume.Update() @@ -15315,7 +15785,7 @@ type SdkVolumeCreateRequest struct { func (x *SdkVolumeCreateRequest) Reset() { *x = SdkVolumeCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[147] + mi := &file_api_api_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15328,7 +15798,7 @@ func (x *SdkVolumeCreateRequest) String() string { func (*SdkVolumeCreateRequest) ProtoMessage() {} func (x *SdkVolumeCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[147] + mi := &file_api_api_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15341,7 +15811,7 @@ func (x *SdkVolumeCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCreateRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{147} + return file_api_api_proto_rawDescGZIP(), []int{151} } func (x *SdkVolumeCreateRequest) GetName() string { @@ -15378,7 +15848,7 @@ type SdkVolumeCreateResponse struct { func (x *SdkVolumeCreateResponse) Reset() { *x = SdkVolumeCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[148] + mi := &file_api_api_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15391,7 +15861,7 @@ func (x *SdkVolumeCreateResponse) String() string { func (*SdkVolumeCreateResponse) ProtoMessage() {} func (x *SdkVolumeCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[148] + mi := &file_api_api_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15404,7 +15874,7 @@ func (x *SdkVolumeCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCreateResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{148} + return file_api_api_proto_rawDescGZIP(), []int{152} } func (x *SdkVolumeCreateResponse) GetVolumeId() string { @@ -15424,12 +15894,16 @@ type SdkVolumeCloneRequest struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Parent volume id or snapshot id will create a new volume as a clone of the parent. ParentId string `protobuf:"bytes,2,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + // Additional labels to be appended after cloning the volume. Note that clone will + // issue a snapshot, which copies most labels except pvc and namespace. This map + // allows you to pass additional labels that are not part of the parent volume. + AdditionalLabels map[string]string `protobuf:"bytes,3,rep,name=additional_labels,json=additionalLabels,proto3" json:"additional_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SdkVolumeCloneRequest) Reset() { *x = SdkVolumeCloneRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[149] + mi := &file_api_api_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15442,7 +15916,7 @@ func (x *SdkVolumeCloneRequest) String() string { func (*SdkVolumeCloneRequest) ProtoMessage() {} func (x *SdkVolumeCloneRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[149] + mi := &file_api_api_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15455,7 +15929,7 @@ func (x *SdkVolumeCloneRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCloneRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeCloneRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{149} + return file_api_api_proto_rawDescGZIP(), []int{153} } func (x *SdkVolumeCloneRequest) GetName() string { @@ -15472,6 +15946,13 @@ func (x *SdkVolumeCloneRequest) GetParentId() string { return "" } +func (x *SdkVolumeCloneRequest) GetAdditionalLabels() map[string]string { + if x != nil { + return x.AdditionalLabels + } + return nil +} + // Defines the response when creating a clone from a volume or a snapshot type SdkVolumeCloneResponse struct { state protoimpl.MessageState @@ -15485,7 +15966,7 @@ type SdkVolumeCloneResponse struct { func (x *SdkVolumeCloneResponse) Reset() { *x = SdkVolumeCloneResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[150] + mi := &file_api_api_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15498,7 +15979,7 @@ func (x *SdkVolumeCloneResponse) String() string { func (*SdkVolumeCloneResponse) ProtoMessage() {} func (x *SdkVolumeCloneResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[150] + mi := &file_api_api_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15511,7 +15992,7 @@ func (x *SdkVolumeCloneResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCloneResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeCloneResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{150} + return file_api_api_proto_rawDescGZIP(), []int{154} } func (x *SdkVolumeCloneResponse) GetVolumeId() string { @@ -15534,7 +16015,7 @@ type SdkVolumeDeleteRequest struct { func (x *SdkVolumeDeleteRequest) Reset() { *x = SdkVolumeDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[151] + mi := &file_api_api_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15547,7 +16028,7 @@ func (x *SdkVolumeDeleteRequest) String() string { func (*SdkVolumeDeleteRequest) ProtoMessage() {} func (x *SdkVolumeDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[151] + mi := &file_api_api_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15560,7 +16041,7 @@ func (x *SdkVolumeDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{151} + return file_api_api_proto_rawDescGZIP(), []int{155} } func (x *SdkVolumeDeleteRequest) GetVolumeId() string { @@ -15580,7 +16061,7 @@ type SdkVolumeDeleteResponse struct { func (x *SdkVolumeDeleteResponse) Reset() { *x = SdkVolumeDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[152] + mi := &file_api_api_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15593,7 +16074,7 @@ func (x *SdkVolumeDeleteResponse) String() string { func (*SdkVolumeDeleteResponse) ProtoMessage() {} func (x *SdkVolumeDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[152] + mi := &file_api_api_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15606,7 +16087,7 @@ func (x *SdkVolumeDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{152} + return file_api_api_proto_rawDescGZIP(), []int{156} } // Defines the request to inspect a volume @@ -15624,7 +16105,7 @@ type SdkVolumeInspectRequest struct { func (x *SdkVolumeInspectRequest) Reset() { *x = SdkVolumeInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[153] + mi := &file_api_api_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15637,7 +16118,7 @@ func (x *SdkVolumeInspectRequest) String() string { func (*SdkVolumeInspectRequest) ProtoMessage() {} func (x *SdkVolumeInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[153] + mi := &file_api_api_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15650,7 +16131,7 @@ func (x *SdkVolumeInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeInspectRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{153} + return file_api_api_proto_rawDescGZIP(), []int{157} } func (x *SdkVolumeInspectRequest) GetVolumeId() string { @@ -15684,7 +16165,7 @@ type SdkVolumeInspectResponse struct { func (x *SdkVolumeInspectResponse) Reset() { *x = SdkVolumeInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[154] + mi := &file_api_api_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15697,7 +16178,7 @@ func (x *SdkVolumeInspectResponse) String() string { func (*SdkVolumeInspectResponse) ProtoMessage() {} func (x *SdkVolumeInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[154] + mi := &file_api_api_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15710,7 +16191,7 @@ func (x *SdkVolumeInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeInspectResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{154} + return file_api_api_proto_rawDescGZIP(), []int{158} } func (x *SdkVolumeInspectResponse) GetVolume() *Volume { @@ -15755,7 +16236,7 @@ type SdkVolumeInspectWithFiltersRequest struct { func (x *SdkVolumeInspectWithFiltersRequest) Reset() { *x = SdkVolumeInspectWithFiltersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[155] + mi := &file_api_api_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15768,7 +16249,7 @@ func (x *SdkVolumeInspectWithFiltersRequest) String() string { func (*SdkVolumeInspectWithFiltersRequest) ProtoMessage() {} func (x *SdkVolumeInspectWithFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[155] + mi := &file_api_api_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15781,7 +16262,7 @@ func (x *SdkVolumeInspectWithFiltersRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkVolumeInspectWithFiltersRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeInspectWithFiltersRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{155} + return file_api_api_proto_rawDescGZIP(), []int{159} } func (x *SdkVolumeInspectWithFiltersRequest) GetName() string { @@ -15832,7 +16313,7 @@ type SdkVolumeInspectWithFiltersResponse struct { func (x *SdkVolumeInspectWithFiltersResponse) Reset() { *x = SdkVolumeInspectWithFiltersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[156] + mi := &file_api_api_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15845,7 +16326,7 @@ func (x *SdkVolumeInspectWithFiltersResponse) String() string { func (*SdkVolumeInspectWithFiltersResponse) ProtoMessage() {} func (x *SdkVolumeInspectWithFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[156] + mi := &file_api_api_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15858,7 +16339,7 @@ func (x *SdkVolumeInspectWithFiltersResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use SdkVolumeInspectWithFiltersResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeInspectWithFiltersResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{156} + return file_api_api_proto_rawDescGZIP(), []int{160} } func (x *SdkVolumeInspectWithFiltersResponse) GetVolumes() []*SdkVolumeInspectResponse { @@ -15897,7 +16378,7 @@ type SdkVolumeUpdateRequest struct { func (x *SdkVolumeUpdateRequest) Reset() { *x = SdkVolumeUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[157] + mi := &file_api_api_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15910,7 +16391,7 @@ func (x *SdkVolumeUpdateRequest) String() string { func (*SdkVolumeUpdateRequest) ProtoMessage() {} func (x *SdkVolumeUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[157] + mi := &file_api_api_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15923,7 +16404,7 @@ func (x *SdkVolumeUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{157} + return file_api_api_proto_rawDescGZIP(), []int{161} } func (x *SdkVolumeUpdateRequest) GetVolumeId() string { @@ -15957,7 +16438,7 @@ type SdkVolumeUpdateResponse struct { func (x *SdkVolumeUpdateResponse) Reset() { *x = SdkVolumeUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[158] + mi := &file_api_api_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15970,7 +16451,7 @@ func (x *SdkVolumeUpdateResponse) String() string { func (*SdkVolumeUpdateResponse) ProtoMessage() {} func (x *SdkVolumeUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[158] + mi := &file_api_api_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15983,7 +16464,7 @@ func (x *SdkVolumeUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{158} + return file_api_api_proto_rawDescGZIP(), []int{162} } // Defines a request to retrieve volume statistics @@ -16002,7 +16483,7 @@ type SdkVolumeStatsRequest struct { func (x *SdkVolumeStatsRequest) Reset() { *x = SdkVolumeStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[159] + mi := &file_api_api_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16015,7 +16496,7 @@ func (x *SdkVolumeStatsRequest) String() string { func (*SdkVolumeStatsRequest) ProtoMessage() {} func (x *SdkVolumeStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[159] + mi := &file_api_api_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16028,7 +16509,7 @@ func (x *SdkVolumeStatsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeStatsRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeStatsRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{159} + return file_api_api_proto_rawDescGZIP(), []int{163} } func (x *SdkVolumeStatsRequest) GetVolumeId() string { @@ -16058,7 +16539,7 @@ type SdkVolumeStatsResponse struct { func (x *SdkVolumeStatsResponse) Reset() { *x = SdkVolumeStatsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[160] + mi := &file_api_api_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16071,7 +16552,7 @@ func (x *SdkVolumeStatsResponse) String() string { func (*SdkVolumeStatsResponse) ProtoMessage() {} func (x *SdkVolumeStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[160] + mi := &file_api_api_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16084,7 +16565,7 @@ func (x *SdkVolumeStatsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeStatsResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeStatsResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{160} + return file_api_api_proto_rawDescGZIP(), []int{164} } func (x *SdkVolumeStatsResponse) GetStats() *Stats { @@ -16107,7 +16588,7 @@ type SdkVolumeCapacityUsageRequest struct { func (x *SdkVolumeCapacityUsageRequest) Reset() { *x = SdkVolumeCapacityUsageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[161] + mi := &file_api_api_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16120,7 +16601,7 @@ func (x *SdkVolumeCapacityUsageRequest) String() string { func (*SdkVolumeCapacityUsageRequest) ProtoMessage() {} func (x *SdkVolumeCapacityUsageRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[161] + mi := &file_api_api_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16133,7 +16614,7 @@ func (x *SdkVolumeCapacityUsageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCapacityUsageRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeCapacityUsageRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{161} + return file_api_api_proto_rawDescGZIP(), []int{165} } func (x *SdkVolumeCapacityUsageRequest) GetVolumeId() string { @@ -16156,7 +16637,7 @@ type SdkVolumeCapacityUsageResponse struct { func (x *SdkVolumeCapacityUsageResponse) Reset() { *x = SdkVolumeCapacityUsageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[162] + mi := &file_api_api_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16169,7 +16650,7 @@ func (x *SdkVolumeCapacityUsageResponse) String() string { func (*SdkVolumeCapacityUsageResponse) ProtoMessage() {} func (x *SdkVolumeCapacityUsageResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[162] + mi := &file_api_api_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16182,7 +16663,7 @@ func (x *SdkVolumeCapacityUsageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCapacityUsageResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeCapacityUsageResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{162} + return file_api_api_proto_rawDescGZIP(), []int{166} } func (x *SdkVolumeCapacityUsageResponse) GetCapacityUsageInfo() *CapacityUsageInfo { @@ -16202,7 +16683,7 @@ type SdkVolumeEnumerateRequest struct { func (x *SdkVolumeEnumerateRequest) Reset() { *x = SdkVolumeEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[163] + mi := &file_api_api_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16215,7 +16696,7 @@ func (x *SdkVolumeEnumerateRequest) String() string { func (*SdkVolumeEnumerateRequest) ProtoMessage() {} func (x *SdkVolumeEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[163] + mi := &file_api_api_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16228,7 +16709,7 @@ func (x *SdkVolumeEnumerateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{163} + return file_api_api_proto_rawDescGZIP(), []int{167} } // Defines the response when listing volumes @@ -16244,7 +16725,7 @@ type SdkVolumeEnumerateResponse struct { func (x *SdkVolumeEnumerateResponse) Reset() { *x = SdkVolumeEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[164] + mi := &file_api_api_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16257,7 +16738,7 @@ func (x *SdkVolumeEnumerateResponse) String() string { func (*SdkVolumeEnumerateResponse) ProtoMessage() {} func (x *SdkVolumeEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[164] + mi := &file_api_api_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16270,7 +16751,7 @@ func (x *SdkVolumeEnumerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{164} + return file_api_api_proto_rawDescGZIP(), []int{168} } func (x *SdkVolumeEnumerateResponse) GetVolumeIds() []string { @@ -16299,7 +16780,7 @@ type SdkVolumeEnumerateWithFiltersRequest struct { func (x *SdkVolumeEnumerateWithFiltersRequest) Reset() { *x = SdkVolumeEnumerateWithFiltersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[165] + mi := &file_api_api_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16312,7 +16793,7 @@ func (x *SdkVolumeEnumerateWithFiltersRequest) String() string { func (*SdkVolumeEnumerateWithFiltersRequest) ProtoMessage() {} func (x *SdkVolumeEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[165] + mi := &file_api_api_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16325,7 +16806,7 @@ func (x *SdkVolumeEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use SdkVolumeEnumerateWithFiltersRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeEnumerateWithFiltersRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{165} + return file_api_api_proto_rawDescGZIP(), []int{169} } func (x *SdkVolumeEnumerateWithFiltersRequest) GetName() string { @@ -16369,7 +16850,7 @@ type SdkVolumeEnumerateWithFiltersResponse struct { func (x *SdkVolumeEnumerateWithFiltersResponse) Reset() { *x = SdkVolumeEnumerateWithFiltersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[166] + mi := &file_api_api_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16382,7 +16863,7 @@ func (x *SdkVolumeEnumerateWithFiltersResponse) String() string { func (*SdkVolumeEnumerateWithFiltersResponse) ProtoMessage() {} func (x *SdkVolumeEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[166] + mi := &file_api_api_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16395,7 +16876,7 @@ func (x *SdkVolumeEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use SdkVolumeEnumerateWithFiltersResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeEnumerateWithFiltersResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{166} + return file_api_api_proto_rawDescGZIP(), []int{170} } func (x *SdkVolumeEnumerateWithFiltersResponse) GetVolumeIds() []string { @@ -16422,7 +16903,7 @@ type SdkVolumeSnapshotCreateRequest struct { func (x *SdkVolumeSnapshotCreateRequest) Reset() { *x = SdkVolumeSnapshotCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[167] + mi := &file_api_api_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16435,7 +16916,7 @@ func (x *SdkVolumeSnapshotCreateRequest) String() string { func (*SdkVolumeSnapshotCreateRequest) ProtoMessage() {} func (x *SdkVolumeSnapshotCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[167] + mi := &file_api_api_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16448,7 +16929,7 @@ func (x *SdkVolumeSnapshotCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeSnapshotCreateRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{167} + return file_api_api_proto_rawDescGZIP(), []int{171} } func (x *SdkVolumeSnapshotCreateRequest) GetVolumeId() string { @@ -16485,7 +16966,7 @@ type SdkVolumeSnapshotCreateResponse struct { func (x *SdkVolumeSnapshotCreateResponse) Reset() { *x = SdkVolumeSnapshotCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[168] + mi := &file_api_api_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16498,7 +16979,7 @@ func (x *SdkVolumeSnapshotCreateResponse) String() string { func (*SdkVolumeSnapshotCreateResponse) ProtoMessage() {} func (x *SdkVolumeSnapshotCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[168] + mi := &file_api_api_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16511,7 +16992,7 @@ func (x *SdkVolumeSnapshotCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeSnapshotCreateResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{168} + return file_api_api_proto_rawDescGZIP(), []int{172} } func (x *SdkVolumeSnapshotCreateResponse) GetSnapshotId() string { @@ -16536,7 +17017,7 @@ type SdkVolumeSnapshotRestoreRequest struct { func (x *SdkVolumeSnapshotRestoreRequest) Reset() { *x = SdkVolumeSnapshotRestoreRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[169] + mi := &file_api_api_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16549,7 +17030,7 @@ func (x *SdkVolumeSnapshotRestoreRequest) String() string { func (*SdkVolumeSnapshotRestoreRequest) ProtoMessage() {} func (x *SdkVolumeSnapshotRestoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[169] + mi := &file_api_api_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16562,7 +17043,7 @@ func (x *SdkVolumeSnapshotRestoreRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeSnapshotRestoreRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotRestoreRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{169} + return file_api_api_proto_rawDescGZIP(), []int{173} } func (x *SdkVolumeSnapshotRestoreRequest) GetVolumeId() string { @@ -16589,7 +17070,7 @@ type SdkVolumeSnapshotRestoreResponse struct { func (x *SdkVolumeSnapshotRestoreResponse) Reset() { *x = SdkVolumeSnapshotRestoreResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[170] + mi := &file_api_api_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16602,7 +17083,7 @@ func (x *SdkVolumeSnapshotRestoreResponse) String() string { func (*SdkVolumeSnapshotRestoreResponse) ProtoMessage() {} func (x *SdkVolumeSnapshotRestoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[170] + mi := &file_api_api_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16615,7 +17096,7 @@ func (x *SdkVolumeSnapshotRestoreResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeSnapshotRestoreResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotRestoreResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{170} + return file_api_api_proto_rawDescGZIP(), []int{174} } // Defines a request to list the snaphots @@ -16631,7 +17112,7 @@ type SdkVolumeSnapshotEnumerateRequest struct { func (x *SdkVolumeSnapshotEnumerateRequest) Reset() { *x = SdkVolumeSnapshotEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[171] + mi := &file_api_api_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16644,7 +17125,7 @@ func (x *SdkVolumeSnapshotEnumerateRequest) String() string { func (*SdkVolumeSnapshotEnumerateRequest) ProtoMessage() {} func (x *SdkVolumeSnapshotEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[171] + mi := &file_api_api_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16657,7 +17138,7 @@ func (x *SdkVolumeSnapshotEnumerateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkVolumeSnapshotEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{171} + return file_api_api_proto_rawDescGZIP(), []int{175} } func (x *SdkVolumeSnapshotEnumerateRequest) GetVolumeId() string { @@ -16680,7 +17161,7 @@ type SdkVolumeSnapshotEnumerateResponse struct { func (x *SdkVolumeSnapshotEnumerateResponse) Reset() { *x = SdkVolumeSnapshotEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[172] + mi := &file_api_api_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16693,7 +17174,7 @@ func (x *SdkVolumeSnapshotEnumerateResponse) String() string { func (*SdkVolumeSnapshotEnumerateResponse) ProtoMessage() {} func (x *SdkVolumeSnapshotEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[172] + mi := &file_api_api_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16706,7 +17187,7 @@ func (x *SdkVolumeSnapshotEnumerateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkVolumeSnapshotEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{172} + return file_api_api_proto_rawDescGZIP(), []int{176} } func (x *SdkVolumeSnapshotEnumerateResponse) GetVolumeSnapshotIds() []string { @@ -16731,7 +17212,7 @@ type SdkVolumeSnapshotEnumerateWithFiltersRequest struct { func (x *SdkVolumeSnapshotEnumerateWithFiltersRequest) Reset() { *x = SdkVolumeSnapshotEnumerateWithFiltersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[173] + mi := &file_api_api_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16744,7 +17225,7 @@ func (x *SdkVolumeSnapshotEnumerateWithFiltersRequest) String() string { func (*SdkVolumeSnapshotEnumerateWithFiltersRequest) ProtoMessage() {} func (x *SdkVolumeSnapshotEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[173] + mi := &file_api_api_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16757,7 +17238,7 @@ func (x *SdkVolumeSnapshotEnumerateWithFiltersRequest) ProtoReflect() protorefle // Deprecated: Use SdkVolumeSnapshotEnumerateWithFiltersRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotEnumerateWithFiltersRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{173} + return file_api_api_proto_rawDescGZIP(), []int{177} } func (x *SdkVolumeSnapshotEnumerateWithFiltersRequest) GetVolumeId() string { @@ -16787,7 +17268,7 @@ type SdkVolumeSnapshotEnumerateWithFiltersResponse struct { func (x *SdkVolumeSnapshotEnumerateWithFiltersResponse) Reset() { *x = SdkVolumeSnapshotEnumerateWithFiltersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[174] + mi := &file_api_api_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16800,7 +17281,7 @@ func (x *SdkVolumeSnapshotEnumerateWithFiltersResponse) String() string { func (*SdkVolumeSnapshotEnumerateWithFiltersResponse) ProtoMessage() {} func (x *SdkVolumeSnapshotEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[174] + mi := &file_api_api_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16813,7 +17294,7 @@ func (x *SdkVolumeSnapshotEnumerateWithFiltersResponse) ProtoReflect() protorefl // Deprecated: Use SdkVolumeSnapshotEnumerateWithFiltersResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotEnumerateWithFiltersResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{174} + return file_api_api_proto_rawDescGZIP(), []int{178} } func (x *SdkVolumeSnapshotEnumerateWithFiltersResponse) GetVolumeSnapshotIds() []string { @@ -16838,7 +17319,7 @@ type SdkVolumeSnapshotScheduleUpdateRequest struct { func (x *SdkVolumeSnapshotScheduleUpdateRequest) Reset() { *x = SdkVolumeSnapshotScheduleUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[175] + mi := &file_api_api_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16851,7 +17332,7 @@ func (x *SdkVolumeSnapshotScheduleUpdateRequest) String() string { func (*SdkVolumeSnapshotScheduleUpdateRequest) ProtoMessage() {} func (x *SdkVolumeSnapshotScheduleUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[175] + mi := &file_api_api_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16864,7 +17345,7 @@ func (x *SdkVolumeSnapshotScheduleUpdateRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use SdkVolumeSnapshotScheduleUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotScheduleUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{175} + return file_api_api_proto_rawDescGZIP(), []int{179} } func (x *SdkVolumeSnapshotScheduleUpdateRequest) GetVolumeId() string { @@ -16891,7 +17372,7 @@ type SdkVolumeSnapshotScheduleUpdateResponse struct { func (x *SdkVolumeSnapshotScheduleUpdateResponse) Reset() { *x = SdkVolumeSnapshotScheduleUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[176] + mi := &file_api_api_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16904,7 +17385,7 @@ func (x *SdkVolumeSnapshotScheduleUpdateResponse) String() string { func (*SdkVolumeSnapshotScheduleUpdateResponse) ProtoMessage() {} func (x *SdkVolumeSnapshotScheduleUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[176] + mi := &file_api_api_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16917,7 +17398,7 @@ func (x *SdkVolumeSnapshotScheduleUpdateResponse) ProtoReflect() protoreflect.Me // Deprecated: Use SdkVolumeSnapshotScheduleUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeSnapshotScheduleUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{176} + return file_api_api_proto_rawDescGZIP(), []int{180} } // Defines request to retrieve all volumes/snapshots capacity usage details @@ -16934,7 +17415,7 @@ type SdkNodeVolumeUsageByNodeRequest struct { func (x *SdkNodeVolumeUsageByNodeRequest) Reset() { *x = SdkNodeVolumeUsageByNodeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[177] + mi := &file_api_api_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16947,7 +17428,7 @@ func (x *SdkNodeVolumeUsageByNodeRequest) String() string { func (*SdkNodeVolumeUsageByNodeRequest) ProtoMessage() {} func (x *SdkNodeVolumeUsageByNodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[177] + mi := &file_api_api_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16960,7 +17441,7 @@ func (x *SdkNodeVolumeUsageByNodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeVolumeUsageByNodeRequest.ProtoReflect.Descriptor instead. func (*SdkNodeVolumeUsageByNodeRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{177} + return file_api_api_proto_rawDescGZIP(), []int{181} } func (x *SdkNodeVolumeUsageByNodeRequest) GetNodeId() string { @@ -16983,7 +17464,7 @@ type SdkNodeVolumeUsageByNodeResponse struct { func (x *SdkNodeVolumeUsageByNodeResponse) Reset() { *x = SdkNodeVolumeUsageByNodeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[178] + mi := &file_api_api_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16996,7 +17477,7 @@ func (x *SdkNodeVolumeUsageByNodeResponse) String() string { func (*SdkNodeVolumeUsageByNodeResponse) ProtoMessage() {} func (x *SdkNodeVolumeUsageByNodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[178] + mi := &file_api_api_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17009,7 +17490,7 @@ func (x *SdkNodeVolumeUsageByNodeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeVolumeUsageByNodeResponse.ProtoReflect.Descriptor instead. func (*SdkNodeVolumeUsageByNodeResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{178} + return file_api_api_proto_rawDescGZIP(), []int{182} } func (x *SdkNodeVolumeUsageByNodeResponse) GetVolumeUsageInfo() *VolumeUsageByNode { @@ -17033,7 +17514,7 @@ type SdkNodeRelaxedReclaimPurgeRequest struct { func (x *SdkNodeRelaxedReclaimPurgeRequest) Reset() { *x = SdkNodeRelaxedReclaimPurgeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[179] + mi := &file_api_api_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17046,7 +17527,7 @@ func (x *SdkNodeRelaxedReclaimPurgeRequest) String() string { func (*SdkNodeRelaxedReclaimPurgeRequest) ProtoMessage() {} func (x *SdkNodeRelaxedReclaimPurgeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[179] + mi := &file_api_api_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17059,7 +17540,7 @@ func (x *SdkNodeRelaxedReclaimPurgeRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkNodeRelaxedReclaimPurgeRequest.ProtoReflect.Descriptor instead. func (*SdkNodeRelaxedReclaimPurgeRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{179} + return file_api_api_proto_rawDescGZIP(), []int{183} } func (x *SdkNodeRelaxedReclaimPurgeRequest) GetNodeId() string { @@ -17082,7 +17563,7 @@ type SdkNodeRelaxedReclaimPurgeResponse struct { func (x *SdkNodeRelaxedReclaimPurgeResponse) Reset() { *x = SdkNodeRelaxedReclaimPurgeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[180] + mi := &file_api_api_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17095,7 +17576,7 @@ func (x *SdkNodeRelaxedReclaimPurgeResponse) String() string { func (*SdkNodeRelaxedReclaimPurgeResponse) ProtoMessage() {} func (x *SdkNodeRelaxedReclaimPurgeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[180] + mi := &file_api_api_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17108,7 +17589,7 @@ func (x *SdkNodeRelaxedReclaimPurgeResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkNodeRelaxedReclaimPurgeResponse.ProtoReflect.Descriptor instead. func (*SdkNodeRelaxedReclaimPurgeResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{180} + return file_api_api_proto_rawDescGZIP(), []int{184} } func (x *SdkNodeRelaxedReclaimPurgeResponse) GetStatus() *RelaxedReclaimPurge { @@ -17128,7 +17609,7 @@ type SdkClusterDomainsEnumerateRequest struct { func (x *SdkClusterDomainsEnumerateRequest) Reset() { *x = SdkClusterDomainsEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[181] + mi := &file_api_api_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17141,7 +17622,7 @@ func (x *SdkClusterDomainsEnumerateRequest) String() string { func (*SdkClusterDomainsEnumerateRequest) ProtoMessage() {} func (x *SdkClusterDomainsEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[181] + mi := &file_api_api_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17154,7 +17635,7 @@ func (x *SdkClusterDomainsEnumerateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkClusterDomainsEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkClusterDomainsEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{181} + return file_api_api_proto_rawDescGZIP(), []int{185} } // Defines a response when enumerating cluster domains @@ -17170,7 +17651,7 @@ type SdkClusterDomainsEnumerateResponse struct { func (x *SdkClusterDomainsEnumerateResponse) Reset() { *x = SdkClusterDomainsEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[182] + mi := &file_api_api_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17183,7 +17664,7 @@ func (x *SdkClusterDomainsEnumerateResponse) String() string { func (*SdkClusterDomainsEnumerateResponse) ProtoMessage() {} func (x *SdkClusterDomainsEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[182] + mi := &file_api_api_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17196,7 +17677,7 @@ func (x *SdkClusterDomainsEnumerateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkClusterDomainsEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkClusterDomainsEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{182} + return file_api_api_proto_rawDescGZIP(), []int{186} } func (x *SdkClusterDomainsEnumerateResponse) GetClusterDomainNames() []string { @@ -17219,7 +17700,7 @@ type SdkClusterDomainInspectRequest struct { func (x *SdkClusterDomainInspectRequest) Reset() { *x = SdkClusterDomainInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[183] + mi := &file_api_api_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17232,7 +17713,7 @@ func (x *SdkClusterDomainInspectRequest) String() string { func (*SdkClusterDomainInspectRequest) ProtoMessage() {} func (x *SdkClusterDomainInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[183] + mi := &file_api_api_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17245,7 +17726,7 @@ func (x *SdkClusterDomainInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterDomainInspectRequest.ProtoReflect.Descriptor instead. func (*SdkClusterDomainInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{183} + return file_api_api_proto_rawDescGZIP(), []int{187} } func (x *SdkClusterDomainInspectRequest) GetClusterDomainName() string { @@ -17270,7 +17751,7 @@ type SdkClusterDomainInspectResponse struct { func (x *SdkClusterDomainInspectResponse) Reset() { *x = SdkClusterDomainInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[184] + mi := &file_api_api_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17283,7 +17764,7 @@ func (x *SdkClusterDomainInspectResponse) String() string { func (*SdkClusterDomainInspectResponse) ProtoMessage() {} func (x *SdkClusterDomainInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[184] + mi := &file_api_api_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17296,7 +17777,7 @@ func (x *SdkClusterDomainInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterDomainInspectResponse.ProtoReflect.Descriptor instead. func (*SdkClusterDomainInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{184} + return file_api_api_proto_rawDescGZIP(), []int{188} } func (x *SdkClusterDomainInspectResponse) GetClusterDomainName() string { @@ -17326,7 +17807,7 @@ type SdkClusterDomainActivateRequest struct { func (x *SdkClusterDomainActivateRequest) Reset() { *x = SdkClusterDomainActivateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[185] + mi := &file_api_api_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17339,7 +17820,7 @@ func (x *SdkClusterDomainActivateRequest) String() string { func (*SdkClusterDomainActivateRequest) ProtoMessage() {} func (x *SdkClusterDomainActivateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[185] + mi := &file_api_api_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17352,7 +17833,7 @@ func (x *SdkClusterDomainActivateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterDomainActivateRequest.ProtoReflect.Descriptor instead. func (*SdkClusterDomainActivateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{185} + return file_api_api_proto_rawDescGZIP(), []int{189} } func (x *SdkClusterDomainActivateRequest) GetClusterDomainName() string { @@ -17372,7 +17853,7 @@ type SdkClusterDomainActivateResponse struct { func (x *SdkClusterDomainActivateResponse) Reset() { *x = SdkClusterDomainActivateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[186] + mi := &file_api_api_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17385,7 +17866,7 @@ func (x *SdkClusterDomainActivateResponse) String() string { func (*SdkClusterDomainActivateResponse) ProtoMessage() {} func (x *SdkClusterDomainActivateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[186] + mi := &file_api_api_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17398,7 +17879,7 @@ func (x *SdkClusterDomainActivateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterDomainActivateResponse.ProtoReflect.Descriptor instead. func (*SdkClusterDomainActivateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{186} + return file_api_api_proto_rawDescGZIP(), []int{190} } // Defines a request to deactivate a cluster domain @@ -17414,7 +17895,7 @@ type SdkClusterDomainDeactivateRequest struct { func (x *SdkClusterDomainDeactivateRequest) Reset() { *x = SdkClusterDomainDeactivateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[187] + mi := &file_api_api_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17427,7 +17908,7 @@ func (x *SdkClusterDomainDeactivateRequest) String() string { func (*SdkClusterDomainDeactivateRequest) ProtoMessage() {} func (x *SdkClusterDomainDeactivateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[187] + mi := &file_api_api_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17440,7 +17921,7 @@ func (x *SdkClusterDomainDeactivateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkClusterDomainDeactivateRequest.ProtoReflect.Descriptor instead. func (*SdkClusterDomainDeactivateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{187} + return file_api_api_proto_rawDescGZIP(), []int{191} } func (x *SdkClusterDomainDeactivateRequest) GetClusterDomainName() string { @@ -17460,7 +17941,7 @@ type SdkClusterDomainDeactivateResponse struct { func (x *SdkClusterDomainDeactivateResponse) Reset() { *x = SdkClusterDomainDeactivateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[188] + mi := &file_api_api_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17473,7 +17954,7 @@ func (x *SdkClusterDomainDeactivateResponse) String() string { func (*SdkClusterDomainDeactivateResponse) ProtoMessage() {} func (x *SdkClusterDomainDeactivateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[188] + mi := &file_api_api_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17486,7 +17967,7 @@ func (x *SdkClusterDomainDeactivateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkClusterDomainDeactivateResponse.ProtoReflect.Descriptor instead. func (*SdkClusterDomainDeactivateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{188} + return file_api_api_proto_rawDescGZIP(), []int{192} } // Empty request @@ -17499,7 +17980,7 @@ type SdkClusterInspectCurrentRequest struct { func (x *SdkClusterInspectCurrentRequest) Reset() { *x = SdkClusterInspectCurrentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[189] + mi := &file_api_api_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17512,7 +17993,7 @@ func (x *SdkClusterInspectCurrentRequest) String() string { func (*SdkClusterInspectCurrentRequest) ProtoMessage() {} func (x *SdkClusterInspectCurrentRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[189] + mi := &file_api_api_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17525,7 +18006,7 @@ func (x *SdkClusterInspectCurrentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterInspectCurrentRequest.ProtoReflect.Descriptor instead. func (*SdkClusterInspectCurrentRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{189} + return file_api_api_proto_rawDescGZIP(), []int{193} } // Defines a response when inspecting the current cluster @@ -17541,7 +18022,7 @@ type SdkClusterInspectCurrentResponse struct { func (x *SdkClusterInspectCurrentResponse) Reset() { *x = SdkClusterInspectCurrentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[190] + mi := &file_api_api_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17554,7 +18035,7 @@ func (x *SdkClusterInspectCurrentResponse) String() string { func (*SdkClusterInspectCurrentResponse) ProtoMessage() {} func (x *SdkClusterInspectCurrentResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[190] + mi := &file_api_api_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17567,7 +18048,7 @@ func (x *SdkClusterInspectCurrentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterInspectCurrentResponse.ProtoReflect.Descriptor instead. func (*SdkClusterInspectCurrentResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{190} + return file_api_api_proto_rawDescGZIP(), []int{194} } func (x *SdkClusterInspectCurrentResponse) GetCluster() *StorageCluster { @@ -17590,7 +18071,7 @@ type SdkNodeInspectRequest struct { func (x *SdkNodeInspectRequest) Reset() { *x = SdkNodeInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[191] + mi := &file_api_api_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17603,7 +18084,7 @@ func (x *SdkNodeInspectRequest) String() string { func (*SdkNodeInspectRequest) ProtoMessage() {} func (x *SdkNodeInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[191] + mi := &file_api_api_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17616,7 +18097,7 @@ func (x *SdkNodeInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeInspectRequest.ProtoReflect.Descriptor instead. func (*SdkNodeInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{191} + return file_api_api_proto_rawDescGZIP(), []int{195} } func (x *SdkNodeInspectRequest) GetNodeId() string { @@ -17655,7 +18136,7 @@ type Job struct { func (x *Job) Reset() { *x = Job{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[192] + mi := &file_api_api_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17668,7 +18149,7 @@ func (x *Job) String() string { func (*Job) ProtoMessage() {} func (x *Job) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[192] + mi := &file_api_api_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17681,7 +18162,7 @@ func (x *Job) ProtoReflect() protoreflect.Message { // Deprecated: Use Job.ProtoReflect.Descriptor instead. func (*Job) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{192} + return file_api_api_proto_rawDescGZIP(), []int{196} } func (x *Job) GetId() string { @@ -17788,7 +18269,7 @@ type SdkJobResponse struct { func (x *SdkJobResponse) Reset() { *x = SdkJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[193] + mi := &file_api_api_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17801,7 +18282,7 @@ func (x *SdkJobResponse) String() string { func (*SdkJobResponse) ProtoMessage() {} func (x *SdkJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[193] + mi := &file_api_api_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17814,7 +18295,7 @@ func (x *SdkJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkJobResponse.ProtoReflect.Descriptor instead. func (*SdkJobResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{193} + return file_api_api_proto_rawDescGZIP(), []int{197} } func (x *SdkJobResponse) GetJob() *Job { @@ -17834,7 +18315,7 @@ type NodeDrainAttachmentOptions struct { func (x *NodeDrainAttachmentOptions) Reset() { *x = NodeDrainAttachmentOptions{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[194] + mi := &file_api_api_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17847,7 +18328,7 @@ func (x *NodeDrainAttachmentOptions) String() string { func (*NodeDrainAttachmentOptions) ProtoMessage() {} func (x *NodeDrainAttachmentOptions) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[194] + mi := &file_api_api_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17860,7 +18341,7 @@ func (x *NodeDrainAttachmentOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeDrainAttachmentOptions.ProtoReflect.Descriptor instead. func (*NodeDrainAttachmentOptions) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{194} + return file_api_api_proto_rawDescGZIP(), []int{198} } // Defines a node drain volume attachments request @@ -17888,7 +18369,7 @@ type SdkNodeDrainAttachmentsRequest struct { func (x *SdkNodeDrainAttachmentsRequest) Reset() { *x = SdkNodeDrainAttachmentsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[195] + mi := &file_api_api_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17901,7 +18382,7 @@ func (x *SdkNodeDrainAttachmentsRequest) String() string { func (*SdkNodeDrainAttachmentsRequest) ProtoMessage() {} func (x *SdkNodeDrainAttachmentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[195] + mi := &file_api_api_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17914,7 +18395,7 @@ func (x *SdkNodeDrainAttachmentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeDrainAttachmentsRequest.ProtoReflect.Descriptor instead. func (*SdkNodeDrainAttachmentsRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{195} + return file_api_api_proto_rawDescGZIP(), []int{199} } func (x *SdkNodeDrainAttachmentsRequest) GetNodeId() string { @@ -17971,7 +18452,7 @@ type NodeDrainAttachmentsJob struct { func (x *NodeDrainAttachmentsJob) Reset() { *x = NodeDrainAttachmentsJob{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[196] + mi := &file_api_api_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17984,7 +18465,7 @@ func (x *NodeDrainAttachmentsJob) String() string { func (*NodeDrainAttachmentsJob) ProtoMessage() {} func (x *NodeDrainAttachmentsJob) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[196] + mi := &file_api_api_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17997,7 +18478,7 @@ func (x *NodeDrainAttachmentsJob) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeDrainAttachmentsJob.ProtoReflect.Descriptor instead. func (*NodeDrainAttachmentsJob) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{196} + return file_api_api_proto_rawDescGZIP(), []int{200} } func (x *NodeDrainAttachmentsJob) GetNodeId() string { @@ -18058,7 +18539,7 @@ type CloudDriveTransferJob struct { func (x *CloudDriveTransferJob) Reset() { *x = CloudDriveTransferJob{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[197] + mi := &file_api_api_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18071,7 +18552,7 @@ func (x *CloudDriveTransferJob) String() string { func (*CloudDriveTransferJob) ProtoMessage() {} func (x *CloudDriveTransferJob) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[197] + mi := &file_api_api_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18084,7 +18565,7 @@ func (x *CloudDriveTransferJob) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudDriveTransferJob.ProtoReflect.Descriptor instead. func (*CloudDriveTransferJob) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{197} + return file_api_api_proto_rawDescGZIP(), []int{201} } func (x *CloudDriveTransferJob) GetSourceDrivesetId() string { @@ -18122,7 +18603,7 @@ type CollectDiagsJob struct { func (x *CollectDiagsJob) Reset() { *x = CollectDiagsJob{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[198] + mi := &file_api_api_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18135,7 +18616,7 @@ func (x *CollectDiagsJob) String() string { func (*CollectDiagsJob) ProtoMessage() {} func (x *CollectDiagsJob) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[198] + mi := &file_api_api_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18148,7 +18629,7 @@ func (x *CollectDiagsJob) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectDiagsJob.ProtoReflect.Descriptor instead. func (*CollectDiagsJob) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{198} + return file_api_api_proto_rawDescGZIP(), []int{202} } func (x *CollectDiagsJob) GetRequest() *SdkDiagsCollectRequest { @@ -18181,7 +18662,7 @@ type DiagsCollectionStatus struct { func (x *DiagsCollectionStatus) Reset() { *x = DiagsCollectionStatus{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[199] + mi := &file_api_api_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18194,7 +18675,7 @@ func (x *DiagsCollectionStatus) String() string { func (*DiagsCollectionStatus) ProtoMessage() {} func (x *DiagsCollectionStatus) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[199] + mi := &file_api_api_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18207,7 +18688,7 @@ func (x *DiagsCollectionStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use DiagsCollectionStatus.ProtoReflect.Descriptor instead. func (*DiagsCollectionStatus) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{199} + return file_api_api_proto_rawDescGZIP(), []int{203} } func (x *DiagsCollectionStatus) GetNode() string { @@ -18260,7 +18741,7 @@ type SdkDiagsCollectRequest struct { func (x *SdkDiagsCollectRequest) Reset() { *x = SdkDiagsCollectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[200] + mi := &file_api_api_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18273,7 +18754,7 @@ func (x *SdkDiagsCollectRequest) String() string { func (*SdkDiagsCollectRequest) ProtoMessage() {} func (x *SdkDiagsCollectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[200] + mi := &file_api_api_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18286,7 +18767,7 @@ func (x *SdkDiagsCollectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkDiagsCollectRequest.ProtoReflect.Descriptor instead. func (*SdkDiagsCollectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{200} + return file_api_api_proto_rawDescGZIP(), []int{204} } func (x *SdkDiagsCollectRequest) GetNode() *DiagsNodeSelector { @@ -18351,7 +18832,7 @@ type SdkDiagsCollectResponse struct { func (x *SdkDiagsCollectResponse) Reset() { *x = SdkDiagsCollectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[201] + mi := &file_api_api_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18364,7 +18845,7 @@ func (x *SdkDiagsCollectResponse) String() string { func (*SdkDiagsCollectResponse) ProtoMessage() {} func (x *SdkDiagsCollectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[201] + mi := &file_api_api_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18377,7 +18858,7 @@ func (x *SdkDiagsCollectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkDiagsCollectResponse.ProtoReflect.Descriptor instead. func (*SdkDiagsCollectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{201} + return file_api_api_proto_rawDescGZIP(), []int{205} } func (x *SdkDiagsCollectResponse) GetJob() *Job { @@ -18407,7 +18888,7 @@ type DiagsNodeSelector struct { func (x *DiagsNodeSelector) Reset() { *x = DiagsNodeSelector{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[202] + mi := &file_api_api_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18420,7 +18901,7 @@ func (x *DiagsNodeSelector) String() string { func (*DiagsNodeSelector) ProtoMessage() {} func (x *DiagsNodeSelector) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[202] + mi := &file_api_api_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18433,7 +18914,7 @@ func (x *DiagsNodeSelector) ProtoReflect() protoreflect.Message { // Deprecated: Use DiagsNodeSelector.ProtoReflect.Descriptor instead. func (*DiagsNodeSelector) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{202} + return file_api_api_proto_rawDescGZIP(), []int{206} } func (x *DiagsNodeSelector) GetNodeLabelSelector() []*LabelSelectorRequirement { @@ -18476,7 +18957,7 @@ type DiagsVolumeSelector struct { func (x *DiagsVolumeSelector) Reset() { *x = DiagsVolumeSelector{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[203] + mi := &file_api_api_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18489,7 +18970,7 @@ func (x *DiagsVolumeSelector) String() string { func (*DiagsVolumeSelector) ProtoMessage() {} func (x *DiagsVolumeSelector) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[203] + mi := &file_api_api_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18502,7 +18983,7 @@ func (x *DiagsVolumeSelector) ProtoReflect() protoreflect.Message { // Deprecated: Use DiagsVolumeSelector.ProtoReflect.Descriptor instead. func (*DiagsVolumeSelector) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{203} + return file_api_api_proto_rawDescGZIP(), []int{207} } func (x *DiagsVolumeSelector) GetVolumeLabelSelector() []*LabelSelectorRequirement { @@ -18532,7 +19013,7 @@ type SdkEnumerateJobsRequest struct { func (x *SdkEnumerateJobsRequest) Reset() { *x = SdkEnumerateJobsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[204] + mi := &file_api_api_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18545,7 +19026,7 @@ func (x *SdkEnumerateJobsRequest) String() string { func (*SdkEnumerateJobsRequest) ProtoMessage() {} func (x *SdkEnumerateJobsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[204] + mi := &file_api_api_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18558,7 +19039,7 @@ func (x *SdkEnumerateJobsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkEnumerateJobsRequest.ProtoReflect.Descriptor instead. func (*SdkEnumerateJobsRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{204} + return file_api_api_proto_rawDescGZIP(), []int{208} } func (x *SdkEnumerateJobsRequest) GetType() Job_Type { @@ -18581,7 +19062,7 @@ type SdkEnumerateJobsResponse struct { func (x *SdkEnumerateJobsResponse) Reset() { *x = SdkEnumerateJobsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[205] + mi := &file_api_api_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18594,7 +19075,7 @@ func (x *SdkEnumerateJobsResponse) String() string { func (*SdkEnumerateJobsResponse) ProtoMessage() {} func (x *SdkEnumerateJobsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[205] + mi := &file_api_api_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18607,7 +19088,7 @@ func (x *SdkEnumerateJobsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkEnumerateJobsResponse.ProtoReflect.Descriptor instead. func (*SdkEnumerateJobsResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{205} + return file_api_api_proto_rawDescGZIP(), []int{209} } func (x *SdkEnumerateJobsResponse) GetJobs() []*Job { @@ -18634,7 +19115,7 @@ type SdkUpdateJobRequest struct { func (x *SdkUpdateJobRequest) Reset() { *x = SdkUpdateJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[206] + mi := &file_api_api_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18647,7 +19128,7 @@ func (x *SdkUpdateJobRequest) String() string { func (*SdkUpdateJobRequest) ProtoMessage() {} func (x *SdkUpdateJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[206] + mi := &file_api_api_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18660,7 +19141,7 @@ func (x *SdkUpdateJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkUpdateJobRequest.ProtoReflect.Descriptor instead. func (*SdkUpdateJobRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{206} + return file_api_api_proto_rawDescGZIP(), []int{210} } func (x *SdkUpdateJobRequest) GetId() string { @@ -18694,7 +19175,7 @@ type SdkUpdateJobResponse struct { func (x *SdkUpdateJobResponse) Reset() { *x = SdkUpdateJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[207] + mi := &file_api_api_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18707,7 +19188,7 @@ func (x *SdkUpdateJobResponse) String() string { func (*SdkUpdateJobResponse) ProtoMessage() {} func (x *SdkUpdateJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[207] + mi := &file_api_api_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18720,7 +19201,7 @@ func (x *SdkUpdateJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkUpdateJobResponse.ProtoReflect.Descriptor instead. func (*SdkUpdateJobResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{207} + return file_api_api_proto_rawDescGZIP(), []int{211} } // Defines a request to get the status of an existing job @@ -18738,7 +19219,7 @@ type SdkGetJobStatusRequest struct { func (x *SdkGetJobStatusRequest) Reset() { *x = SdkGetJobStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[208] + mi := &file_api_api_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18751,7 +19232,7 @@ func (x *SdkGetJobStatusRequest) String() string { func (*SdkGetJobStatusRequest) ProtoMessage() {} func (x *SdkGetJobStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[208] + mi := &file_api_api_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18764,7 +19245,7 @@ func (x *SdkGetJobStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkGetJobStatusRequest.ProtoReflect.Descriptor instead. func (*SdkGetJobStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{208} + return file_api_api_proto_rawDescGZIP(), []int{212} } func (x *SdkGetJobStatusRequest) GetId() string { @@ -18794,7 +19275,7 @@ type JobAudit struct { func (x *JobAudit) Reset() { *x = JobAudit{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[209] + mi := &file_api_api_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18807,7 +19288,7 @@ func (x *JobAudit) String() string { func (*JobAudit) ProtoMessage() {} func (x *JobAudit) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[209] + mi := &file_api_api_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18820,7 +19301,7 @@ func (x *JobAudit) ProtoReflect() protoreflect.Message { // Deprecated: Use JobAudit.ProtoReflect.Descriptor instead. func (*JobAudit) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{209} + return file_api_api_proto_rawDescGZIP(), []int{213} } func (x *JobAudit) GetSummary() []*JobWorkSummary { @@ -18846,7 +19327,7 @@ type JobWorkSummary struct { func (x *JobWorkSummary) Reset() { *x = JobWorkSummary{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[210] + mi := &file_api_api_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18859,7 +19340,7 @@ func (x *JobWorkSummary) String() string { func (*JobWorkSummary) ProtoMessage() {} func (x *JobWorkSummary) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[210] + mi := &file_api_api_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18872,7 +19353,7 @@ func (x *JobWorkSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use JobWorkSummary.ProtoReflect.Descriptor instead. func (*JobWorkSummary) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{210} + return file_api_api_proto_rawDescGZIP(), []int{214} } func (m *JobWorkSummary) GetSummary() isJobWorkSummary_Summary { @@ -18917,7 +19398,7 @@ type JobSummary struct { func (x *JobSummary) Reset() { *x = JobSummary{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[211] + mi := &file_api_api_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18930,7 +19411,7 @@ func (x *JobSummary) String() string { func (*JobSummary) ProtoMessage() {} func (x *JobSummary) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[211] + mi := &file_api_api_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18943,7 +19424,7 @@ func (x *JobSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use JobSummary.ProtoReflect.Descriptor instead. func (*JobSummary) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{211} + return file_api_api_proto_rawDescGZIP(), []int{215} } func (x *JobSummary) GetId() string { @@ -18982,7 +19463,7 @@ type SdkGetJobStatusResponse struct { func (x *SdkGetJobStatusResponse) Reset() { *x = SdkGetJobStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[212] + mi := &file_api_api_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18995,7 +19476,7 @@ func (x *SdkGetJobStatusResponse) String() string { func (*SdkGetJobStatusResponse) ProtoMessage() {} func (x *SdkGetJobStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[212] + mi := &file_api_api_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19008,7 +19489,7 @@ func (x *SdkGetJobStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkGetJobStatusResponse.ProtoReflect.Descriptor instead. func (*SdkGetJobStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{212} + return file_api_api_proto_rawDescGZIP(), []int{216} } func (x *SdkGetJobStatusResponse) GetJob() *Job { @@ -19043,7 +19524,7 @@ type DrainAttachmentsSummary struct { func (x *DrainAttachmentsSummary) Reset() { *x = DrainAttachmentsSummary{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[213] + mi := &file_api_api_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19056,7 +19537,7 @@ func (x *DrainAttachmentsSummary) String() string { func (*DrainAttachmentsSummary) ProtoMessage() {} func (x *DrainAttachmentsSummary) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[213] + mi := &file_api_api_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19069,7 +19550,7 @@ func (x *DrainAttachmentsSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use DrainAttachmentsSummary.ProtoReflect.Descriptor instead. func (*DrainAttachmentsSummary) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{213} + return file_api_api_proto_rawDescGZIP(), []int{217} } func (x *DrainAttachmentsSummary) GetNumVolumesTotal() uint64 { @@ -19107,7 +19588,7 @@ type SdkNodeCordonAttachmentsRequest struct { func (x *SdkNodeCordonAttachmentsRequest) Reset() { *x = SdkNodeCordonAttachmentsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[214] + mi := &file_api_api_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19120,7 +19601,7 @@ func (x *SdkNodeCordonAttachmentsRequest) String() string { func (*SdkNodeCordonAttachmentsRequest) ProtoMessage() {} func (x *SdkNodeCordonAttachmentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[214] + mi := &file_api_api_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19133,7 +19614,7 @@ func (x *SdkNodeCordonAttachmentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeCordonAttachmentsRequest.ProtoReflect.Descriptor instead. func (*SdkNodeCordonAttachmentsRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{214} + return file_api_api_proto_rawDescGZIP(), []int{218} } func (x *SdkNodeCordonAttachmentsRequest) GetNodeId() string { @@ -19154,7 +19635,7 @@ type SdkNodeCordonAttachmentsResponse struct { func (x *SdkNodeCordonAttachmentsResponse) Reset() { *x = SdkNodeCordonAttachmentsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[215] + mi := &file_api_api_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19167,7 +19648,7 @@ func (x *SdkNodeCordonAttachmentsResponse) String() string { func (*SdkNodeCordonAttachmentsResponse) ProtoMessage() {} func (x *SdkNodeCordonAttachmentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[215] + mi := &file_api_api_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19180,7 +19661,7 @@ func (x *SdkNodeCordonAttachmentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeCordonAttachmentsResponse.ProtoReflect.Descriptor instead. func (*SdkNodeCordonAttachmentsResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{215} + return file_api_api_proto_rawDescGZIP(), []int{219} } // SdkNodeUncordonAttachmentsRequest request for re-enabling volume @@ -19197,7 +19678,7 @@ type SdkNodeUncordonAttachmentsRequest struct { func (x *SdkNodeUncordonAttachmentsRequest) Reset() { *x = SdkNodeUncordonAttachmentsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[216] + mi := &file_api_api_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19210,7 +19691,7 @@ func (x *SdkNodeUncordonAttachmentsRequest) String() string { func (*SdkNodeUncordonAttachmentsRequest) ProtoMessage() {} func (x *SdkNodeUncordonAttachmentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[216] + mi := &file_api_api_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19223,7 +19704,7 @@ func (x *SdkNodeUncordonAttachmentsRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkNodeUncordonAttachmentsRequest.ProtoReflect.Descriptor instead. func (*SdkNodeUncordonAttachmentsRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{216} + return file_api_api_proto_rawDescGZIP(), []int{220} } func (x *SdkNodeUncordonAttachmentsRequest) GetNodeId() string { @@ -19244,7 +19725,7 @@ type SdkNodeUncordonAttachmentsResponse struct { func (x *SdkNodeUncordonAttachmentsResponse) Reset() { *x = SdkNodeUncordonAttachmentsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[217] + mi := &file_api_api_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19257,7 +19738,7 @@ func (x *SdkNodeUncordonAttachmentsResponse) String() string { func (*SdkNodeUncordonAttachmentsResponse) ProtoMessage() {} func (x *SdkNodeUncordonAttachmentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[217] + mi := &file_api_api_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19270,7 +19751,7 @@ func (x *SdkNodeUncordonAttachmentsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkNodeUncordonAttachmentsResponse.ProtoReflect.Descriptor instead. func (*SdkNodeUncordonAttachmentsResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{217} + return file_api_api_proto_rawDescGZIP(), []int{221} } // Defines a request when inspect a storage pool @@ -19297,7 +19778,7 @@ type SdkStoragePoolResizeRequest struct { func (x *SdkStoragePoolResizeRequest) Reset() { *x = SdkStoragePoolResizeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[218] + mi := &file_api_api_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19310,7 +19791,7 @@ func (x *SdkStoragePoolResizeRequest) String() string { func (*SdkStoragePoolResizeRequest) ProtoMessage() {} func (x *SdkStoragePoolResizeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[218] + mi := &file_api_api_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19323,7 +19804,7 @@ func (x *SdkStoragePoolResizeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkStoragePoolResizeRequest.ProtoReflect.Descriptor instead. func (*SdkStoragePoolResizeRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{218} + return file_api_api_proto_rawDescGZIP(), []int{222} } func (x *SdkStoragePoolResizeRequest) GetUuid() string { @@ -19408,7 +19889,7 @@ type StorageRebalanceTriggerThreshold struct { func (x *StorageRebalanceTriggerThreshold) Reset() { *x = StorageRebalanceTriggerThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[219] + mi := &file_api_api_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19421,7 +19902,7 @@ func (x *StorageRebalanceTriggerThreshold) String() string { func (*StorageRebalanceTriggerThreshold) ProtoMessage() {} func (x *StorageRebalanceTriggerThreshold) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[219] + mi := &file_api_api_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19434,7 +19915,7 @@ func (x *StorageRebalanceTriggerThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageRebalanceTriggerThreshold.ProtoReflect.Descriptor instead. func (*StorageRebalanceTriggerThreshold) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{219} + return file_api_api_proto_rawDescGZIP(), []int{223} } func (x *StorageRebalanceTriggerThreshold) GetType() StorageRebalanceTriggerThreshold_Type { @@ -19494,7 +19975,7 @@ type SdkStorageRebalanceRequest struct { func (x *SdkStorageRebalanceRequest) Reset() { *x = SdkStorageRebalanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[220] + mi := &file_api_api_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19507,7 +19988,7 @@ func (x *SdkStorageRebalanceRequest) String() string { func (*SdkStorageRebalanceRequest) ProtoMessage() {} func (x *SdkStorageRebalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[220] + mi := &file_api_api_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19520,7 +20001,7 @@ func (x *SdkStorageRebalanceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkStorageRebalanceRequest.ProtoReflect.Descriptor instead. func (*SdkStorageRebalanceRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{220} + return file_api_api_proto_rawDescGZIP(), []int{224} } func (x *SdkStorageRebalanceRequest) GetTriggerThresholds() []*StorageRebalanceTriggerThreshold { @@ -19582,7 +20063,7 @@ type SdkStorageRebalanceResponse struct { func (x *SdkStorageRebalanceResponse) Reset() { *x = SdkStorageRebalanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[221] + mi := &file_api_api_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19595,7 +20076,7 @@ func (x *SdkStorageRebalanceResponse) String() string { func (*SdkStorageRebalanceResponse) ProtoMessage() {} func (x *SdkStorageRebalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[221] + mi := &file_api_api_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19608,7 +20089,7 @@ func (x *SdkStorageRebalanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkStorageRebalanceResponse.ProtoReflect.Descriptor instead. func (*SdkStorageRebalanceResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{221} + return file_api_api_proto_rawDescGZIP(), []int{225} } func (x *SdkStorageRebalanceResponse) GetJob() *StorageRebalanceJob { @@ -19655,7 +20136,7 @@ type StorageRebalanceJob struct { func (x *StorageRebalanceJob) Reset() { *x = StorageRebalanceJob{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[222] + mi := &file_api_api_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19668,7 +20149,7 @@ func (x *StorageRebalanceJob) String() string { func (*StorageRebalanceJob) ProtoMessage() {} func (x *StorageRebalanceJob) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[222] + mi := &file_api_api_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19681,7 +20162,7 @@ func (x *StorageRebalanceJob) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageRebalanceJob.ProtoReflect.Descriptor instead. func (*StorageRebalanceJob) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{222} + return file_api_api_proto_rawDescGZIP(), []int{226} } func (x *StorageRebalanceJob) GetId() string { @@ -19741,7 +20222,7 @@ type StorageRebalanceSummary struct { func (x *StorageRebalanceSummary) Reset() { *x = StorageRebalanceSummary{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[223] + mi := &file_api_api_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19754,7 +20235,7 @@ func (x *StorageRebalanceSummary) String() string { func (*StorageRebalanceSummary) ProtoMessage() {} func (x *StorageRebalanceSummary) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[223] + mi := &file_api_api_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19767,7 +20248,7 @@ func (x *StorageRebalanceSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageRebalanceSummary.ProtoReflect.Descriptor instead. func (*StorageRebalanceSummary) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{223} + return file_api_api_proto_rawDescGZIP(), []int{227} } func (x *StorageRebalanceSummary) GetTotalRunTimeSeconds() uint64 { @@ -19800,7 +20281,7 @@ type StorageRebalanceWorkSummary struct { func (x *StorageRebalanceWorkSummary) Reset() { *x = StorageRebalanceWorkSummary{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[224] + mi := &file_api_api_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19813,7 +20294,7 @@ func (x *StorageRebalanceWorkSummary) String() string { func (*StorageRebalanceWorkSummary) ProtoMessage() {} func (x *StorageRebalanceWorkSummary) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[224] + mi := &file_api_api_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19826,7 +20307,7 @@ func (x *StorageRebalanceWorkSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageRebalanceWorkSummary.ProtoReflect.Descriptor instead. func (*StorageRebalanceWorkSummary) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{224} + return file_api_api_proto_rawDescGZIP(), []int{228} } func (x *StorageRebalanceWorkSummary) GetType() StorageRebalanceWorkSummary_Type { @@ -19881,7 +20362,7 @@ type StorageRebalanceAudit struct { func (x *StorageRebalanceAudit) Reset() { *x = StorageRebalanceAudit{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[225] + mi := &file_api_api_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19894,7 +20375,7 @@ func (x *StorageRebalanceAudit) String() string { func (*StorageRebalanceAudit) ProtoMessage() {} func (x *StorageRebalanceAudit) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[225] + mi := &file_api_api_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19907,7 +20388,7 @@ func (x *StorageRebalanceAudit) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageRebalanceAudit.ProtoReflect.Descriptor instead. func (*StorageRebalanceAudit) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{225} + return file_api_api_proto_rawDescGZIP(), []int{229} } func (x *StorageRebalanceAudit) GetVolumeId() string { @@ -19994,7 +20475,7 @@ type SdkUpdateRebalanceJobRequest struct { func (x *SdkUpdateRebalanceJobRequest) Reset() { *x = SdkUpdateRebalanceJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[226] + mi := &file_api_api_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20007,7 +20488,7 @@ func (x *SdkUpdateRebalanceJobRequest) String() string { func (*SdkUpdateRebalanceJobRequest) ProtoMessage() {} func (x *SdkUpdateRebalanceJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[226] + mi := &file_api_api_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20020,7 +20501,7 @@ func (x *SdkUpdateRebalanceJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkUpdateRebalanceJobRequest.ProtoReflect.Descriptor instead. func (*SdkUpdateRebalanceJobRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{226} + return file_api_api_proto_rawDescGZIP(), []int{230} } func (x *SdkUpdateRebalanceJobRequest) GetId() string { @@ -20046,7 +20527,7 @@ type SdkUpdateRebalanceJobResponse struct { func (x *SdkUpdateRebalanceJobResponse) Reset() { *x = SdkUpdateRebalanceJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[227] + mi := &file_api_api_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20059,7 +20540,7 @@ func (x *SdkUpdateRebalanceJobResponse) String() string { func (*SdkUpdateRebalanceJobResponse) ProtoMessage() {} func (x *SdkUpdateRebalanceJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[227] + mi := &file_api_api_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20072,7 +20553,7 @@ func (x *SdkUpdateRebalanceJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkUpdateRebalanceJobResponse.ProtoReflect.Descriptor instead. func (*SdkUpdateRebalanceJobResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{227} + return file_api_api_proto_rawDescGZIP(), []int{231} } type SdkGetRebalanceJobStatusRequest struct { @@ -20087,7 +20568,7 @@ type SdkGetRebalanceJobStatusRequest struct { func (x *SdkGetRebalanceJobStatusRequest) Reset() { *x = SdkGetRebalanceJobStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[228] + mi := &file_api_api_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20100,7 +20581,7 @@ func (x *SdkGetRebalanceJobStatusRequest) String() string { func (*SdkGetRebalanceJobStatusRequest) ProtoMessage() {} func (x *SdkGetRebalanceJobStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[228] + mi := &file_api_api_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20113,7 +20594,7 @@ func (x *SdkGetRebalanceJobStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkGetRebalanceJobStatusRequest.ProtoReflect.Descriptor instead. func (*SdkGetRebalanceJobStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{228} + return file_api_api_proto_rawDescGZIP(), []int{232} } func (x *SdkGetRebalanceJobStatusRequest) GetId() string { @@ -20139,7 +20620,7 @@ type SdkGetRebalanceJobStatusResponse struct { func (x *SdkGetRebalanceJobStatusResponse) Reset() { *x = SdkGetRebalanceJobStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[229] + mi := &file_api_api_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20152,7 +20633,7 @@ func (x *SdkGetRebalanceJobStatusResponse) String() string { func (*SdkGetRebalanceJobStatusResponse) ProtoMessage() {} func (x *SdkGetRebalanceJobStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[229] + mi := &file_api_api_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20165,7 +20646,7 @@ func (x *SdkGetRebalanceJobStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkGetRebalanceJobStatusResponse.ProtoReflect.Descriptor instead. func (*SdkGetRebalanceJobStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{229} + return file_api_api_proto_rawDescGZIP(), []int{233} } func (x *SdkGetRebalanceJobStatusResponse) GetJob() *StorageRebalanceJob { @@ -20198,7 +20679,7 @@ type SdkEnumerateRebalanceJobsRequest struct { func (x *SdkEnumerateRebalanceJobsRequest) Reset() { *x = SdkEnumerateRebalanceJobsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[230] + mi := &file_api_api_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20211,7 +20692,7 @@ func (x *SdkEnumerateRebalanceJobsRequest) String() string { func (*SdkEnumerateRebalanceJobsRequest) ProtoMessage() {} func (x *SdkEnumerateRebalanceJobsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[230] + mi := &file_api_api_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20224,7 +20705,7 @@ func (x *SdkEnumerateRebalanceJobsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkEnumerateRebalanceJobsRequest.ProtoReflect.Descriptor instead. func (*SdkEnumerateRebalanceJobsRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{230} + return file_api_api_proto_rawDescGZIP(), []int{234} } type SdkEnumerateRebalanceJobsResponse struct { @@ -20239,7 +20720,7 @@ type SdkEnumerateRebalanceJobsResponse struct { func (x *SdkEnumerateRebalanceJobsResponse) Reset() { *x = SdkEnumerateRebalanceJobsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[231] + mi := &file_api_api_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20252,7 +20733,7 @@ func (x *SdkEnumerateRebalanceJobsResponse) String() string { func (*SdkEnumerateRebalanceJobsResponse) ProtoMessage() {} func (x *SdkEnumerateRebalanceJobsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[231] + mi := &file_api_api_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20265,7 +20746,7 @@ func (x *SdkEnumerateRebalanceJobsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkEnumerateRebalanceJobsResponse.ProtoReflect.Descriptor instead. func (*SdkEnumerateRebalanceJobsResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{231} + return file_api_api_proto_rawDescGZIP(), []int{235} } func (x *SdkEnumerateRebalanceJobsResponse) GetJobs() []*StorageRebalanceJob { @@ -20284,7 +20765,7 @@ type SdkStoragePool struct { func (x *SdkStoragePool) Reset() { *x = SdkStoragePool{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[232] + mi := &file_api_api_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20297,7 +20778,7 @@ func (x *SdkStoragePool) String() string { func (*SdkStoragePool) ProtoMessage() {} func (x *SdkStoragePool) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[232] + mi := &file_api_api_proto_msgTypes[236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20310,7 +20791,7 @@ func (x *SdkStoragePool) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkStoragePool.ProtoReflect.Descriptor instead. func (*SdkStoragePool) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{232} + return file_api_api_proto_rawDescGZIP(), []int{236} } // Defines a response when resizing a storage pool @@ -20323,7 +20804,7 @@ type SdkStoragePoolResizeResponse struct { func (x *SdkStoragePoolResizeResponse) Reset() { *x = SdkStoragePoolResizeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[233] + mi := &file_api_api_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20336,7 +20817,7 @@ func (x *SdkStoragePoolResizeResponse) String() string { func (*SdkStoragePoolResizeResponse) ProtoMessage() {} func (x *SdkStoragePoolResizeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[233] + mi := &file_api_api_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20349,7 +20830,7 @@ func (x *SdkStoragePoolResizeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkStoragePoolResizeResponse.ProtoReflect.Descriptor instead. func (*SdkStoragePoolResizeResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{233} + return file_api_api_proto_rawDescGZIP(), []int{237} } // Defines a response when inspecting a node @@ -20365,7 +20846,7 @@ type SdkNodeInspectResponse struct { func (x *SdkNodeInspectResponse) Reset() { *x = SdkNodeInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[234] + mi := &file_api_api_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20378,7 +20859,7 @@ func (x *SdkNodeInspectResponse) String() string { func (*SdkNodeInspectResponse) ProtoMessage() {} func (x *SdkNodeInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[234] + mi := &file_api_api_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20391,7 +20872,7 @@ func (x *SdkNodeInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeInspectResponse.ProtoReflect.Descriptor instead. func (*SdkNodeInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{234} + return file_api_api_proto_rawDescGZIP(), []int{238} } func (x *SdkNodeInspectResponse) GetNode() *StorageNode { @@ -20411,7 +20892,7 @@ type SdkNodeInspectCurrentRequest struct { func (x *SdkNodeInspectCurrentRequest) Reset() { *x = SdkNodeInspectCurrentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[235] + mi := &file_api_api_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20424,7 +20905,7 @@ func (x *SdkNodeInspectCurrentRequest) String() string { func (*SdkNodeInspectCurrentRequest) ProtoMessage() {} func (x *SdkNodeInspectCurrentRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[235] + mi := &file_api_api_proto_msgTypes[239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20437,7 +20918,7 @@ func (x *SdkNodeInspectCurrentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeInspectCurrentRequest.ProtoReflect.Descriptor instead. func (*SdkNodeInspectCurrentRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{235} + return file_api_api_proto_rawDescGZIP(), []int{239} } // Defines a response when inspecting a node @@ -20453,7 +20934,7 @@ type SdkNodeInspectCurrentResponse struct { func (x *SdkNodeInspectCurrentResponse) Reset() { *x = SdkNodeInspectCurrentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[236] + mi := &file_api_api_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20466,7 +20947,7 @@ func (x *SdkNodeInspectCurrentResponse) String() string { func (*SdkNodeInspectCurrentResponse) ProtoMessage() {} func (x *SdkNodeInspectCurrentResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[236] + mi := &file_api_api_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20479,7 +20960,7 @@ func (x *SdkNodeInspectCurrentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeInspectCurrentResponse.ProtoReflect.Descriptor instead. func (*SdkNodeInspectCurrentResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{236} + return file_api_api_proto_rawDescGZIP(), []int{240} } func (x *SdkNodeInspectCurrentResponse) GetNode() *StorageNode { @@ -20499,7 +20980,7 @@ type SdkNodeEnumerateRequest struct { func (x *SdkNodeEnumerateRequest) Reset() { *x = SdkNodeEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[237] + mi := &file_api_api_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20512,7 +20993,7 @@ func (x *SdkNodeEnumerateRequest) String() string { func (*SdkNodeEnumerateRequest) ProtoMessage() {} func (x *SdkNodeEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[237] + mi := &file_api_api_proto_msgTypes[241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20525,7 +21006,7 @@ func (x *SdkNodeEnumerateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkNodeEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{237} + return file_api_api_proto_rawDescGZIP(), []int{241} } // Defines a response with a list of node ids @@ -20541,7 +21022,7 @@ type SdkNodeEnumerateResponse struct { func (x *SdkNodeEnumerateResponse) Reset() { *x = SdkNodeEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[238] + mi := &file_api_api_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20554,7 +21035,7 @@ func (x *SdkNodeEnumerateResponse) String() string { func (*SdkNodeEnumerateResponse) ProtoMessage() {} func (x *SdkNodeEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[238] + mi := &file_api_api_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20567,7 +21048,7 @@ func (x *SdkNodeEnumerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkNodeEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkNodeEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{238} + return file_api_api_proto_rawDescGZIP(), []int{242} } func (x *SdkNodeEnumerateResponse) GetNodeIds() []string { @@ -20588,7 +21069,7 @@ type SdkNodeEnumerateWithFiltersRequest struct { func (x *SdkNodeEnumerateWithFiltersRequest) Reset() { *x = SdkNodeEnumerateWithFiltersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[239] + mi := &file_api_api_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20601,7 +21082,7 @@ func (x *SdkNodeEnumerateWithFiltersRequest) String() string { func (*SdkNodeEnumerateWithFiltersRequest) ProtoMessage() {} func (x *SdkNodeEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[239] + mi := &file_api_api_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20614,7 +21095,7 @@ func (x *SdkNodeEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Message // Deprecated: Use SdkNodeEnumerateWithFiltersRequest.ProtoReflect.Descriptor instead. func (*SdkNodeEnumerateWithFiltersRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{239} + return file_api_api_proto_rawDescGZIP(), []int{243} } // Defines a response with a list of nodes @@ -20630,7 +21111,7 @@ type SdkNodeEnumerateWithFiltersResponse struct { func (x *SdkNodeEnumerateWithFiltersResponse) Reset() { *x = SdkNodeEnumerateWithFiltersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[240] + mi := &file_api_api_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20643,7 +21124,7 @@ func (x *SdkNodeEnumerateWithFiltersResponse) String() string { func (*SdkNodeEnumerateWithFiltersResponse) ProtoMessage() {} func (x *SdkNodeEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[240] + mi := &file_api_api_proto_msgTypes[244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20656,7 +21137,7 @@ func (x *SdkNodeEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use SdkNodeEnumerateWithFiltersResponse.ProtoReflect.Descriptor instead. func (*SdkNodeEnumerateWithFiltersResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{240} + return file_api_api_proto_rawDescGZIP(), []int{244} } func (x *SdkNodeEnumerateWithFiltersResponse) GetNodes() []*StorageNode { @@ -20679,7 +21160,7 @@ type SdkObjectstoreInspectRequest struct { func (x *SdkObjectstoreInspectRequest) Reset() { *x = SdkObjectstoreInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[241] + mi := &file_api_api_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20692,7 +21173,7 @@ func (x *SdkObjectstoreInspectRequest) String() string { func (*SdkObjectstoreInspectRequest) ProtoMessage() {} func (x *SdkObjectstoreInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[241] + mi := &file_api_api_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20705,7 +21186,7 @@ func (x *SdkObjectstoreInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreInspectRequest.ProtoReflect.Descriptor instead. func (*SdkObjectstoreInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{241} + return file_api_api_proto_rawDescGZIP(), []int{245} } func (x *SdkObjectstoreInspectRequest) GetObjectstoreId() string { @@ -20728,7 +21209,7 @@ type SdkObjectstoreInspectResponse struct { func (x *SdkObjectstoreInspectResponse) Reset() { *x = SdkObjectstoreInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[242] + mi := &file_api_api_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20741,7 +21222,7 @@ func (x *SdkObjectstoreInspectResponse) String() string { func (*SdkObjectstoreInspectResponse) ProtoMessage() {} func (x *SdkObjectstoreInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[242] + mi := &file_api_api_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20754,7 +21235,7 @@ func (x *SdkObjectstoreInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreInspectResponse.ProtoReflect.Descriptor instead. func (*SdkObjectstoreInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{242} + return file_api_api_proto_rawDescGZIP(), []int{246} } func (x *SdkObjectstoreInspectResponse) GetObjectstoreStatus() *ObjectstoreInfo { @@ -20777,7 +21258,7 @@ type SdkObjectstoreCreateRequest struct { func (x *SdkObjectstoreCreateRequest) Reset() { *x = SdkObjectstoreCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[243] + mi := &file_api_api_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20790,7 +21271,7 @@ func (x *SdkObjectstoreCreateRequest) String() string { func (*SdkObjectstoreCreateRequest) ProtoMessage() {} func (x *SdkObjectstoreCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[243] + mi := &file_api_api_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20803,7 +21284,7 @@ func (x *SdkObjectstoreCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreCreateRequest.ProtoReflect.Descriptor instead. func (*SdkObjectstoreCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{243} + return file_api_api_proto_rawDescGZIP(), []int{247} } func (x *SdkObjectstoreCreateRequest) GetVolumeId() string { @@ -20827,7 +21308,7 @@ type SdkObjectstoreCreateResponse struct { func (x *SdkObjectstoreCreateResponse) Reset() { *x = SdkObjectstoreCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[244] + mi := &file_api_api_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20840,7 +21321,7 @@ func (x *SdkObjectstoreCreateResponse) String() string { func (*SdkObjectstoreCreateResponse) ProtoMessage() {} func (x *SdkObjectstoreCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[244] + mi := &file_api_api_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20853,7 +21334,7 @@ func (x *SdkObjectstoreCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreCreateResponse.ProtoReflect.Descriptor instead. func (*SdkObjectstoreCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{244} + return file_api_api_proto_rawDescGZIP(), []int{248} } func (x *SdkObjectstoreCreateResponse) GetObjectstoreStatus() *ObjectstoreInfo { @@ -20876,7 +21357,7 @@ type SdkObjectstoreDeleteRequest struct { func (x *SdkObjectstoreDeleteRequest) Reset() { *x = SdkObjectstoreDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[245] + mi := &file_api_api_proto_msgTypes[249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20889,7 +21370,7 @@ func (x *SdkObjectstoreDeleteRequest) String() string { func (*SdkObjectstoreDeleteRequest) ProtoMessage() {} func (x *SdkObjectstoreDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[245] + mi := &file_api_api_proto_msgTypes[249] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20902,7 +21383,7 @@ func (x *SdkObjectstoreDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkObjectstoreDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{245} + return file_api_api_proto_rawDescGZIP(), []int{249} } func (x *SdkObjectstoreDeleteRequest) GetObjectstoreId() string { @@ -20922,7 +21403,7 @@ type SdkObjectstoreDeleteResponse struct { func (x *SdkObjectstoreDeleteResponse) Reset() { *x = SdkObjectstoreDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[246] + mi := &file_api_api_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20935,7 +21416,7 @@ func (x *SdkObjectstoreDeleteResponse) String() string { func (*SdkObjectstoreDeleteResponse) ProtoMessage() {} func (x *SdkObjectstoreDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[246] + mi := &file_api_api_proto_msgTypes[250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20948,7 +21429,7 @@ func (x *SdkObjectstoreDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkObjectstoreDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{246} + return file_api_api_proto_rawDescGZIP(), []int{250} } // Defines a request to update an object store @@ -20966,7 +21447,7 @@ type SdkObjectstoreUpdateRequest struct { func (x *SdkObjectstoreUpdateRequest) Reset() { *x = SdkObjectstoreUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[247] + mi := &file_api_api_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20979,7 +21460,7 @@ func (x *SdkObjectstoreUpdateRequest) String() string { func (*SdkObjectstoreUpdateRequest) ProtoMessage() {} func (x *SdkObjectstoreUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[247] + mi := &file_api_api_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20992,7 +21473,7 @@ func (x *SdkObjectstoreUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkObjectstoreUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{247} + return file_api_api_proto_rawDescGZIP(), []int{251} } func (x *SdkObjectstoreUpdateRequest) GetObjectstoreId() string { @@ -21019,7 +21500,7 @@ type SdkObjectstoreUpdateResponse struct { func (x *SdkObjectstoreUpdateResponse) Reset() { *x = SdkObjectstoreUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[248] + mi := &file_api_api_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21032,7 +21513,7 @@ func (x *SdkObjectstoreUpdateResponse) String() string { func (*SdkObjectstoreUpdateResponse) ProtoMessage() {} func (x *SdkObjectstoreUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[248] + mi := &file_api_api_proto_msgTypes[252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21045,7 +21526,7 @@ func (x *SdkObjectstoreUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkObjectstoreUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkObjectstoreUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{248} + return file_api_api_proto_rawDescGZIP(), []int{252} } // Defines a request to create a backup of a volume to the cloud @@ -21074,12 +21555,14 @@ type SdkCloudBackupCreateRequest struct { // DeleteLocal indicates if local snap created for backup must be deleted after // the backup is complete DeleteLocal bool `protobuf:"varint,7,opt,name=delete_local,json=deleteLocal,proto3" json:"delete_local,omitempty"` + // Indicates if this is a near sync migrate + NearSyncMigrate bool `protobuf:"varint,8,opt,name=near_sync_migrate,json=nearSyncMigrate,proto3" json:"near_sync_migrate,omitempty"` } func (x *SdkCloudBackupCreateRequest) Reset() { *x = SdkCloudBackupCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[249] + mi := &file_api_api_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21092,7 +21575,7 @@ func (x *SdkCloudBackupCreateRequest) String() string { func (*SdkCloudBackupCreateRequest) ProtoMessage() {} func (x *SdkCloudBackupCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[249] + mi := &file_api_api_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21105,7 +21588,7 @@ func (x *SdkCloudBackupCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupCreateRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{249} + return file_api_api_proto_rawDescGZIP(), []int{253} } func (x *SdkCloudBackupCreateRequest) GetVolumeId() string { @@ -21157,6 +21640,13 @@ func (x *SdkCloudBackupCreateRequest) GetDeleteLocal() bool { return false } +func (x *SdkCloudBackupCreateRequest) GetNearSyncMigrate() bool { + if x != nil { + return x.NearSyncMigrate + } + return false +} + // Empty response type SdkCloudBackupCreateResponse struct { state protoimpl.MessageState @@ -21170,7 +21660,7 @@ type SdkCloudBackupCreateResponse struct { func (x *SdkCloudBackupCreateResponse) Reset() { *x = SdkCloudBackupCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[250] + mi := &file_api_api_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21183,7 +21673,7 @@ func (x *SdkCloudBackupCreateResponse) String() string { func (*SdkCloudBackupCreateResponse) ProtoMessage() {} func (x *SdkCloudBackupCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[250] + mi := &file_api_api_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21196,7 +21686,7 @@ func (x *SdkCloudBackupCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupCreateResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{250} + return file_api_api_proto_rawDescGZIP(), []int{254} } func (x *SdkCloudBackupCreateResponse) GetTaskId() string { @@ -21233,7 +21723,7 @@ type SdkCloudBackupGroupCreateRequest struct { func (x *SdkCloudBackupGroupCreateRequest) Reset() { *x = SdkCloudBackupGroupCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[251] + mi := &file_api_api_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21246,7 +21736,7 @@ func (x *SdkCloudBackupGroupCreateRequest) String() string { func (*SdkCloudBackupGroupCreateRequest) ProtoMessage() {} func (x *SdkCloudBackupGroupCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[251] + mi := &file_api_api_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21259,7 +21749,7 @@ func (x *SdkCloudBackupGroupCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupGroupCreateRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupGroupCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{251} + return file_api_api_proto_rawDescGZIP(), []int{255} } func (x *SdkCloudBackupGroupCreateRequest) GetGroupId() string { @@ -21319,7 +21809,7 @@ type SdkCloudBackupGroupCreateResponse struct { func (x *SdkCloudBackupGroupCreateResponse) Reset() { *x = SdkCloudBackupGroupCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[252] + mi := &file_api_api_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21332,7 +21822,7 @@ func (x *SdkCloudBackupGroupCreateResponse) String() string { func (*SdkCloudBackupGroupCreateResponse) ProtoMessage() {} func (x *SdkCloudBackupGroupCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[252] + mi := &file_api_api_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21345,7 +21835,7 @@ func (x *SdkCloudBackupGroupCreateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkCloudBackupGroupCreateResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupGroupCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{252} + return file_api_api_proto_rawDescGZIP(), []int{256} } func (x *SdkCloudBackupGroupCreateResponse) GetGroupCloudBackupId() string { @@ -21390,7 +21880,7 @@ type SdkCloudBackupRestoreRequest struct { func (x *SdkCloudBackupRestoreRequest) Reset() { *x = SdkCloudBackupRestoreRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[253] + mi := &file_api_api_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21403,7 +21893,7 @@ func (x *SdkCloudBackupRestoreRequest) String() string { func (*SdkCloudBackupRestoreRequest) ProtoMessage() {} func (x *SdkCloudBackupRestoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[253] + mi := &file_api_api_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21416,7 +21906,7 @@ func (x *SdkCloudBackupRestoreRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupRestoreRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupRestoreRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{253} + return file_api_api_proto_rawDescGZIP(), []int{257} } func (x *SdkCloudBackupRestoreRequest) GetBackupId() string { @@ -21484,7 +21974,7 @@ type SdkCloudBackupRestoreResponse struct { func (x *SdkCloudBackupRestoreResponse) Reset() { *x = SdkCloudBackupRestoreResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[254] + mi := &file_api_api_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21497,7 +21987,7 @@ func (x *SdkCloudBackupRestoreResponse) String() string { func (*SdkCloudBackupRestoreResponse) ProtoMessage() {} func (x *SdkCloudBackupRestoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[254] + mi := &file_api_api_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21510,7 +22000,7 @@ func (x *SdkCloudBackupRestoreResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupRestoreResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupRestoreResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{254} + return file_api_api_proto_rawDescGZIP(), []int{258} } func (x *SdkCloudBackupRestoreResponse) GetRestoreVolumeId() string { @@ -21548,7 +22038,7 @@ type SdkCloudBackupDeleteRequest struct { func (x *SdkCloudBackupDeleteRequest) Reset() { *x = SdkCloudBackupDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[255] + mi := &file_api_api_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21561,7 +22051,7 @@ func (x *SdkCloudBackupDeleteRequest) String() string { func (*SdkCloudBackupDeleteRequest) ProtoMessage() {} func (x *SdkCloudBackupDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[255] + mi := &file_api_api_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21574,7 +22064,7 @@ func (x *SdkCloudBackupDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{255} + return file_api_api_proto_rawDescGZIP(), []int{259} } func (x *SdkCloudBackupDeleteRequest) GetBackupId() string { @@ -21615,7 +22105,7 @@ type SdkCloudBackupDeleteResponse struct { func (x *SdkCloudBackupDeleteResponse) Reset() { *x = SdkCloudBackupDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[256] + mi := &file_api_api_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21628,7 +22118,7 @@ func (x *SdkCloudBackupDeleteResponse) String() string { func (*SdkCloudBackupDeleteResponse) ProtoMessage() {} func (x *SdkCloudBackupDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[256] + mi := &file_api_api_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21641,7 +22131,7 @@ func (x *SdkCloudBackupDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{256} + return file_api_api_proto_rawDescGZIP(), []int{260} } // Defines a request to delete all the backups stored by a cloud provider @@ -21660,7 +22150,7 @@ type SdkCloudBackupDeleteAllRequest struct { func (x *SdkCloudBackupDeleteAllRequest) Reset() { *x = SdkCloudBackupDeleteAllRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[257] + mi := &file_api_api_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21673,7 +22163,7 @@ func (x *SdkCloudBackupDeleteAllRequest) String() string { func (*SdkCloudBackupDeleteAllRequest) ProtoMessage() {} func (x *SdkCloudBackupDeleteAllRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[257] + mi := &file_api_api_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21686,7 +22176,7 @@ func (x *SdkCloudBackupDeleteAllRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupDeleteAllRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupDeleteAllRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{257} + return file_api_api_proto_rawDescGZIP(), []int{261} } func (x *SdkCloudBackupDeleteAllRequest) GetSrcVolumeId() string { @@ -21713,7 +22203,7 @@ type SdkCloudBackupDeleteAllResponse struct { func (x *SdkCloudBackupDeleteAllResponse) Reset() { *x = SdkCloudBackupDeleteAllResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[258] + mi := &file_api_api_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21726,7 +22216,7 @@ func (x *SdkCloudBackupDeleteAllResponse) String() string { func (*SdkCloudBackupDeleteAllResponse) ProtoMessage() {} func (x *SdkCloudBackupDeleteAllResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[258] + mi := &file_api_api_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21739,7 +22229,7 @@ func (x *SdkCloudBackupDeleteAllResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupDeleteAllResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupDeleteAllResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{258} + return file_api_api_proto_rawDescGZIP(), []int{262} } // Defines a request to list the backups stored by a cloud provider. @@ -21788,7 +22278,7 @@ type SdkCloudBackupEnumerateWithFiltersRequest struct { func (x *SdkCloudBackupEnumerateWithFiltersRequest) Reset() { *x = SdkCloudBackupEnumerateWithFiltersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[259] + mi := &file_api_api_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21801,7 +22291,7 @@ func (x *SdkCloudBackupEnumerateWithFiltersRequest) String() string { func (*SdkCloudBackupEnumerateWithFiltersRequest) ProtoMessage() {} func (x *SdkCloudBackupEnumerateWithFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[259] + mi := &file_api_api_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21814,7 +22304,7 @@ func (x *SdkCloudBackupEnumerateWithFiltersRequest) ProtoReflect() protoreflect. // Deprecated: Use SdkCloudBackupEnumerateWithFiltersRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupEnumerateWithFiltersRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{259} + return file_api_api_proto_rawDescGZIP(), []int{263} } func (x *SdkCloudBackupEnumerateWithFiltersRequest) GetSrcVolumeId() string { @@ -21916,7 +22406,7 @@ type SdkCloudBackupInfo struct { func (x *SdkCloudBackupInfo) Reset() { *x = SdkCloudBackupInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[260] + mi := &file_api_api_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21929,7 +22419,7 @@ func (x *SdkCloudBackupInfo) String() string { func (*SdkCloudBackupInfo) ProtoMessage() {} func (x *SdkCloudBackupInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[260] + mi := &file_api_api_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21942,7 +22432,7 @@ func (x *SdkCloudBackupInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupInfo.ProtoReflect.Descriptor instead. func (*SdkCloudBackupInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{260} + return file_api_api_proto_rawDescGZIP(), []int{264} } func (x *SdkCloudBackupInfo) GetId() string { @@ -22016,7 +22506,7 @@ type SdkCloudBackupEnumerateWithFiltersResponse struct { func (x *SdkCloudBackupEnumerateWithFiltersResponse) Reset() { *x = SdkCloudBackupEnumerateWithFiltersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[261] + mi := &file_api_api_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22029,7 +22519,7 @@ func (x *SdkCloudBackupEnumerateWithFiltersResponse) String() string { func (*SdkCloudBackupEnumerateWithFiltersResponse) ProtoMessage() {} func (x *SdkCloudBackupEnumerateWithFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[261] + mi := &file_api_api_proto_msgTypes[265] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22042,7 +22532,7 @@ func (x *SdkCloudBackupEnumerateWithFiltersResponse) ProtoReflect() protoreflect // Deprecated: Use SdkCloudBackupEnumerateWithFiltersResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupEnumerateWithFiltersResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{261} + return file_api_api_proto_rawDescGZIP(), []int{265} } func (x *SdkCloudBackupEnumerateWithFiltersResponse) GetBackups() []*SdkCloudBackupInfo { @@ -22097,7 +22587,7 @@ type SdkCloudBackupStatus struct { func (x *SdkCloudBackupStatus) Reset() { *x = SdkCloudBackupStatus{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[262] + mi := &file_api_api_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22110,7 +22600,7 @@ func (x *SdkCloudBackupStatus) String() string { func (*SdkCloudBackupStatus) ProtoMessage() {} func (x *SdkCloudBackupStatus) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[262] + mi := &file_api_api_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22123,7 +22613,7 @@ func (x *SdkCloudBackupStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupStatus.ProtoReflect.Descriptor instead. func (*SdkCloudBackupStatus) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{262} + return file_api_api_proto_rawDescGZIP(), []int{266} } func (x *SdkCloudBackupStatus) GetBackupId() string { @@ -22234,12 +22724,14 @@ type SdkCloudBackupStatusRequest struct { // TaskId of the backup/restore task, if this is specified, // volume_id is ignored. TaskId string `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` + // Indicates if this is for nearsync migration + NearSyncMigrate bool `protobuf:"varint,4,opt,name=near_sync_migrate,json=nearSyncMigrate,proto3" json:"near_sync_migrate,omitempty"` } func (x *SdkCloudBackupStatusRequest) Reset() { *x = SdkCloudBackupStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[263] + mi := &file_api_api_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22252,7 +22744,7 @@ func (x *SdkCloudBackupStatusRequest) String() string { func (*SdkCloudBackupStatusRequest) ProtoMessage() {} func (x *SdkCloudBackupStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[263] + mi := &file_api_api_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22265,7 +22757,7 @@ func (x *SdkCloudBackupStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupStatusRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{263} + return file_api_api_proto_rawDescGZIP(), []int{267} } func (x *SdkCloudBackupStatusRequest) GetVolumeId() string { @@ -22289,6 +22781,13 @@ func (x *SdkCloudBackupStatusRequest) GetTaskId() string { return "" } +func (x *SdkCloudBackupStatusRequest) GetNearSyncMigrate() bool { + if x != nil { + return x.NearSyncMigrate + } + return false +} + // Defines a response containing the status of the backups for a specified volume type SdkCloudBackupStatusResponse struct { state protoimpl.MessageState @@ -22303,7 +22802,7 @@ type SdkCloudBackupStatusResponse struct { func (x *SdkCloudBackupStatusResponse) Reset() { *x = SdkCloudBackupStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[264] + mi := &file_api_api_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22316,7 +22815,7 @@ func (x *SdkCloudBackupStatusResponse) String() string { func (*SdkCloudBackupStatusResponse) ProtoMessage() {} func (x *SdkCloudBackupStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[264] + mi := &file_api_api_proto_msgTypes[268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22329,7 +22828,7 @@ func (x *SdkCloudBackupStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupStatusResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{264} + return file_api_api_proto_rawDescGZIP(), []int{268} } func (x *SdkCloudBackupStatusResponse) GetStatuses() map[string]*SdkCloudBackupStatus { @@ -22354,7 +22853,7 @@ type SdkCloudBackupCatalogRequest struct { func (x *SdkCloudBackupCatalogRequest) Reset() { *x = SdkCloudBackupCatalogRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[265] + mi := &file_api_api_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22367,7 +22866,7 @@ func (x *SdkCloudBackupCatalogRequest) String() string { func (*SdkCloudBackupCatalogRequest) ProtoMessage() {} func (x *SdkCloudBackupCatalogRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[265] + mi := &file_api_api_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22380,7 +22879,7 @@ func (x *SdkCloudBackupCatalogRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupCatalogRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupCatalogRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{265} + return file_api_api_proto_rawDescGZIP(), []int{269} } func (x *SdkCloudBackupCatalogRequest) GetBackupId() string { @@ -22410,7 +22909,7 @@ type SdkCloudBackupCatalogResponse struct { func (x *SdkCloudBackupCatalogResponse) Reset() { *x = SdkCloudBackupCatalogResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[266] + mi := &file_api_api_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22423,7 +22922,7 @@ func (x *SdkCloudBackupCatalogResponse) String() string { func (*SdkCloudBackupCatalogResponse) ProtoMessage() {} func (x *SdkCloudBackupCatalogResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[266] + mi := &file_api_api_proto_msgTypes[270] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22436,7 +22935,7 @@ func (x *SdkCloudBackupCatalogResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupCatalogResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupCatalogResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{266} + return file_api_api_proto_rawDescGZIP(), []int{270} } func (x *SdkCloudBackupCatalogResponse) GetContents() []string { @@ -22464,7 +22963,7 @@ type SdkCloudBackupHistoryItem struct { func (x *SdkCloudBackupHistoryItem) Reset() { *x = SdkCloudBackupHistoryItem{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[267] + mi := &file_api_api_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22477,7 +22976,7 @@ func (x *SdkCloudBackupHistoryItem) String() string { func (*SdkCloudBackupHistoryItem) ProtoMessage() {} func (x *SdkCloudBackupHistoryItem) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[267] + mi := &file_api_api_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22490,7 +22989,7 @@ func (x *SdkCloudBackupHistoryItem) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupHistoryItem.ProtoReflect.Descriptor instead. func (*SdkCloudBackupHistoryItem) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{267} + return file_api_api_proto_rawDescGZIP(), []int{271} } func (x *SdkCloudBackupHistoryItem) GetSrcVolumeId() string { @@ -22529,7 +23028,7 @@ type SdkCloudBackupHistoryRequest struct { func (x *SdkCloudBackupHistoryRequest) Reset() { *x = SdkCloudBackupHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[268] + mi := &file_api_api_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22542,7 +23041,7 @@ func (x *SdkCloudBackupHistoryRequest) String() string { func (*SdkCloudBackupHistoryRequest) ProtoMessage() {} func (x *SdkCloudBackupHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[268] + mi := &file_api_api_proto_msgTypes[272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22555,7 +23054,7 @@ func (x *SdkCloudBackupHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupHistoryRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupHistoryRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{268} + return file_api_api_proto_rawDescGZIP(), []int{272} } func (x *SdkCloudBackupHistoryRequest) GetSrcVolumeId() string { @@ -22578,7 +23077,7 @@ type SdkCloudBackupHistoryResponse struct { func (x *SdkCloudBackupHistoryResponse) Reset() { *x = SdkCloudBackupHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[269] + mi := &file_api_api_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22591,7 +23090,7 @@ func (x *SdkCloudBackupHistoryResponse) String() string { func (*SdkCloudBackupHistoryResponse) ProtoMessage() {} func (x *SdkCloudBackupHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[269] + mi := &file_api_api_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22604,7 +23103,7 @@ func (x *SdkCloudBackupHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupHistoryResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupHistoryResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{269} + return file_api_api_proto_rawDescGZIP(), []int{273} } func (x *SdkCloudBackupHistoryResponse) GetHistoryList() []*SdkCloudBackupHistoryItem { @@ -22631,7 +23130,7 @@ type SdkCloudBackupStateChangeRequest struct { func (x *SdkCloudBackupStateChangeRequest) Reset() { *x = SdkCloudBackupStateChangeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[270] + mi := &file_api_api_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22644,7 +23143,7 @@ func (x *SdkCloudBackupStateChangeRequest) String() string { func (*SdkCloudBackupStateChangeRequest) ProtoMessage() {} func (x *SdkCloudBackupStateChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[270] + mi := &file_api_api_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22657,7 +23156,7 @@ func (x *SdkCloudBackupStateChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupStateChangeRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupStateChangeRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{270} + return file_api_api_proto_rawDescGZIP(), []int{274} } func (x *SdkCloudBackupStateChangeRequest) GetTaskId() string { @@ -22684,7 +23183,7 @@ type SdkCloudBackupStateChangeResponse struct { func (x *SdkCloudBackupStateChangeResponse) Reset() { *x = SdkCloudBackupStateChangeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[271] + mi := &file_api_api_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22697,7 +23196,7 @@ func (x *SdkCloudBackupStateChangeResponse) String() string { func (*SdkCloudBackupStateChangeResponse) ProtoMessage() {} func (x *SdkCloudBackupStateChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[271] + mi := &file_api_api_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22710,7 +23209,7 @@ func (x *SdkCloudBackupStateChangeResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkCloudBackupStateChangeResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupStateChangeResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{271} + return file_api_api_proto_rawDescGZIP(), []int{275} } // SdkCloudBackupScheduleInfo describes a schedule for volume backups to @@ -22744,7 +23243,7 @@ type SdkCloudBackupScheduleInfo struct { func (x *SdkCloudBackupScheduleInfo) Reset() { *x = SdkCloudBackupScheduleInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[272] + mi := &file_api_api_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22757,7 +23256,7 @@ func (x *SdkCloudBackupScheduleInfo) String() string { func (*SdkCloudBackupScheduleInfo) ProtoMessage() {} func (x *SdkCloudBackupScheduleInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[272] + mi := &file_api_api_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22770,7 +23269,7 @@ func (x *SdkCloudBackupScheduleInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupScheduleInfo.ProtoReflect.Descriptor instead. func (*SdkCloudBackupScheduleInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{272} + return file_api_api_proto_rawDescGZIP(), []int{276} } func (x *SdkCloudBackupScheduleInfo) GetSrcVolumeId() string { @@ -22843,7 +23342,7 @@ type SdkCloudBackupSchedCreateRequest struct { func (x *SdkCloudBackupSchedCreateRequest) Reset() { *x = SdkCloudBackupSchedCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[273] + mi := &file_api_api_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22856,7 +23355,7 @@ func (x *SdkCloudBackupSchedCreateRequest) String() string { func (*SdkCloudBackupSchedCreateRequest) ProtoMessage() {} func (x *SdkCloudBackupSchedCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[273] + mi := &file_api_api_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22869,7 +23368,7 @@ func (x *SdkCloudBackupSchedCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupSchedCreateRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{273} + return file_api_api_proto_rawDescGZIP(), []int{277} } func (x *SdkCloudBackupSchedCreateRequest) GetCloudSchedInfo() *SdkCloudBackupScheduleInfo { @@ -22893,7 +23392,7 @@ type SdkCloudBackupSchedCreateResponse struct { func (x *SdkCloudBackupSchedCreateResponse) Reset() { *x = SdkCloudBackupSchedCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[274] + mi := &file_api_api_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22906,7 +23405,7 @@ func (x *SdkCloudBackupSchedCreateResponse) String() string { func (*SdkCloudBackupSchedCreateResponse) ProtoMessage() {} func (x *SdkCloudBackupSchedCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[274] + mi := &file_api_api_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22919,7 +23418,7 @@ func (x *SdkCloudBackupSchedCreateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkCloudBackupSchedCreateResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{274} + return file_api_api_proto_rawDescGZIP(), []int{278} } func (x *SdkCloudBackupSchedCreateResponse) GetBackupScheduleId() string { @@ -22944,7 +23443,7 @@ type SdkCloudBackupSchedUpdateRequest struct { func (x *SdkCloudBackupSchedUpdateRequest) Reset() { *x = SdkCloudBackupSchedUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[275] + mi := &file_api_api_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22957,7 +23456,7 @@ func (x *SdkCloudBackupSchedUpdateRequest) String() string { func (*SdkCloudBackupSchedUpdateRequest) ProtoMessage() {} func (x *SdkCloudBackupSchedUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[275] + mi := &file_api_api_proto_msgTypes[279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22970,7 +23469,7 @@ func (x *SdkCloudBackupSchedUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupSchedUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{275} + return file_api_api_proto_rawDescGZIP(), []int{279} } func (x *SdkCloudBackupSchedUpdateRequest) GetCloudSchedInfo() *SdkCloudBackupScheduleInfo { @@ -22997,7 +23496,7 @@ type SdkCloudBackupSchedUpdateResponse struct { func (x *SdkCloudBackupSchedUpdateResponse) Reset() { *x = SdkCloudBackupSchedUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[276] + mi := &file_api_api_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23010,7 +23509,7 @@ func (x *SdkCloudBackupSchedUpdateResponse) String() string { func (*SdkCloudBackupSchedUpdateResponse) ProtoMessage() {} func (x *SdkCloudBackupSchedUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[276] + mi := &file_api_api_proto_msgTypes[280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23023,7 +23522,7 @@ func (x *SdkCloudBackupSchedUpdateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkCloudBackupSchedUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{276} + return file_api_api_proto_rawDescGZIP(), []int{280} } // Defines a request to delete a backup schedule @@ -23039,7 +23538,7 @@ type SdkCloudBackupSchedDeleteRequest struct { func (x *SdkCloudBackupSchedDeleteRequest) Reset() { *x = SdkCloudBackupSchedDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[277] + mi := &file_api_api_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23052,7 +23551,7 @@ func (x *SdkCloudBackupSchedDeleteRequest) String() string { func (*SdkCloudBackupSchedDeleteRequest) ProtoMessage() {} func (x *SdkCloudBackupSchedDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[277] + mi := &file_api_api_proto_msgTypes[281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23065,7 +23564,7 @@ func (x *SdkCloudBackupSchedDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupSchedDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{277} + return file_api_api_proto_rawDescGZIP(), []int{281} } func (x *SdkCloudBackupSchedDeleteRequest) GetBackupScheduleId() string { @@ -23085,7 +23584,7 @@ type SdkCloudBackupSchedDeleteResponse struct { func (x *SdkCloudBackupSchedDeleteResponse) Reset() { *x = SdkCloudBackupSchedDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[278] + mi := &file_api_api_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23098,7 +23597,7 @@ func (x *SdkCloudBackupSchedDeleteResponse) String() string { func (*SdkCloudBackupSchedDeleteResponse) ProtoMessage() {} func (x *SdkCloudBackupSchedDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[278] + mi := &file_api_api_proto_msgTypes[282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23111,7 +23610,7 @@ func (x *SdkCloudBackupSchedDeleteResponse) ProtoReflect() protoreflect.Message // Deprecated: Use SdkCloudBackupSchedDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{278} + return file_api_api_proto_rawDescGZIP(), []int{282} } // Empty request @@ -23124,7 +23623,7 @@ type SdkCloudBackupSchedEnumerateRequest struct { func (x *SdkCloudBackupSchedEnumerateRequest) Reset() { *x = SdkCloudBackupSchedEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[279] + mi := &file_api_api_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23137,7 +23636,7 @@ func (x *SdkCloudBackupSchedEnumerateRequest) String() string { func (*SdkCloudBackupSchedEnumerateRequest) ProtoMessage() {} func (x *SdkCloudBackupSchedEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[279] + mi := &file_api_api_proto_msgTypes[283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23150,7 +23649,7 @@ func (x *SdkCloudBackupSchedEnumerateRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use SdkCloudBackupSchedEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{279} + return file_api_api_proto_rawDescGZIP(), []int{283} } // Defines a response containing a map listing the schedules for volume @@ -23167,7 +23666,7 @@ type SdkCloudBackupSchedEnumerateResponse struct { func (x *SdkCloudBackupSchedEnumerateResponse) Reset() { *x = SdkCloudBackupSchedEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[280] + mi := &file_api_api_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23180,7 +23679,7 @@ func (x *SdkCloudBackupSchedEnumerateResponse) String() string { func (*SdkCloudBackupSchedEnumerateResponse) ProtoMessage() {} func (x *SdkCloudBackupSchedEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[280] + mi := &file_api_api_proto_msgTypes[284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23193,7 +23692,7 @@ func (x *SdkCloudBackupSchedEnumerateResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use SdkCloudBackupSchedEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSchedEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{280} + return file_api_api_proto_rawDescGZIP(), []int{284} } func (x *SdkCloudBackupSchedEnumerateResponse) GetCloudSchedList() map[string]*SdkCloudBackupScheduleInfo { @@ -23220,7 +23719,7 @@ type SdkCloudBackupSizeRequest struct { func (x *SdkCloudBackupSizeRequest) Reset() { *x = SdkCloudBackupSizeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[281] + mi := &file_api_api_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23233,7 +23732,7 @@ func (x *SdkCloudBackupSizeRequest) String() string { func (*SdkCloudBackupSizeRequest) ProtoMessage() {} func (x *SdkCloudBackupSizeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[281] + mi := &file_api_api_proto_msgTypes[285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23246,7 +23745,7 @@ func (x *SdkCloudBackupSizeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupSizeRequest.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSizeRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{281} + return file_api_api_proto_rawDescGZIP(), []int{285} } func (x *SdkCloudBackupSizeRequest) GetBackupId() string { @@ -23269,14 +23768,20 @@ type SdkCloudBackupSizeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Size is the size of the volume in bytes + // Same value as total_download_bytes, will be deprecated Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` + // Total download size of all the backups (full & incremental) required for a restore + TotalDownloadBytes uint64 `protobuf:"varint,2,opt,name=total_download_bytes,json=totalDownloadBytes,proto3" json:"total_download_bytes,omitempty"` + // Size of the compressed individual backup in object-store or NFS + CompressedObjectBytes uint64 `protobuf:"varint,3,opt,name=compressed_object_bytes,json=compressedObjectBytes,proto3" json:"compressed_object_bytes,omitempty"` + // Used size of the volume to be restored (in bytes) + CapacityRequiredForRestore uint64 `protobuf:"varint,4,opt,name=capacity_required_for_restore,json=capacityRequiredForRestore,proto3" json:"capacity_required_for_restore,omitempty"` } func (x *SdkCloudBackupSizeResponse) Reset() { *x = SdkCloudBackupSizeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[282] + mi := &file_api_api_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23289,7 +23794,7 @@ func (x *SdkCloudBackupSizeResponse) String() string { func (*SdkCloudBackupSizeResponse) ProtoMessage() {} func (x *SdkCloudBackupSizeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[282] + mi := &file_api_api_proto_msgTypes[286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23302,7 +23807,7 @@ func (x *SdkCloudBackupSizeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudBackupSizeResponse.ProtoReflect.Descriptor instead. func (*SdkCloudBackupSizeResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{282} + return file_api_api_proto_rawDescGZIP(), []int{286} } func (x *SdkCloudBackupSizeResponse) GetSize() uint64 { @@ -23312,6 +23817,27 @@ func (x *SdkCloudBackupSizeResponse) GetSize() uint64 { return 0 } +func (x *SdkCloudBackupSizeResponse) GetTotalDownloadBytes() uint64 { + if x != nil { + return x.TotalDownloadBytes + } + return 0 +} + +func (x *SdkCloudBackupSizeResponse) GetCompressedObjectBytes() uint64 { + if x != nil { + return x.CompressedObjectBytes + } + return 0 +} + +func (x *SdkCloudBackupSizeResponse) GetCapacityRequiredForRestore() uint64 { + if x != nil { + return x.CapacityRequiredForRestore + } + return 0 +} + // // SdkRule is the message used to construct custom roles in the OpenStorage SDK. // @@ -23376,7 +23902,7 @@ type SdkRule struct { func (x *SdkRule) Reset() { *x = SdkRule{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[283] + mi := &file_api_api_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23389,7 +23915,7 @@ func (x *SdkRule) String() string { func (*SdkRule) ProtoMessage() {} func (x *SdkRule) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[283] + mi := &file_api_api_proto_msgTypes[287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23402,7 +23928,7 @@ func (x *SdkRule) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRule.ProtoReflect.Descriptor instead. func (*SdkRule) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{283} + return file_api_api_proto_rawDescGZIP(), []int{287} } func (x *SdkRule) GetServices() []string { @@ -23431,7 +23957,7 @@ type SdkRole struct { func (x *SdkRole) Reset() { *x = SdkRole{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[284] + mi := &file_api_api_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23444,7 +23970,7 @@ func (x *SdkRole) String() string { func (*SdkRole) ProtoMessage() {} func (x *SdkRole) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[284] + mi := &file_api_api_proto_msgTypes[288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23457,7 +23983,7 @@ func (x *SdkRole) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRole.ProtoReflect.Descriptor instead. func (*SdkRole) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{284} + return file_api_api_proto_rawDescGZIP(), []int{288} } func (x *SdkRole) GetName() string { @@ -23487,7 +24013,7 @@ type SdkRoleCreateRequest struct { func (x *SdkRoleCreateRequest) Reset() { *x = SdkRoleCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[285] + mi := &file_api_api_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23500,7 +24026,7 @@ func (x *SdkRoleCreateRequest) String() string { func (*SdkRoleCreateRequest) ProtoMessage() {} func (x *SdkRoleCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[285] + mi := &file_api_api_proto_msgTypes[289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23513,7 +24039,7 @@ func (x *SdkRoleCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleCreateRequest.ProtoReflect.Descriptor instead. func (*SdkRoleCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{285} + return file_api_api_proto_rawDescGZIP(), []int{289} } func (x *SdkRoleCreateRequest) GetRole() *SdkRole { @@ -23536,7 +24062,7 @@ type SdkRoleCreateResponse struct { func (x *SdkRoleCreateResponse) Reset() { *x = SdkRoleCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[286] + mi := &file_api_api_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23549,7 +24075,7 @@ func (x *SdkRoleCreateResponse) String() string { func (*SdkRoleCreateResponse) ProtoMessage() {} func (x *SdkRoleCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[286] + mi := &file_api_api_proto_msgTypes[290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23562,7 +24088,7 @@ func (x *SdkRoleCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleCreateResponse.ProtoReflect.Descriptor instead. func (*SdkRoleCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{286} + return file_api_api_proto_rawDescGZIP(), []int{290} } func (x *SdkRoleCreateResponse) GetRole() *SdkRole { @@ -23582,7 +24108,7 @@ type SdkRoleEnumerateRequest struct { func (x *SdkRoleEnumerateRequest) Reset() { *x = SdkRoleEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[287] + mi := &file_api_api_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23595,7 +24121,7 @@ func (x *SdkRoleEnumerateRequest) String() string { func (*SdkRoleEnumerateRequest) ProtoMessage() {} func (x *SdkRoleEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[287] + mi := &file_api_api_proto_msgTypes[291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23608,7 +24134,7 @@ func (x *SdkRoleEnumerateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkRoleEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{287} + return file_api_api_proto_rawDescGZIP(), []int{291} } // Respose to enumerate all roles @@ -23624,7 +24150,7 @@ type SdkRoleEnumerateResponse struct { func (x *SdkRoleEnumerateResponse) Reset() { *x = SdkRoleEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[288] + mi := &file_api_api_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23637,7 +24163,7 @@ func (x *SdkRoleEnumerateResponse) String() string { func (*SdkRoleEnumerateResponse) ProtoMessage() {} func (x *SdkRoleEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[288] + mi := &file_api_api_proto_msgTypes[292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23650,7 +24176,7 @@ func (x *SdkRoleEnumerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkRoleEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{288} + return file_api_api_proto_rawDescGZIP(), []int{292} } func (x *SdkRoleEnumerateResponse) GetNames() []string { @@ -23673,7 +24199,7 @@ type SdkRoleInspectRequest struct { func (x *SdkRoleInspectRequest) Reset() { *x = SdkRoleInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[289] + mi := &file_api_api_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23686,7 +24212,7 @@ func (x *SdkRoleInspectRequest) String() string { func (*SdkRoleInspectRequest) ProtoMessage() {} func (x *SdkRoleInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[289] + mi := &file_api_api_proto_msgTypes[293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23699,7 +24225,7 @@ func (x *SdkRoleInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleInspectRequest.ProtoReflect.Descriptor instead. func (*SdkRoleInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{289} + return file_api_api_proto_rawDescGZIP(), []int{293} } func (x *SdkRoleInspectRequest) GetName() string { @@ -23722,7 +24248,7 @@ type SdkRoleInspectResponse struct { func (x *SdkRoleInspectResponse) Reset() { *x = SdkRoleInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[290] + mi := &file_api_api_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23735,7 +24261,7 @@ func (x *SdkRoleInspectResponse) String() string { func (*SdkRoleInspectResponse) ProtoMessage() {} func (x *SdkRoleInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[290] + mi := &file_api_api_proto_msgTypes[294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23748,7 +24274,7 @@ func (x *SdkRoleInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleInspectResponse.ProtoReflect.Descriptor instead. func (*SdkRoleInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{290} + return file_api_api_proto_rawDescGZIP(), []int{294} } func (x *SdkRoleInspectResponse) GetRole() *SdkRole { @@ -23770,7 +24296,7 @@ type SdkRoleDeleteRequest struct { func (x *SdkRoleDeleteRequest) Reset() { *x = SdkRoleDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[291] + mi := &file_api_api_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23783,7 +24309,7 @@ func (x *SdkRoleDeleteRequest) String() string { func (*SdkRoleDeleteRequest) ProtoMessage() {} func (x *SdkRoleDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[291] + mi := &file_api_api_proto_msgTypes[295] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23796,7 +24322,7 @@ func (x *SdkRoleDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkRoleDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{291} + return file_api_api_proto_rawDescGZIP(), []int{295} } func (x *SdkRoleDeleteRequest) GetName() string { @@ -23816,7 +24342,7 @@ type SdkRoleDeleteResponse struct { func (x *SdkRoleDeleteResponse) Reset() { *x = SdkRoleDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[292] + mi := &file_api_api_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23829,7 +24355,7 @@ func (x *SdkRoleDeleteResponse) String() string { func (*SdkRoleDeleteResponse) ProtoMessage() {} func (x *SdkRoleDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[292] + mi := &file_api_api_proto_msgTypes[296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23842,7 +24368,7 @@ func (x *SdkRoleDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkRoleDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{292} + return file_api_api_proto_rawDescGZIP(), []int{296} } // Defines a request to update an existing role @@ -23858,7 +24384,7 @@ type SdkRoleUpdateRequest struct { func (x *SdkRoleUpdateRequest) Reset() { *x = SdkRoleUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[293] + mi := &file_api_api_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23871,7 +24397,7 @@ func (x *SdkRoleUpdateRequest) String() string { func (*SdkRoleUpdateRequest) ProtoMessage() {} func (x *SdkRoleUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[293] + mi := &file_api_api_proto_msgTypes[297] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23884,7 +24410,7 @@ func (x *SdkRoleUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleUpdateRequest.ProtoReflect.Descriptor instead. func (*SdkRoleUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{293} + return file_api_api_proto_rawDescGZIP(), []int{297} } func (x *SdkRoleUpdateRequest) GetRole() *SdkRole { @@ -23907,7 +24433,7 @@ type SdkRoleUpdateResponse struct { func (x *SdkRoleUpdateResponse) Reset() { *x = SdkRoleUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[294] + mi := &file_api_api_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23920,7 +24446,7 @@ func (x *SdkRoleUpdateResponse) String() string { func (*SdkRoleUpdateResponse) ProtoMessage() {} func (x *SdkRoleUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[294] + mi := &file_api_api_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23933,7 +24459,7 @@ func (x *SdkRoleUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkRoleUpdateResponse.ProtoReflect.Descriptor instead. func (*SdkRoleUpdateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{294} + return file_api_api_proto_rawDescGZIP(), []int{298} } func (x *SdkRoleUpdateResponse) GetRole() *SdkRole { @@ -23952,7 +24478,7 @@ type FilesystemTrim struct { func (x *FilesystemTrim) Reset() { *x = FilesystemTrim{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[295] + mi := &file_api_api_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23965,7 +24491,7 @@ func (x *FilesystemTrim) String() string { func (*FilesystemTrim) ProtoMessage() {} func (x *FilesystemTrim) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[295] + mi := &file_api_api_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23978,7 +24504,7 @@ func (x *FilesystemTrim) ProtoReflect() protoreflect.Message { // Deprecated: Use FilesystemTrim.ProtoReflect.Descriptor instead. func (*FilesystemTrim) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{295} + return file_api_api_proto_rawDescGZIP(), []int{299} } // SdkFilesystemTrimStartRequest defines a request to start a background filesystem trim operation @@ -23996,7 +24522,7 @@ type SdkFilesystemTrimStartRequest struct { func (x *SdkFilesystemTrimStartRequest) Reset() { *x = SdkFilesystemTrimStartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[296] + mi := &file_api_api_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24009,7 +24535,7 @@ func (x *SdkFilesystemTrimStartRequest) String() string { func (*SdkFilesystemTrimStartRequest) ProtoMessage() {} func (x *SdkFilesystemTrimStartRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[296] + mi := &file_api_api_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24022,7 +24548,7 @@ func (x *SdkFilesystemTrimStartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemTrimStartRequest.ProtoReflect.Descriptor instead. func (*SdkFilesystemTrimStartRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{296} + return file_api_api_proto_rawDescGZIP(), []int{300} } func (x *SdkFilesystemTrimStartRequest) GetVolumeId() string { @@ -24055,7 +24581,7 @@ type SdkFilesystemTrimStartResponse struct { func (x *SdkFilesystemTrimStartResponse) Reset() { *x = SdkFilesystemTrimStartResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[297] + mi := &file_api_api_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24068,7 +24594,7 @@ func (x *SdkFilesystemTrimStartResponse) String() string { func (*SdkFilesystemTrimStartResponse) ProtoMessage() {} func (x *SdkFilesystemTrimStartResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[297] + mi := &file_api_api_proto_msgTypes[301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24081,7 +24607,7 @@ func (x *SdkFilesystemTrimStartResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemTrimStartResponse.ProtoReflect.Descriptor instead. func (*SdkFilesystemTrimStartResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{297} + return file_api_api_proto_rawDescGZIP(), []int{301} } func (x *SdkFilesystemTrimStartResponse) GetStatus() FilesystemTrim_FilesystemTrimStatus { @@ -24114,7 +24640,7 @@ type SdkFilesystemTrimStatusRequest struct { func (x *SdkFilesystemTrimStatusRequest) Reset() { *x = SdkFilesystemTrimStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[298] + mi := &file_api_api_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24127,7 +24653,7 @@ func (x *SdkFilesystemTrimStatusRequest) String() string { func (*SdkFilesystemTrimStatusRequest) ProtoMessage() {} func (x *SdkFilesystemTrimStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[298] + mi := &file_api_api_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24140,7 +24666,7 @@ func (x *SdkFilesystemTrimStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemTrimStatusRequest.ProtoReflect.Descriptor instead. func (*SdkFilesystemTrimStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{298} + return file_api_api_proto_rawDescGZIP(), []int{302} } func (x *SdkFilesystemTrimStatusRequest) GetVolumeId() string { @@ -24173,7 +24699,7 @@ type SdkFilesystemTrimStatusResponse struct { func (x *SdkFilesystemTrimStatusResponse) Reset() { *x = SdkFilesystemTrimStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[299] + mi := &file_api_api_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24186,7 +24712,7 @@ func (x *SdkFilesystemTrimStatusResponse) String() string { func (*SdkFilesystemTrimStatusResponse) ProtoMessage() {} func (x *SdkFilesystemTrimStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[299] + mi := &file_api_api_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24199,7 +24725,7 @@ func (x *SdkFilesystemTrimStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemTrimStatusResponse.ProtoReflect.Descriptor instead. func (*SdkFilesystemTrimStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{299} + return file_api_api_proto_rawDescGZIP(), []int{303} } func (x *SdkFilesystemTrimStatusResponse) GetStatus() FilesystemTrim_FilesystemTrimStatus { @@ -24226,7 +24752,7 @@ type SdkAutoFSTrimStatusRequest struct { func (x *SdkAutoFSTrimStatusRequest) Reset() { *x = SdkAutoFSTrimStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[300] + mi := &file_api_api_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24239,7 +24765,7 @@ func (x *SdkAutoFSTrimStatusRequest) String() string { func (*SdkAutoFSTrimStatusRequest) ProtoMessage() {} func (x *SdkAutoFSTrimStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[300] + mi := &file_api_api_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24252,7 +24778,7 @@ func (x *SdkAutoFSTrimStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAutoFSTrimStatusRequest.ProtoReflect.Descriptor instead. func (*SdkAutoFSTrimStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{300} + return file_api_api_proto_rawDescGZIP(), []int{304} } // SdkAutoFSTrimStatusResponse defines the response for a @@ -24271,7 +24797,7 @@ type SdkAutoFSTrimStatusResponse struct { func (x *SdkAutoFSTrimStatusResponse) Reset() { *x = SdkAutoFSTrimStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[301] + mi := &file_api_api_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24284,7 +24810,7 @@ func (x *SdkAutoFSTrimStatusResponse) String() string { func (*SdkAutoFSTrimStatusResponse) ProtoMessage() {} func (x *SdkAutoFSTrimStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[301] + mi := &file_api_api_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24297,7 +24823,7 @@ func (x *SdkAutoFSTrimStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAutoFSTrimStatusResponse.ProtoReflect.Descriptor instead. func (*SdkAutoFSTrimStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{301} + return file_api_api_proto_rawDescGZIP(), []int{305} } func (x *SdkAutoFSTrimStatusResponse) GetTrimStatus() map[string]FilesystemTrim_FilesystemTrimStatus { @@ -24324,7 +24850,7 @@ type SdkAutoFSTrimUsageRequest struct { func (x *SdkAutoFSTrimUsageRequest) Reset() { *x = SdkAutoFSTrimUsageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[302] + mi := &file_api_api_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24337,7 +24863,7 @@ func (x *SdkAutoFSTrimUsageRequest) String() string { func (*SdkAutoFSTrimUsageRequest) ProtoMessage() {} func (x *SdkAutoFSTrimUsageRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[302] + mi := &file_api_api_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24350,7 +24876,7 @@ func (x *SdkAutoFSTrimUsageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAutoFSTrimUsageRequest.ProtoReflect.Descriptor instead. func (*SdkAutoFSTrimUsageRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{302} + return file_api_api_proto_rawDescGZIP(), []int{306} } // SdkAutoFSTrimUsageResponse defines the response for a @@ -24369,7 +24895,7 @@ type SdkAutoFSTrimUsageResponse struct { func (x *SdkAutoFSTrimUsageResponse) Reset() { *x = SdkAutoFSTrimUsageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[303] + mi := &file_api_api_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24382,7 +24908,7 @@ func (x *SdkAutoFSTrimUsageResponse) String() string { func (*SdkAutoFSTrimUsageResponse) ProtoMessage() {} func (x *SdkAutoFSTrimUsageResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[303] + mi := &file_api_api_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24395,7 +24921,7 @@ func (x *SdkAutoFSTrimUsageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkAutoFSTrimUsageResponse.ProtoReflect.Descriptor instead. func (*SdkAutoFSTrimUsageResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{303} + return file_api_api_proto_rawDescGZIP(), []int{307} } func (x *SdkAutoFSTrimUsageResponse) GetUsage() map[string]*FstrimVolumeUsageInfo { @@ -24428,7 +24954,7 @@ type SdkFilesystemTrimStopRequest struct { func (x *SdkFilesystemTrimStopRequest) Reset() { *x = SdkFilesystemTrimStopRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[304] + mi := &file_api_api_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24441,7 +24967,7 @@ func (x *SdkFilesystemTrimStopRequest) String() string { func (*SdkFilesystemTrimStopRequest) ProtoMessage() {} func (x *SdkFilesystemTrimStopRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[304] + mi := &file_api_api_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24454,7 +24980,7 @@ func (x *SdkFilesystemTrimStopRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemTrimStopRequest.ProtoReflect.Descriptor instead. func (*SdkFilesystemTrimStopRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{304} + return file_api_api_proto_rawDescGZIP(), []int{308} } func (x *SdkFilesystemTrimStopRequest) GetVolumeId() string { @@ -24471,6 +24997,114 @@ func (x *SdkFilesystemTrimStopRequest) GetMountPath() string { return "" } +// SdkVolumeBytesUsedResponse defines a response to fetch multiple volume util from a given node +type SdkVolumeBytesUsedResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provides vol util of multiple requested volumes from a given node + VolUtilInfo *VolumeBytesUsedByNode `protobuf:"bytes,1,opt,name=vol_util_info,json=volUtilInfo,proto3" json:"vol_util_info,omitempty"` +} + +func (x *SdkVolumeBytesUsedResponse) Reset() { + *x = SdkVolumeBytesUsedResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[309] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkVolumeBytesUsedResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkVolumeBytesUsedResponse) ProtoMessage() {} + +func (x *SdkVolumeBytesUsedResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[309] + 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 SdkVolumeBytesUsedResponse.ProtoReflect.Descriptor instead. +func (*SdkVolumeBytesUsedResponse) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{309} +} + +func (x *SdkVolumeBytesUsedResponse) GetVolUtilInfo() *VolumeBytesUsedByNode { + if x != nil { + return x.VolUtilInfo + } + return nil +} + +// SdkVolumeBytesUsedRequest defines a request for fetching per volume utilization +// from multiple volume in a given node +type SdkVolumeBytesUsedRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // machine uuid of targeted node + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // volume ids to be found in usage response, can be empty + Ids []uint64 `protobuf:"varint,2,rep,packed,name=ids,proto3" json:"ids,omitempty"` +} + +func (x *SdkVolumeBytesUsedRequest) Reset() { + *x = SdkVolumeBytesUsedRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[310] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkVolumeBytesUsedRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkVolumeBytesUsedRequest) ProtoMessage() {} + +func (x *SdkVolumeBytesUsedRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[310] + 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 SdkVolumeBytesUsedRequest.ProtoReflect.Descriptor instead. +func (*SdkVolumeBytesUsedRequest) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{310} +} + +func (x *SdkVolumeBytesUsedRequest) GetNodeId() string { + if x != nil { + return x.NodeId + } + return "" +} + +func (x *SdkVolumeBytesUsedRequest) GetIds() []uint64 { + if x != nil { + return x.Ids + } + return nil +} + // Empty response type SdkFilesystemTrimStopResponse struct { state protoimpl.MessageState @@ -24481,7 +25115,7 @@ type SdkFilesystemTrimStopResponse struct { func (x *SdkFilesystemTrimStopResponse) Reset() { *x = SdkFilesystemTrimStopResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[305] + mi := &file_api_api_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24494,7 +25128,7 @@ func (x *SdkFilesystemTrimStopResponse) String() string { func (*SdkFilesystemTrimStopResponse) ProtoMessage() {} func (x *SdkFilesystemTrimStopResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[305] + mi := &file_api_api_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24507,7 +25141,207 @@ func (x *SdkFilesystemTrimStopResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemTrimStopResponse.ProtoReflect.Descriptor instead. func (*SdkFilesystemTrimStopResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{305} + return file_api_api_proto_rawDescGZIP(), []int{311} +} + +// SdkAutoFSTrimPushRequest defines the request to push a volume to autofstrim +// queue +type SdkAutoFSTrimPushRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Id of the volume + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *SdkAutoFSTrimPushRequest) Reset() { + *x = SdkAutoFSTrimPushRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[312] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkAutoFSTrimPushRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkAutoFSTrimPushRequest) ProtoMessage() {} + +func (x *SdkAutoFSTrimPushRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[312] + 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 SdkAutoFSTrimPushRequest.ProtoReflect.Descriptor instead. +func (*SdkAutoFSTrimPushRequest) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{312} +} + +func (x *SdkAutoFSTrimPushRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +// SdkAutoFSTrimPushResponse defines the response to push a volume to autofstrim +// queue +type SdkAutoFSTrimPushResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Text blob containing ASCII text providing details of the operation + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *SdkAutoFSTrimPushResponse) Reset() { + *x = SdkAutoFSTrimPushResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[313] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkAutoFSTrimPushResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkAutoFSTrimPushResponse) ProtoMessage() {} + +func (x *SdkAutoFSTrimPushResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[313] + 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 SdkAutoFSTrimPushResponse.ProtoReflect.Descriptor instead. +func (*SdkAutoFSTrimPushResponse) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{313} +} + +func (x *SdkAutoFSTrimPushResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// SdkAutoFSTrimPopRequest defines the request to pop a volume to autofstrim +// queue +type SdkAutoFSTrimPopRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Id of the volume + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *SdkAutoFSTrimPopRequest) Reset() { + *x = SdkAutoFSTrimPopRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[314] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkAutoFSTrimPopRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkAutoFSTrimPopRequest) ProtoMessage() {} + +func (x *SdkAutoFSTrimPopRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[314] + 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 SdkAutoFSTrimPopRequest.ProtoReflect.Descriptor instead. +func (*SdkAutoFSTrimPopRequest) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{314} +} + +func (x *SdkAutoFSTrimPopRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +// SdkAutoFSTrimPopResponse defines the response to pop a volume to autofstrim +// queue +type SdkAutoFSTrimPopResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Text blob containing ASCII text providing details of the operation + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *SdkAutoFSTrimPopResponse) Reset() { + *x = SdkAutoFSTrimPopResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_api_proto_msgTypes[315] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SdkAutoFSTrimPopResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SdkAutoFSTrimPopResponse) ProtoMessage() {} + +func (x *SdkAutoFSTrimPopResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_api_proto_msgTypes[315] + 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 SdkAutoFSTrimPopResponse.ProtoReflect.Descriptor instead. +func (*SdkAutoFSTrimPopResponse) Descriptor() ([]byte, []int) { + return file_api_api_proto_rawDescGZIP(), []int{315} +} + +func (x *SdkAutoFSTrimPopResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" } type FilesystemCheck struct { @@ -24519,7 +25353,7 @@ type FilesystemCheck struct { func (x *FilesystemCheck) Reset() { *x = FilesystemCheck{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[306] + mi := &file_api_api_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24532,7 +25366,7 @@ func (x *FilesystemCheck) String() string { func (*FilesystemCheck) ProtoMessage() {} func (x *FilesystemCheck) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[306] + mi := &file_api_api_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24545,7 +25379,7 @@ func (x *FilesystemCheck) ProtoReflect() protoreflect.Message { // Deprecated: Use FilesystemCheck.ProtoReflect.Descriptor instead. func (*FilesystemCheck) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{306} + return file_api_api_proto_rawDescGZIP(), []int{316} } // SdkFilesystemCheckStartRequest defines a request to start a background @@ -24564,7 +25398,7 @@ type SdkFilesystemCheckStartRequest struct { func (x *SdkFilesystemCheckStartRequest) Reset() { *x = SdkFilesystemCheckStartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[307] + mi := &file_api_api_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24577,7 +25411,7 @@ func (x *SdkFilesystemCheckStartRequest) String() string { func (*SdkFilesystemCheckStartRequest) ProtoMessage() {} func (x *SdkFilesystemCheckStartRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[307] + mi := &file_api_api_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24590,7 +25424,7 @@ func (x *SdkFilesystemCheckStartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemCheckStartRequest.ProtoReflect.Descriptor instead. func (*SdkFilesystemCheckStartRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{307} + return file_api_api_proto_rawDescGZIP(), []int{317} } func (x *SdkFilesystemCheckStartRequest) GetVolumeId() string { @@ -24623,7 +25457,7 @@ type SdkFilesystemCheckStartResponse struct { func (x *SdkFilesystemCheckStartResponse) Reset() { *x = SdkFilesystemCheckStartResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[308] + mi := &file_api_api_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24636,7 +25470,7 @@ func (x *SdkFilesystemCheckStartResponse) String() string { func (*SdkFilesystemCheckStartResponse) ProtoMessage() {} func (x *SdkFilesystemCheckStartResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[308] + mi := &file_api_api_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24649,7 +25483,7 @@ func (x *SdkFilesystemCheckStartResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemCheckStartResponse.ProtoReflect.Descriptor instead. func (*SdkFilesystemCheckStartResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{308} + return file_api_api_proto_rawDescGZIP(), []int{318} } func (x *SdkFilesystemCheckStartResponse) GetStatus() FilesystemCheck_FilesystemCheckStatus { @@ -24680,7 +25514,7 @@ type SdkFilesystemCheckStatusRequest struct { func (x *SdkFilesystemCheckStatusRequest) Reset() { *x = SdkFilesystemCheckStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[309] + mi := &file_api_api_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24693,7 +25527,7 @@ func (x *SdkFilesystemCheckStatusRequest) String() string { func (*SdkFilesystemCheckStatusRequest) ProtoMessage() {} func (x *SdkFilesystemCheckStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[309] + mi := &file_api_api_proto_msgTypes[319] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24706,7 +25540,7 @@ func (x *SdkFilesystemCheckStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemCheckStatusRequest.ProtoReflect.Descriptor instead. func (*SdkFilesystemCheckStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{309} + return file_api_api_proto_rawDescGZIP(), []int{319} } func (x *SdkFilesystemCheckStatusRequest) GetVolumeId() string { @@ -24737,7 +25571,7 @@ type SdkFilesystemCheckStatusResponse struct { func (x *SdkFilesystemCheckStatusResponse) Reset() { *x = SdkFilesystemCheckStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[310] + mi := &file_api_api_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24750,7 +25584,7 @@ func (x *SdkFilesystemCheckStatusResponse) String() string { func (*SdkFilesystemCheckStatusResponse) ProtoMessage() {} func (x *SdkFilesystemCheckStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[310] + mi := &file_api_api_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24763,7 +25597,7 @@ func (x *SdkFilesystemCheckStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemCheckStatusResponse.ProtoReflect.Descriptor instead. func (*SdkFilesystemCheckStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{310} + return file_api_api_proto_rawDescGZIP(), []int{320} } func (x *SdkFilesystemCheckStatusResponse) GetStatus() FilesystemCheck_FilesystemCheckStatus { @@ -24808,7 +25642,7 @@ type SdkFilesystemCheckStopRequest struct { func (x *SdkFilesystemCheckStopRequest) Reset() { *x = SdkFilesystemCheckStopRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[311] + mi := &file_api_api_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24821,7 +25655,7 @@ func (x *SdkFilesystemCheckStopRequest) String() string { func (*SdkFilesystemCheckStopRequest) ProtoMessage() {} func (x *SdkFilesystemCheckStopRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[311] + mi := &file_api_api_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24834,7 +25668,7 @@ func (x *SdkFilesystemCheckStopRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemCheckStopRequest.ProtoReflect.Descriptor instead. func (*SdkFilesystemCheckStopRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{311} + return file_api_api_proto_rawDescGZIP(), []int{321} } func (x *SdkFilesystemCheckStopRequest) GetVolumeId() string { @@ -24854,7 +25688,7 @@ type SdkFilesystemCheckStopResponse struct { func (x *SdkFilesystemCheckStopResponse) Reset() { *x = SdkFilesystemCheckStopResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[312] + mi := &file_api_api_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24867,7 +25701,7 @@ func (x *SdkFilesystemCheckStopResponse) String() string { func (*SdkFilesystemCheckStopResponse) ProtoMessage() {} func (x *SdkFilesystemCheckStopResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[312] + mi := &file_api_api_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24880,7 +25714,7 @@ func (x *SdkFilesystemCheckStopResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkFilesystemCheckStopResponse.ProtoReflect.Descriptor instead. func (*SdkFilesystemCheckStopResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{312} + return file_api_api_proto_rawDescGZIP(), []int{322} } // Empty request @@ -24893,7 +25727,7 @@ type SdkIdentityCapabilitiesRequest struct { func (x *SdkIdentityCapabilitiesRequest) Reset() { *x = SdkIdentityCapabilitiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[313] + mi := &file_api_api_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24906,7 +25740,7 @@ func (x *SdkIdentityCapabilitiesRequest) String() string { func (*SdkIdentityCapabilitiesRequest) ProtoMessage() {} func (x *SdkIdentityCapabilitiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[313] + mi := &file_api_api_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24919,7 +25753,7 @@ func (x *SdkIdentityCapabilitiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkIdentityCapabilitiesRequest.ProtoReflect.Descriptor instead. func (*SdkIdentityCapabilitiesRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{313} + return file_api_api_proto_rawDescGZIP(), []int{323} } // Defines a response containing the capabilities of the cluster @@ -24935,7 +25769,7 @@ type SdkIdentityCapabilitiesResponse struct { func (x *SdkIdentityCapabilitiesResponse) Reset() { *x = SdkIdentityCapabilitiesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[314] + mi := &file_api_api_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24948,7 +25782,7 @@ func (x *SdkIdentityCapabilitiesResponse) String() string { func (*SdkIdentityCapabilitiesResponse) ProtoMessage() {} func (x *SdkIdentityCapabilitiesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[314] + mi := &file_api_api_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24961,7 +25795,7 @@ func (x *SdkIdentityCapabilitiesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkIdentityCapabilitiesResponse.ProtoReflect.Descriptor instead. func (*SdkIdentityCapabilitiesResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{314} + return file_api_api_proto_rawDescGZIP(), []int{324} } func (x *SdkIdentityCapabilitiesResponse) GetCapabilities() []*SdkServiceCapability { @@ -24981,7 +25815,7 @@ type SdkIdentityVersionRequest struct { func (x *SdkIdentityVersionRequest) Reset() { *x = SdkIdentityVersionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[315] + mi := &file_api_api_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24994,7 +25828,7 @@ func (x *SdkIdentityVersionRequest) String() string { func (*SdkIdentityVersionRequest) ProtoMessage() {} func (x *SdkIdentityVersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[315] + mi := &file_api_api_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25007,7 +25841,7 @@ func (x *SdkIdentityVersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkIdentityVersionRequest.ProtoReflect.Descriptor instead. func (*SdkIdentityVersionRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{315} + return file_api_api_proto_rawDescGZIP(), []int{325} } // Defines a response containing version information @@ -25025,7 +25859,7 @@ type SdkIdentityVersionResponse struct { func (x *SdkIdentityVersionResponse) Reset() { *x = SdkIdentityVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[316] + mi := &file_api_api_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25038,7 +25872,7 @@ func (x *SdkIdentityVersionResponse) String() string { func (*SdkIdentityVersionResponse) ProtoMessage() {} func (x *SdkIdentityVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[316] + mi := &file_api_api_proto_msgTypes[326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25051,7 +25885,7 @@ func (x *SdkIdentityVersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkIdentityVersionResponse.ProtoReflect.Descriptor instead. func (*SdkIdentityVersionResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{316} + return file_api_api_proto_rawDescGZIP(), []int{326} } func (x *SdkIdentityVersionResponse) GetSdkVersion() *SdkVersion { @@ -25085,7 +25919,7 @@ type SdkServiceCapability struct { func (x *SdkServiceCapability) Reset() { *x = SdkServiceCapability{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[317] + mi := &file_api_api_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25098,7 +25932,7 @@ func (x *SdkServiceCapability) String() string { func (*SdkServiceCapability) ProtoMessage() {} func (x *SdkServiceCapability) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[317] + mi := &file_api_api_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25111,7 +25945,7 @@ func (x *SdkServiceCapability) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkServiceCapability.ProtoReflect.Descriptor instead. func (*SdkServiceCapability) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{317} + return file_api_api_proto_rawDescGZIP(), []int{327} } func (m *SdkServiceCapability) GetType() isSdkServiceCapability_Type { @@ -25161,7 +25995,7 @@ type SdkVersion struct { func (x *SdkVersion) Reset() { *x = SdkVersion{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[318] + mi := &file_api_api_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25174,7 +26008,7 @@ func (x *SdkVersion) String() string { func (*SdkVersion) ProtoMessage() {} func (x *SdkVersion) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[318] + mi := &file_api_api_proto_msgTypes[328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25187,7 +26021,7 @@ func (x *SdkVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVersion.ProtoReflect.Descriptor instead. func (*SdkVersion) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{318} + return file_api_api_proto_rawDescGZIP(), []int{328} } func (x *SdkVersion) GetMajor() int32 { @@ -25235,7 +26069,7 @@ type StorageVersion struct { func (x *StorageVersion) Reset() { *x = StorageVersion{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[319] + mi := &file_api_api_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25248,7 +26082,7 @@ func (x *StorageVersion) String() string { func (*StorageVersion) ProtoMessage() {} func (x *StorageVersion) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[319] + mi := &file_api_api_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25261,7 +26095,7 @@ func (x *StorageVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageVersion.ProtoReflect.Descriptor instead. func (*StorageVersion) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{319} + return file_api_api_proto_rawDescGZIP(), []int{329} } func (x *StorageVersion) GetDriver() string { @@ -25294,7 +26128,7 @@ type CloudMigrate struct { func (x *CloudMigrate) Reset() { *x = CloudMigrate{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[320] + mi := &file_api_api_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25307,7 +26141,7 @@ func (x *CloudMigrate) String() string { func (*CloudMigrate) ProtoMessage() {} func (x *CloudMigrate) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[320] + mi := &file_api_api_proto_msgTypes[330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25320,7 +26154,7 @@ func (x *CloudMigrate) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrate.ProtoReflect.Descriptor instead. func (*CloudMigrate) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{320} + return file_api_api_proto_rawDescGZIP(), []int{330} } // Request to start a cloud migration @@ -25343,7 +26177,7 @@ type CloudMigrateStartRequest struct { func (x *CloudMigrateStartRequest) Reset() { *x = CloudMigrateStartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[321] + mi := &file_api_api_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25356,7 +26190,7 @@ func (x *CloudMigrateStartRequest) String() string { func (*CloudMigrateStartRequest) ProtoMessage() {} func (x *CloudMigrateStartRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[321] + mi := &file_api_api_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25369,7 +26203,7 @@ func (x *CloudMigrateStartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateStartRequest.ProtoReflect.Descriptor instead. func (*CloudMigrateStartRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{321} + return file_api_api_proto_rawDescGZIP(), []int{331} } func (x *CloudMigrateStartRequest) GetOperation() CloudMigrate_OperationType { @@ -25421,7 +26255,7 @@ type SdkCloudMigrateStartRequest struct { func (x *SdkCloudMigrateStartRequest) Reset() { *x = SdkCloudMigrateStartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[322] + mi := &file_api_api_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25434,7 +26268,7 @@ func (x *SdkCloudMigrateStartRequest) String() string { func (*SdkCloudMigrateStartRequest) ProtoMessage() {} func (x *SdkCloudMigrateStartRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[322] + mi := &file_api_api_proto_msgTypes[332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25447,7 +26281,7 @@ func (x *SdkCloudMigrateStartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudMigrateStartRequest.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStartRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{322} + return file_api_api_proto_rawDescGZIP(), []int{332} } func (x *SdkCloudMigrateStartRequest) GetClusterId() string { @@ -25530,7 +26364,7 @@ type CloudMigrateStartResponse struct { func (x *CloudMigrateStartResponse) Reset() { *x = CloudMigrateStartResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[323] + mi := &file_api_api_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25543,7 +26377,7 @@ func (x *CloudMigrateStartResponse) String() string { func (*CloudMigrateStartResponse) ProtoMessage() {} func (x *CloudMigrateStartResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[323] + mi := &file_api_api_proto_msgTypes[333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25556,7 +26390,7 @@ func (x *CloudMigrateStartResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateStartResponse.ProtoReflect.Descriptor instead. func (*CloudMigrateStartResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{323} + return file_api_api_proto_rawDescGZIP(), []int{333} } func (x *CloudMigrateStartResponse) GetTaskId() string { @@ -25579,7 +26413,7 @@ type SdkCloudMigrateStartResponse struct { func (x *SdkCloudMigrateStartResponse) Reset() { *x = SdkCloudMigrateStartResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[324] + mi := &file_api_api_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25592,7 +26426,7 @@ func (x *SdkCloudMigrateStartResponse) String() string { func (*SdkCloudMigrateStartResponse) ProtoMessage() {} func (x *SdkCloudMigrateStartResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[324] + mi := &file_api_api_proto_msgTypes[334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25605,7 +26439,7 @@ func (x *SdkCloudMigrateStartResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudMigrateStartResponse.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStartResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{324} + return file_api_api_proto_rawDescGZIP(), []int{334} } func (x *SdkCloudMigrateStartResponse) GetResult() *CloudMigrateStartResponse { @@ -25628,7 +26462,7 @@ type CloudMigrateCancelRequest struct { func (x *CloudMigrateCancelRequest) Reset() { *x = CloudMigrateCancelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[325] + mi := &file_api_api_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25641,7 +26475,7 @@ func (x *CloudMigrateCancelRequest) String() string { func (*CloudMigrateCancelRequest) ProtoMessage() {} func (x *CloudMigrateCancelRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[325] + mi := &file_api_api_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25654,7 +26488,7 @@ func (x *CloudMigrateCancelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateCancelRequest.ProtoReflect.Descriptor instead. func (*CloudMigrateCancelRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{325} + return file_api_api_proto_rawDescGZIP(), []int{335} } func (x *CloudMigrateCancelRequest) GetTaskId() string { @@ -25677,7 +26511,7 @@ type SdkCloudMigrateCancelRequest struct { func (x *SdkCloudMigrateCancelRequest) Reset() { *x = SdkCloudMigrateCancelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[326] + mi := &file_api_api_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25690,7 +26524,7 @@ func (x *SdkCloudMigrateCancelRequest) String() string { func (*SdkCloudMigrateCancelRequest) ProtoMessage() {} func (x *SdkCloudMigrateCancelRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[326] + mi := &file_api_api_proto_msgTypes[336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25703,7 +26537,7 @@ func (x *SdkCloudMigrateCancelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudMigrateCancelRequest.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateCancelRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{326} + return file_api_api_proto_rawDescGZIP(), []int{336} } func (x *SdkCloudMigrateCancelRequest) GetRequest() *CloudMigrateCancelRequest { @@ -25723,7 +26557,7 @@ type SdkCloudMigrateCancelResponse struct { func (x *SdkCloudMigrateCancelResponse) Reset() { *x = SdkCloudMigrateCancelResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[327] + mi := &file_api_api_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25736,7 +26570,7 @@ func (x *SdkCloudMigrateCancelResponse) String() string { func (*SdkCloudMigrateCancelResponse) ProtoMessage() {} func (x *SdkCloudMigrateCancelResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[327] + mi := &file_api_api_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25749,7 +26583,7 @@ func (x *SdkCloudMigrateCancelResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudMigrateCancelResponse.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateCancelResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{327} + return file_api_api_proto_rawDescGZIP(), []int{337} } type CloudMigrateInfo struct { @@ -25792,7 +26626,7 @@ type CloudMigrateInfo struct { func (x *CloudMigrateInfo) Reset() { *x = CloudMigrateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[328] + mi := &file_api_api_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25805,7 +26639,7 @@ func (x *CloudMigrateInfo) String() string { func (*CloudMigrateInfo) ProtoMessage() {} func (x *CloudMigrateInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[328] + mi := &file_api_api_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25818,7 +26652,7 @@ func (x *CloudMigrateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateInfo.ProtoReflect.Descriptor instead. func (*CloudMigrateInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{328} + return file_api_api_proto_rawDescGZIP(), []int{338} } func (x *CloudMigrateInfo) GetTaskId() string { @@ -25937,7 +26771,7 @@ type CloudMigrateInfoList struct { func (x *CloudMigrateInfoList) Reset() { *x = CloudMigrateInfoList{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[329] + mi := &file_api_api_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25950,7 +26784,7 @@ func (x *CloudMigrateInfoList) String() string { func (*CloudMigrateInfoList) ProtoMessage() {} func (x *CloudMigrateInfoList) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[329] + mi := &file_api_api_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25963,7 +26797,7 @@ func (x *CloudMigrateInfoList) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateInfoList.ProtoReflect.Descriptor instead. func (*CloudMigrateInfoList) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{329} + return file_api_api_proto_rawDescGZIP(), []int{339} } func (x *CloudMigrateInfoList) GetList() []*CloudMigrateInfo { @@ -25987,7 +26821,7 @@ type SdkCloudMigrateStatusRequest struct { func (x *SdkCloudMigrateStatusRequest) Reset() { *x = SdkCloudMigrateStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[330] + mi := &file_api_api_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26000,7 +26834,7 @@ func (x *SdkCloudMigrateStatusRequest) String() string { func (*SdkCloudMigrateStatusRequest) ProtoMessage() {} func (x *SdkCloudMigrateStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[330] + mi := &file_api_api_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26013,7 +26847,7 @@ func (x *SdkCloudMigrateStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudMigrateStatusRequest.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{330} + return file_api_api_proto_rawDescGZIP(), []int{340} } func (x *SdkCloudMigrateStatusRequest) GetRequest() *CloudMigrateStatusRequest { @@ -26038,7 +26872,7 @@ type CloudMigrateStatusRequest struct { func (x *CloudMigrateStatusRequest) Reset() { *x = CloudMigrateStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[331] + mi := &file_api_api_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26051,7 +26885,7 @@ func (x *CloudMigrateStatusRequest) String() string { func (*CloudMigrateStatusRequest) ProtoMessage() {} func (x *CloudMigrateStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[331] + mi := &file_api_api_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26064,7 +26898,7 @@ func (x *CloudMigrateStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateStatusRequest.ProtoReflect.Descriptor instead. func (*CloudMigrateStatusRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{331} + return file_api_api_proto_rawDescGZIP(), []int{341} } func (x *CloudMigrateStatusRequest) GetTaskId() string { @@ -26094,7 +26928,7 @@ type CloudMigrateStatusResponse struct { func (x *CloudMigrateStatusResponse) Reset() { *x = CloudMigrateStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[332] + mi := &file_api_api_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26107,7 +26941,7 @@ func (x *CloudMigrateStatusResponse) String() string { func (*CloudMigrateStatusResponse) ProtoMessage() {} func (x *CloudMigrateStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[332] + mi := &file_api_api_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26120,7 +26954,7 @@ func (x *CloudMigrateStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CloudMigrateStatusResponse.ProtoReflect.Descriptor instead. func (*CloudMigrateStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{332} + return file_api_api_proto_rawDescGZIP(), []int{342} } func (x *CloudMigrateStatusResponse) GetInfo() map[string]*CloudMigrateInfoList { @@ -26143,7 +26977,7 @@ type SdkCloudMigrateStatusResponse struct { func (x *SdkCloudMigrateStatusResponse) Reset() { *x = SdkCloudMigrateStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[333] + mi := &file_api_api_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26156,7 +26990,7 @@ func (x *SdkCloudMigrateStatusResponse) String() string { func (*SdkCloudMigrateStatusResponse) ProtoMessage() {} func (x *SdkCloudMigrateStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[333] + mi := &file_api_api_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26169,7 +27003,7 @@ func (x *SdkCloudMigrateStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkCloudMigrateStatusResponse.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStatusResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{333} + return file_api_api_proto_rawDescGZIP(), []int{343} } func (x *SdkCloudMigrateStatusResponse) GetResult() *CloudMigrateStatusResponse { @@ -26188,7 +27022,7 @@ type ClusterPairMode struct { func (x *ClusterPairMode) Reset() { *x = ClusterPairMode{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[334] + mi := &file_api_api_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26201,7 +27035,7 @@ func (x *ClusterPairMode) String() string { func (*ClusterPairMode) ProtoMessage() {} func (x *ClusterPairMode) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[334] + mi := &file_api_api_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26214,7 +27048,7 @@ func (x *ClusterPairMode) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairMode.ProtoReflect.Descriptor instead. func (*ClusterPairMode) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{334} + return file_api_api_proto_rawDescGZIP(), []int{344} } // Used to send a request to create a cluster pair @@ -26241,7 +27075,7 @@ type ClusterPairCreateRequest struct { func (x *ClusterPairCreateRequest) Reset() { *x = ClusterPairCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[335] + mi := &file_api_api_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26254,7 +27088,7 @@ func (x *ClusterPairCreateRequest) String() string { func (*ClusterPairCreateRequest) ProtoMessage() {} func (x *ClusterPairCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[335] + mi := &file_api_api_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26267,7 +27101,7 @@ func (x *ClusterPairCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairCreateRequest.ProtoReflect.Descriptor instead. func (*ClusterPairCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{335} + return file_api_api_proto_rawDescGZIP(), []int{345} } func (x *ClusterPairCreateRequest) GetRemoteClusterIp() string { @@ -26327,7 +27161,7 @@ type ClusterPairCreateResponse struct { func (x *ClusterPairCreateResponse) Reset() { *x = ClusterPairCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[336] + mi := &file_api_api_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26340,7 +27174,7 @@ func (x *ClusterPairCreateResponse) String() string { func (*ClusterPairCreateResponse) ProtoMessage() {} func (x *ClusterPairCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[336] + mi := &file_api_api_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26353,7 +27187,7 @@ func (x *ClusterPairCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairCreateResponse.ProtoReflect.Descriptor instead. func (*ClusterPairCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{336} + return file_api_api_proto_rawDescGZIP(), []int{346} } func (x *ClusterPairCreateResponse) GetRemoteClusterId() string { @@ -26382,7 +27216,7 @@ type SdkClusterPairCreateRequest struct { func (x *SdkClusterPairCreateRequest) Reset() { *x = SdkClusterPairCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[337] + mi := &file_api_api_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26395,7 +27229,7 @@ func (x *SdkClusterPairCreateRequest) String() string { func (*SdkClusterPairCreateRequest) ProtoMessage() {} func (x *SdkClusterPairCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[337] + mi := &file_api_api_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26408,7 +27242,7 @@ func (x *SdkClusterPairCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairCreateRequest.ProtoReflect.Descriptor instead. func (*SdkClusterPairCreateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{337} + return file_api_api_proto_rawDescGZIP(), []int{347} } func (x *SdkClusterPairCreateRequest) GetRequest() *ClusterPairCreateRequest { @@ -26431,7 +27265,7 @@ type SdkClusterPairCreateResponse struct { func (x *SdkClusterPairCreateResponse) Reset() { *x = SdkClusterPairCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[338] + mi := &file_api_api_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26444,7 +27278,7 @@ func (x *SdkClusterPairCreateResponse) String() string { func (*SdkClusterPairCreateResponse) ProtoMessage() {} func (x *SdkClusterPairCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[338] + mi := &file_api_api_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26457,7 +27291,7 @@ func (x *SdkClusterPairCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairCreateResponse.ProtoReflect.Descriptor instead. func (*SdkClusterPairCreateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{338} + return file_api_api_proto_rawDescGZIP(), []int{348} } func (x *SdkClusterPairCreateResponse) GetResult() *ClusterPairCreateResponse { @@ -26487,7 +27321,7 @@ type ClusterPairProcessRequest struct { func (x *ClusterPairProcessRequest) Reset() { *x = ClusterPairProcessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[339] + mi := &file_api_api_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26500,7 +27334,7 @@ func (x *ClusterPairProcessRequest) String() string { func (*ClusterPairProcessRequest) ProtoMessage() {} func (x *ClusterPairProcessRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[339] + mi := &file_api_api_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26513,7 +27347,7 @@ func (x *ClusterPairProcessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairProcessRequest.ProtoReflect.Descriptor instead. func (*ClusterPairProcessRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{339} + return file_api_api_proto_rawDescGZIP(), []int{349} } func (x *ClusterPairProcessRequest) GetSourceClusterId() string { @@ -26564,7 +27398,7 @@ type ClusterPairProcessResponse struct { func (x *ClusterPairProcessResponse) Reset() { *x = ClusterPairProcessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[340] + mi := &file_api_api_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26577,7 +27411,7 @@ func (x *ClusterPairProcessResponse) String() string { func (*ClusterPairProcessResponse) ProtoMessage() {} func (x *ClusterPairProcessResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[340] + mi := &file_api_api_proto_msgTypes[350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26590,7 +27424,7 @@ func (x *ClusterPairProcessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairProcessResponse.ProtoReflect.Descriptor instead. func (*ClusterPairProcessResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{340} + return file_api_api_proto_rawDescGZIP(), []int{350} } func (x *ClusterPairProcessResponse) GetRemoteClusterId() string { @@ -26634,7 +27468,7 @@ type SdkClusterPairDeleteRequest struct { func (x *SdkClusterPairDeleteRequest) Reset() { *x = SdkClusterPairDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[341] + mi := &file_api_api_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26647,7 +27481,7 @@ func (x *SdkClusterPairDeleteRequest) String() string { func (*SdkClusterPairDeleteRequest) ProtoMessage() {} func (x *SdkClusterPairDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[341] + mi := &file_api_api_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26660,7 +27494,7 @@ func (x *SdkClusterPairDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairDeleteRequest.ProtoReflect.Descriptor instead. func (*SdkClusterPairDeleteRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{341} + return file_api_api_proto_rawDescGZIP(), []int{351} } func (x *SdkClusterPairDeleteRequest) GetClusterId() string { @@ -26680,7 +27514,7 @@ type SdkClusterPairDeleteResponse struct { func (x *SdkClusterPairDeleteResponse) Reset() { *x = SdkClusterPairDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[342] + mi := &file_api_api_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26693,7 +27527,7 @@ func (x *SdkClusterPairDeleteResponse) String() string { func (*SdkClusterPairDeleteResponse) ProtoMessage() {} func (x *SdkClusterPairDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[342] + mi := &file_api_api_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26706,7 +27540,7 @@ func (x *SdkClusterPairDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairDeleteResponse.ProtoReflect.Descriptor instead. func (*SdkClusterPairDeleteResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{342} + return file_api_api_proto_rawDescGZIP(), []int{352} } // Response to get the cluster token @@ -26722,7 +27556,7 @@ type ClusterPairTokenGetResponse struct { func (x *ClusterPairTokenGetResponse) Reset() { *x = ClusterPairTokenGetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[343] + mi := &file_api_api_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26735,7 +27569,7 @@ func (x *ClusterPairTokenGetResponse) String() string { func (*ClusterPairTokenGetResponse) ProtoMessage() {} func (x *ClusterPairTokenGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[343] + mi := &file_api_api_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26748,7 +27582,7 @@ func (x *ClusterPairTokenGetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairTokenGetResponse.ProtoReflect.Descriptor instead. func (*ClusterPairTokenGetResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{343} + return file_api_api_proto_rawDescGZIP(), []int{353} } func (x *ClusterPairTokenGetResponse) GetToken() string { @@ -26768,7 +27602,7 @@ type SdkClusterPairGetTokenRequest struct { func (x *SdkClusterPairGetTokenRequest) Reset() { *x = SdkClusterPairGetTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[344] + mi := &file_api_api_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26781,7 +27615,7 @@ func (x *SdkClusterPairGetTokenRequest) String() string { func (*SdkClusterPairGetTokenRequest) ProtoMessage() {} func (x *SdkClusterPairGetTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[344] + mi := &file_api_api_proto_msgTypes[354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26794,7 +27628,7 @@ func (x *SdkClusterPairGetTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairGetTokenRequest.ProtoReflect.Descriptor instead. func (*SdkClusterPairGetTokenRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{344} + return file_api_api_proto_rawDescGZIP(), []int{354} } // Defines a response for the token request @@ -26810,7 +27644,7 @@ type SdkClusterPairGetTokenResponse struct { func (x *SdkClusterPairGetTokenResponse) Reset() { *x = SdkClusterPairGetTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[345] + mi := &file_api_api_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26823,7 +27657,7 @@ func (x *SdkClusterPairGetTokenResponse) String() string { func (*SdkClusterPairGetTokenResponse) ProtoMessage() {} func (x *SdkClusterPairGetTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[345] + mi := &file_api_api_proto_msgTypes[355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26836,7 +27670,7 @@ func (x *SdkClusterPairGetTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairGetTokenResponse.ProtoReflect.Descriptor instead. func (*SdkClusterPairGetTokenResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{345} + return file_api_api_proto_rawDescGZIP(), []int{355} } func (x *SdkClusterPairGetTokenResponse) GetResult() *ClusterPairTokenGetResponse { @@ -26856,7 +27690,7 @@ type SdkClusterPairResetTokenRequest struct { func (x *SdkClusterPairResetTokenRequest) Reset() { *x = SdkClusterPairResetTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[346] + mi := &file_api_api_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26869,7 +27703,7 @@ func (x *SdkClusterPairResetTokenRequest) String() string { func (*SdkClusterPairResetTokenRequest) ProtoMessage() {} func (x *SdkClusterPairResetTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[346] + mi := &file_api_api_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26882,7 +27716,7 @@ func (x *SdkClusterPairResetTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairResetTokenRequest.ProtoReflect.Descriptor instead. func (*SdkClusterPairResetTokenRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{346} + return file_api_api_proto_rawDescGZIP(), []int{356} } // Defines a response for the token request @@ -26898,7 +27732,7 @@ type SdkClusterPairResetTokenResponse struct { func (x *SdkClusterPairResetTokenResponse) Reset() { *x = SdkClusterPairResetTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[347] + mi := &file_api_api_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26911,7 +27745,7 @@ func (x *SdkClusterPairResetTokenResponse) String() string { func (*SdkClusterPairResetTokenResponse) ProtoMessage() {} func (x *SdkClusterPairResetTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[347] + mi := &file_api_api_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26924,7 +27758,7 @@ func (x *SdkClusterPairResetTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairResetTokenResponse.ProtoReflect.Descriptor instead. func (*SdkClusterPairResetTokenResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{347} + return file_api_api_proto_rawDescGZIP(), []int{357} } func (x *SdkClusterPairResetTokenResponse) GetResult() *ClusterPairTokenGetResponse { @@ -26962,7 +27796,7 @@ type ClusterPairInfo struct { func (x *ClusterPairInfo) Reset() { *x = ClusterPairInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[348] + mi := &file_api_api_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26975,7 +27809,7 @@ func (x *ClusterPairInfo) String() string { func (*ClusterPairInfo) ProtoMessage() {} func (x *ClusterPairInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[348] + mi := &file_api_api_proto_msgTypes[358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26988,7 +27822,7 @@ func (x *ClusterPairInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairInfo.ProtoReflect.Descriptor instead. func (*ClusterPairInfo) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{348} + return file_api_api_proto_rawDescGZIP(), []int{358} } func (x *ClusterPairInfo) GetId() string { @@ -27060,7 +27894,7 @@ type SdkClusterPairInspectRequest struct { func (x *SdkClusterPairInspectRequest) Reset() { *x = SdkClusterPairInspectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[349] + mi := &file_api_api_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27073,7 +27907,7 @@ func (x *SdkClusterPairInspectRequest) String() string { func (*SdkClusterPairInspectRequest) ProtoMessage() {} func (x *SdkClusterPairInspectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[349] + mi := &file_api_api_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27086,7 +27920,7 @@ func (x *SdkClusterPairInspectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairInspectRequest.ProtoReflect.Descriptor instead. func (*SdkClusterPairInspectRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{349} + return file_api_api_proto_rawDescGZIP(), []int{359} } func (x *SdkClusterPairInspectRequest) GetId() string { @@ -27109,7 +27943,7 @@ type ClusterPairGetResponse struct { func (x *ClusterPairGetResponse) Reset() { *x = ClusterPairGetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[350] + mi := &file_api_api_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27122,7 +27956,7 @@ func (x *ClusterPairGetResponse) String() string { func (*ClusterPairGetResponse) ProtoMessage() {} func (x *ClusterPairGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[350] + mi := &file_api_api_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27135,7 +27969,7 @@ func (x *ClusterPairGetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairGetResponse.ProtoReflect.Descriptor instead. func (*ClusterPairGetResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{350} + return file_api_api_proto_rawDescGZIP(), []int{360} } func (x *ClusterPairGetResponse) GetPairInfo() *ClusterPairInfo { @@ -27158,7 +27992,7 @@ type SdkClusterPairInspectResponse struct { func (x *SdkClusterPairInspectResponse) Reset() { *x = SdkClusterPairInspectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[351] + mi := &file_api_api_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27171,7 +28005,7 @@ func (x *SdkClusterPairInspectResponse) String() string { func (*SdkClusterPairInspectResponse) ProtoMessage() {} func (x *SdkClusterPairInspectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[351] + mi := &file_api_api_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27184,7 +28018,7 @@ func (x *SdkClusterPairInspectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairInspectResponse.ProtoReflect.Descriptor instead. func (*SdkClusterPairInspectResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{351} + return file_api_api_proto_rawDescGZIP(), []int{361} } func (x *SdkClusterPairInspectResponse) GetResult() *ClusterPairGetResponse { @@ -27204,7 +28038,7 @@ type SdkClusterPairEnumerateRequest struct { func (x *SdkClusterPairEnumerateRequest) Reset() { *x = SdkClusterPairEnumerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[352] + mi := &file_api_api_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27217,7 +28051,7 @@ func (x *SdkClusterPairEnumerateRequest) String() string { func (*SdkClusterPairEnumerateRequest) ProtoMessage() {} func (x *SdkClusterPairEnumerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[352] + mi := &file_api_api_proto_msgTypes[362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27230,7 +28064,7 @@ func (x *SdkClusterPairEnumerateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairEnumerateRequest.ProtoReflect.Descriptor instead. func (*SdkClusterPairEnumerateRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{352} + return file_api_api_proto_rawDescGZIP(), []int{362} } // Response to enumerate all the cluster pairs @@ -27248,7 +28082,7 @@ type ClusterPairsEnumerateResponse struct { func (x *ClusterPairsEnumerateResponse) Reset() { *x = ClusterPairsEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[353] + mi := &file_api_api_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27261,7 +28095,7 @@ func (x *ClusterPairsEnumerateResponse) String() string { func (*ClusterPairsEnumerateResponse) ProtoMessage() {} func (x *ClusterPairsEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[353] + mi := &file_api_api_proto_msgTypes[363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27274,7 +28108,7 @@ func (x *ClusterPairsEnumerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterPairsEnumerateResponse.ProtoReflect.Descriptor instead. func (*ClusterPairsEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{353} + return file_api_api_proto_rawDescGZIP(), []int{363} } func (x *ClusterPairsEnumerateResponse) GetDefaultId() string { @@ -27304,7 +28138,7 @@ type SdkClusterPairEnumerateResponse struct { func (x *SdkClusterPairEnumerateResponse) Reset() { *x = SdkClusterPairEnumerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[354] + mi := &file_api_api_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27317,7 +28151,7 @@ func (x *SdkClusterPairEnumerateResponse) String() string { func (*SdkClusterPairEnumerateResponse) ProtoMessage() {} func (x *SdkClusterPairEnumerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[354] + mi := &file_api_api_proto_msgTypes[364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27330,7 +28164,7 @@ func (x *SdkClusterPairEnumerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkClusterPairEnumerateResponse.ProtoReflect.Descriptor instead. func (*SdkClusterPairEnumerateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{354} + return file_api_api_proto_rawDescGZIP(), []int{364} } func (x *SdkClusterPairEnumerateResponse) GetResult() *ClusterPairsEnumerateResponse { @@ -27362,7 +28196,7 @@ type Catalog struct { func (x *Catalog) Reset() { *x = Catalog{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[355] + mi := &file_api_api_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27375,7 +28209,7 @@ func (x *Catalog) String() string { func (*Catalog) ProtoMessage() {} func (x *Catalog) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[355] + mi := &file_api_api_proto_msgTypes[365] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27388,7 +28222,7 @@ func (x *Catalog) ProtoReflect() protoreflect.Message { // Deprecated: Use Catalog.ProtoReflect.Descriptor instead. func (*Catalog) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{355} + return file_api_api_proto_rawDescGZIP(), []int{365} } func (x *Catalog) GetName() string { @@ -27447,7 +28281,7 @@ type Report struct { func (x *Report) Reset() { *x = Report{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[356] + mi := &file_api_api_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27460,7 +28294,7 @@ func (x *Report) String() string { func (*Report) ProtoMessage() {} func (x *Report) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[356] + mi := &file_api_api_proto_msgTypes[366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27473,7 +28307,7 @@ func (x *Report) ProtoReflect() protoreflect.Message { // Deprecated: Use Report.ProtoReflect.Descriptor instead. func (*Report) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{356} + return file_api_api_proto_rawDescGZIP(), []int{366} } func (x *Report) GetDirectories() int64 { @@ -27504,7 +28338,7 @@ type CatalogResponse struct { func (x *CatalogResponse) Reset() { *x = CatalogResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[357] + mi := &file_api_api_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27517,7 +28351,7 @@ func (x *CatalogResponse) String() string { func (*CatalogResponse) ProtoMessage() {} func (x *CatalogResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[357] + mi := &file_api_api_proto_msgTypes[367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27530,7 +28364,7 @@ func (x *CatalogResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CatalogResponse.ProtoReflect.Descriptor instead. func (*CatalogResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{357} + return file_api_api_proto_rawDescGZIP(), []int{367} } func (x *CatalogResponse) GetRoot() *Catalog { @@ -27565,7 +28399,7 @@ type LocateResponse struct { func (x *LocateResponse) Reset() { *x = LocateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[358] + mi := &file_api_api_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27578,7 +28412,7 @@ func (x *LocateResponse) String() string { func (*LocateResponse) ProtoMessage() {} func (x *LocateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[358] + mi := &file_api_api_proto_msgTypes[368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27591,7 +28425,7 @@ func (x *LocateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LocateResponse.ProtoReflect.Descriptor instead. func (*LocateResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{358} + return file_api_api_proto_rawDescGZIP(), []int{368} } func (x *LocateResponse) GetMounts() map[string]string { @@ -27630,7 +28464,7 @@ type VolumePlacementStrategy struct { func (x *VolumePlacementStrategy) Reset() { *x = VolumePlacementStrategy{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[359] + mi := &file_api_api_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27643,7 +28477,7 @@ func (x *VolumePlacementStrategy) String() string { func (*VolumePlacementStrategy) ProtoMessage() {} func (x *VolumePlacementStrategy) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[359] + mi := &file_api_api_proto_msgTypes[369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27656,7 +28490,7 @@ func (x *VolumePlacementStrategy) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumePlacementStrategy.ProtoReflect.Descriptor instead. func (*VolumePlacementStrategy) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{359} + return file_api_api_proto_rawDescGZIP(), []int{369} } func (x *VolumePlacementStrategy) GetReplicaAffinity() []*ReplicaPlacementSpec { @@ -27714,7 +28548,7 @@ type ReplicaPlacementSpec struct { func (x *ReplicaPlacementSpec) Reset() { *x = ReplicaPlacementSpec{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[360] + mi := &file_api_api_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27727,7 +28561,7 @@ func (x *ReplicaPlacementSpec) String() string { func (*ReplicaPlacementSpec) ProtoMessage() {} func (x *ReplicaPlacementSpec) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[360] + mi := &file_api_api_proto_msgTypes[370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27740,7 +28574,7 @@ func (x *ReplicaPlacementSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicaPlacementSpec.ProtoReflect.Descriptor instead. func (*ReplicaPlacementSpec) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{360} + return file_api_api_proto_rawDescGZIP(), []int{370} } func (x *ReplicaPlacementSpec) GetWeight() int64 { @@ -27801,7 +28635,7 @@ type VolumePlacementSpec struct { func (x *VolumePlacementSpec) Reset() { *x = VolumePlacementSpec{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[361] + mi := &file_api_api_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27814,7 +28648,7 @@ func (x *VolumePlacementSpec) String() string { func (*VolumePlacementSpec) ProtoMessage() {} func (x *VolumePlacementSpec) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[361] + mi := &file_api_api_proto_msgTypes[371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27827,7 +28661,7 @@ func (x *VolumePlacementSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumePlacementSpec.ProtoReflect.Descriptor instead. func (*VolumePlacementSpec) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{361} + return file_api_api_proto_rawDescGZIP(), []int{371} } func (x *VolumePlacementSpec) GetWeight() int64 { @@ -27880,7 +28714,7 @@ type LabelSelectorRequirement struct { func (x *LabelSelectorRequirement) Reset() { *x = LabelSelectorRequirement{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[362] + mi := &file_api_api_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27893,7 +28727,7 @@ func (x *LabelSelectorRequirement) String() string { func (*LabelSelectorRequirement) ProtoMessage() {} func (x *LabelSelectorRequirement) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[362] + mi := &file_api_api_proto_msgTypes[372] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27906,7 +28740,7 @@ func (x *LabelSelectorRequirement) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelSelectorRequirement.ProtoReflect.Descriptor instead. func (*LabelSelectorRequirement) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{362} + return file_api_api_proto_rawDescGZIP(), []int{372} } func (x *LabelSelectorRequirement) GetKey() string { @@ -27941,7 +28775,7 @@ type RestoreVolSnashotSchedule struct { func (x *RestoreVolSnashotSchedule) Reset() { *x = RestoreVolSnashotSchedule{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[363] + mi := &file_api_api_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27954,7 +28788,7 @@ func (x *RestoreVolSnashotSchedule) String() string { func (*RestoreVolSnashotSchedule) ProtoMessage() {} func (x *RestoreVolSnashotSchedule) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[363] + mi := &file_api_api_proto_msgTypes[373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27967,7 +28801,7 @@ func (x *RestoreVolSnashotSchedule) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreVolSnashotSchedule.ProtoReflect.Descriptor instead. func (*RestoreVolSnashotSchedule) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{363} + return file_api_api_proto_rawDescGZIP(), []int{373} } func (x *RestoreVolSnashotSchedule) GetSchedule() string { @@ -27988,7 +28822,7 @@ type RestoreVolStoragePolicy struct { func (x *RestoreVolStoragePolicy) Reset() { *x = RestoreVolStoragePolicy{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[364] + mi := &file_api_api_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28001,7 +28835,7 @@ func (x *RestoreVolStoragePolicy) String() string { func (*RestoreVolStoragePolicy) ProtoMessage() {} func (x *RestoreVolStoragePolicy) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[364] + mi := &file_api_api_proto_msgTypes[374] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28014,7 +28848,7 @@ func (x *RestoreVolStoragePolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreVolStoragePolicy.ProtoReflect.Descriptor instead. func (*RestoreVolStoragePolicy) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{364} + return file_api_api_proto_rawDescGZIP(), []int{374} } func (x *RestoreVolStoragePolicy) GetPolicy() string { @@ -28102,7 +28936,7 @@ type RestoreVolumeSpec struct { func (x *RestoreVolumeSpec) Reset() { *x = RestoreVolumeSpec{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[365] + mi := &file_api_api_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28115,7 +28949,7 @@ func (x *RestoreVolumeSpec) String() string { func (*RestoreVolumeSpec) ProtoMessage() {} func (x *RestoreVolumeSpec) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[365] + mi := &file_api_api_proto_msgTypes[375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28128,7 +28962,7 @@ func (x *RestoreVolumeSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreVolumeSpec.ProtoReflect.Descriptor instead. func (*RestoreVolumeSpec) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{365} + return file_api_api_proto_rawDescGZIP(), []int{375} } func (x *RestoreVolumeSpec) GetHaLevel() int64 { @@ -28365,7 +29199,7 @@ type SdkVolumeCatalogRequest struct { func (x *SdkVolumeCatalogRequest) Reset() { *x = SdkVolumeCatalogRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[366] + mi := &file_api_api_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28378,7 +29212,7 @@ func (x *SdkVolumeCatalogRequest) String() string { func (*SdkVolumeCatalogRequest) ProtoMessage() {} func (x *SdkVolumeCatalogRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[366] + mi := &file_api_api_proto_msgTypes[376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28391,7 +29225,7 @@ func (x *SdkVolumeCatalogRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCatalogRequest.ProtoReflect.Descriptor instead. func (*SdkVolumeCatalogRequest) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{366} + return file_api_api_proto_rawDescGZIP(), []int{376} } func (x *SdkVolumeCatalogRequest) GetVolumeId() string { @@ -28428,7 +29262,7 @@ type SdkVolumeCatalogResponse struct { func (x *SdkVolumeCatalogResponse) Reset() { *x = SdkVolumeCatalogResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[367] + mi := &file_api_api_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28441,7 +29275,7 @@ func (x *SdkVolumeCatalogResponse) String() string { func (*SdkVolumeCatalogResponse) ProtoMessage() {} func (x *SdkVolumeCatalogResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[367] + mi := &file_api_api_proto_msgTypes[377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28454,7 +29288,7 @@ func (x *SdkVolumeCatalogResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkVolumeCatalogResponse.ProtoReflect.Descriptor instead. func (*SdkVolumeCatalogResponse) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{367} + return file_api_api_proto_rawDescGZIP(), []int{377} } func (x *SdkVolumeCatalogResponse) GetCatalog() *CatalogResponse { @@ -28477,7 +29311,7 @@ type Ownership_PublicAccessControl struct { func (x *Ownership_PublicAccessControl) Reset() { *x = Ownership_PublicAccessControl{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[377] + mi := &file_api_api_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28490,7 +29324,7 @@ func (x *Ownership_PublicAccessControl) String() string { func (*Ownership_PublicAccessControl) ProtoMessage() {} func (x *Ownership_PublicAccessControl) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[377] + mi := &file_api_api_proto_msgTypes[387] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28542,7 +29376,7 @@ type Ownership_AccessControl struct { func (x *Ownership_AccessControl) Reset() { *x = Ownership_AccessControl{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[378] + mi := &file_api_api_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28555,7 +29389,7 @@ func (x *Ownership_AccessControl) String() string { func (*Ownership_AccessControl) ProtoMessage() {} func (x *Ownership_AccessControl) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[378] + mi := &file_api_api_proto_msgTypes[388] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28604,7 +29438,7 @@ type SdkServiceCapability_OpenStorageService struct { func (x *SdkServiceCapability_OpenStorageService) Reset() { *x = SdkServiceCapability_OpenStorageService{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[410] + mi := &file_api_api_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28617,7 +29451,7 @@ func (x *SdkServiceCapability_OpenStorageService) String() string { func (*SdkServiceCapability_OpenStorageService) ProtoMessage() {} func (x *SdkServiceCapability_OpenStorageService) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[410] + mi := &file_api_api_proto_msgTypes[421] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28630,7 +29464,7 @@ func (x *SdkServiceCapability_OpenStorageService) ProtoReflect() protoreflect.Me // Deprecated: Use SdkServiceCapability_OpenStorageService.ProtoReflect.Descriptor instead. func (*SdkServiceCapability_OpenStorageService) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{317, 0} + return file_api_api_proto_rawDescGZIP(), []int{327, 0} } func (x *SdkServiceCapability_OpenStorageService) GetType() SdkServiceCapability_OpenStorageService_Type { @@ -28652,7 +29486,7 @@ type SdkCloudMigrateStartRequest_MigrateVolume struct { func (x *SdkCloudMigrateStartRequest_MigrateVolume) Reset() { *x = SdkCloudMigrateStartRequest_MigrateVolume{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[412] + mi := &file_api_api_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28665,7 +29499,7 @@ func (x *SdkCloudMigrateStartRequest_MigrateVolume) String() string { func (*SdkCloudMigrateStartRequest_MigrateVolume) ProtoMessage() {} func (x *SdkCloudMigrateStartRequest_MigrateVolume) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[412] + mi := &file_api_api_proto_msgTypes[423] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28678,7 +29512,7 @@ func (x *SdkCloudMigrateStartRequest_MigrateVolume) ProtoReflect() protoreflect. // Deprecated: Use SdkCloudMigrateStartRequest_MigrateVolume.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStartRequest_MigrateVolume) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{322, 0} + return file_api_api_proto_rawDescGZIP(), []int{332, 0} } func (x *SdkCloudMigrateStartRequest_MigrateVolume) GetVolumeId() string { @@ -28700,7 +29534,7 @@ type SdkCloudMigrateStartRequest_MigrateVolumeGroup struct { func (x *SdkCloudMigrateStartRequest_MigrateVolumeGroup) Reset() { *x = SdkCloudMigrateStartRequest_MigrateVolumeGroup{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[413] + mi := &file_api_api_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28713,7 +29547,7 @@ func (x *SdkCloudMigrateStartRequest_MigrateVolumeGroup) String() string { func (*SdkCloudMigrateStartRequest_MigrateVolumeGroup) ProtoMessage() {} func (x *SdkCloudMigrateStartRequest_MigrateVolumeGroup) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[413] + mi := &file_api_api_proto_msgTypes[424] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28726,7 +29560,7 @@ func (x *SdkCloudMigrateStartRequest_MigrateVolumeGroup) ProtoReflect() protoref // Deprecated: Use SdkCloudMigrateStartRequest_MigrateVolumeGroup.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStartRequest_MigrateVolumeGroup) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{322, 1} + return file_api_api_proto_rawDescGZIP(), []int{332, 1} } func (x *SdkCloudMigrateStartRequest_MigrateVolumeGroup) GetGroupId() string { @@ -28746,7 +29580,7 @@ type SdkCloudMigrateStartRequest_MigrateAllVolumes struct { func (x *SdkCloudMigrateStartRequest_MigrateAllVolumes) Reset() { *x = SdkCloudMigrateStartRequest_MigrateAllVolumes{} if protoimpl.UnsafeEnabled { - mi := &file_api_api_proto_msgTypes[414] + mi := &file_api_api_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28759,7 +29593,7 @@ func (x *SdkCloudMigrateStartRequest_MigrateAllVolumes) String() string { func (*SdkCloudMigrateStartRequest_MigrateAllVolumes) ProtoMessage() {} func (x *SdkCloudMigrateStartRequest_MigrateAllVolumes) ProtoReflect() protoreflect.Message { - mi := &file_api_api_proto_msgTypes[414] + mi := &file_api_api_proto_msgTypes[425] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28772,7 +29606,7 @@ func (x *SdkCloudMigrateStartRequest_MigrateAllVolumes) ProtoReflect() protorefl // Deprecated: Use SdkCloudMigrateStartRequest_MigrateAllVolumes.ProtoReflect.Descriptor instead. func (*SdkCloudMigrateStartRequest_MigrateAllVolumes) Descriptor() ([]byte, []int) { - return file_api_api_proto_rawDescGZIP(), []int{322, 2} + return file_api_api_proto_rawDescGZIP(), []int{332, 2} } var File_api_api_proto protoreflect.FileDescriptor @@ -28972,7 +29806,7 @@ var file_api_api_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x70, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x22, - 0xe7, 0x01, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, + 0xf1, 0x01, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, @@ -28981,363 +29815,552 @@ var file_api_api_proto_rawDesc = []byte{ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x4d, 0x0a, 0x0b, 0x53, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x57, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x44, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x49, 0x50, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f, 0x41, 0x44, 0x42, - 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x52, 0x10, 0x03, 0x22, 0x50, 0x0a, 0x18, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x76, 0x34, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x34, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0f, - 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0e, 0x0a, 0x0a, 0x41, 0x47, 0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x22, 0x6c, 0x0a, 0x0c, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, 0x0a, 0x11, 0x66, - 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, - 0x34, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, - 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x4d, 0x6f, - 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, - 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0xda, 0x02, 0x0a, - 0x11, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, - 0x61, 0x63, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x76, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0xf3, 0x01, 0x0a, 0x0e, 0x46, 0x61, - 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, - 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x73, 0x65, 0x74, 0x75, 0x70, 0x4f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, - 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, - 0x72, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x55, 0x75, 0x69, 0x64, 0x22, - 0xcc, 0x02, 0x0a, 0x0a, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x41, - 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x63, 0x61, - 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, - 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x5f, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, + 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x52, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, + 0x45, 0x10, 0x04, 0x22, 0x50, 0x0a, 0x18, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x46, + 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, + 0x34, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x47, 0x47, + 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, + 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x22, 0x6c, 0x0a, 0x0c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, + 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x46, 0x61, 0x69, 0x6c, 0x6f, + 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 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, 0xda, 0x02, 0x0a, 0x11, 0x46, 0x61, 0x73, 0x74, 0x70, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, + 0x64, 0x65, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x65, + 0x76, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x63, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x63, 0x6c, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x76, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, + 0x65, 0x76, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, + 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, + 0x75, 0x69, 0x64, 0x22, 0x9a, 0x02, 0x0a, 0x0e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x74, 0x75, 0x70, 0x4f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, + 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, + 0x68, 0x52, 0x65, 0x70, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, + 0x22, 0xcc, 0x02, 0x0a, 0x0a, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x41, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x63, + 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x5f, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, + 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43, 0x41, 0x4e, + 0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x55, 0x4e, + 0x54, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x47, + 0x47, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x4d, 0x4f, 0x55, 0x4e, + 0x54, 0x10, 0x02, 0x22, 0x5a, 0x0a, 0x0a, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43, 0x41, 0x4e, 0x5f, - 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x55, 0x4e, 0x54, - 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, - 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x4d, 0x4f, 0x55, 0x4e, 0x54, - 0x10, 0x02, 0x22, 0x5a, 0x0a, 0x0a, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x10, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, - 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x41, 0x49, 0x52, 0x10, 0x02, 0x22, 0x96, - 0x01, 0x0a, 0x0a, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x62, 0x77, 0x5f, 0x6d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x42, 0x77, 0x4d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x77, 0x5f, 0x6d, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, - 0x77, 0x4d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0xc3, 0x11, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, - 0x72, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, - 0x65, 0x72, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x53, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x68, 0x61, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x63, 0x6f, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, - 0x64, 0x75, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x65, 0x64, 0x75, - 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, - 0x52, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, - 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, - 0x72, 0x61, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, - 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x12, - 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, + 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x41, 0x49, 0x52, 0x10, 0x02, 0x22, + 0x96, 0x01, 0x0a, 0x0a, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x62, 0x77, 0x5f, 0x6d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x42, 0x77, 0x4d, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x77, 0x5f, 0x6d, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x42, 0x77, 0x4d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0xff, 0x12, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, + 0x65, 0x72, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x70, 0x68, 0x65, + 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x53, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x68, 0x61, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x63, 0x6f, 0x73, + 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, + 0x65, 0x64, 0x75, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x65, 0x64, + 0x75, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, + 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, + 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, + 0x6b, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, + 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, + 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, + 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x19, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x52, 0x0a, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, + 0x57, 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, - 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x64, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, - 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x19, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x5f, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x73, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, - 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x67, 0x79, 0x52, 0x0a, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x57, - 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x65, 0x67, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, - 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x38, - 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, + 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x70, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x66, 0x70, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x05, + 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x58, 0x61, + 0x74, 0x74, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x78, 0x61, 0x74, 0x74, 0x72, + 0x12, 0x3c, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x42, + 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x27, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x2a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, + 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, + 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, + 0x69, 0x6d, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x52, 0x0a, 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, + 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, + 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4f, 0x66, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, + 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x74, 0x6f, + 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x31, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x66, 0x61, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x61, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x61, + 0x72, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x65, + 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x71, 0x0a, 0x1e, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x1b, 0x6e, 0x65, + 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x1a, 0x3f, 0x0a, 0x11, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0xb2, 0x11, 0x0a, 0x10, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x14, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, 0x68, 0x61, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x03, 0x63, 0x6f, 0x73, + 0x12, 0x3b, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x48, 0x03, 0x52, 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, + 0x06, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x06, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x05, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, + 0x65, 0x74, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x20, + 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x07, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, + 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x10, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x16, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, + 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, + 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, + 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x0b, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x1a, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x0c, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, + 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x0d, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x0e, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x38, + 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x09, 0x6e, + 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x70, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x78, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x58, 0x61, 0x74, - 0x74, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x78, 0x61, 0x74, 0x74, 0x72, 0x12, - 0x3c, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x25, + 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x69, 0x6f, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x10, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x08, 0x66, 0x61, 0x73, 0x74, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x05, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, 0x1f, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x58, 0x61, 0x74, 0x74, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x48, 0x12, 0x52, 0x05, 0x78, 0x61, 0x74, 0x74, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x63, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x13, 0x52, 0x0a, + 0x73, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x48, 0x14, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x56, 0x0a, 0x17, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x48, 0x15, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x48, 0x17, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5a, 0x0a, 0x15, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x18, + 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, + 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x48, 0x19, 0x52, 0x0c, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0b, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x1a, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x12, 0x3e, + 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x28, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, + 0x48, 0x1b, 0x52, 0x0a, 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x1e, + 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x1c, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1c, + 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x1d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x73, 0x0a, 0x1e, + 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x48, 0x1e, 0x52, 0x1b, 0x6e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, + 0x0c, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x63, 0x6f, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x6f, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x64, 0x65, + 0x64, 0x75, 0x70, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x70, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, + 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6f, 0x70, + 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x74, 0x69, 0x63, 0x6b, + 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6f, + 0x70, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, + 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6f, 0x70, + 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, + 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x61, 0x73, 0x74, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x78, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, + 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, + 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, + 0x42, 0x1b, 0x0a, 0x19, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x13, 0x0a, + 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, + 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, + 0x6d, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, + 0x61, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x77, 0x69, 0x6e, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x6e, 0x65, 0x61, + 0x72, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x22, + 0xc5, 0x14, 0x0a, 0x10, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x68, 0x61, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, + 0x68, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, + 0x52, 0x03, 0x63, 0x6f, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x04, 0x52, 0x06, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x58, 0x0a, 0x0d, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, + 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x42, 0x0a, - 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x26, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x53, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, - 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x0d, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, - 0x65, 0x63, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, - 0x2c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, - 0x6d, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x52, 0x0a, 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, - 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x75, - 0x6e, 0x6b, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x4f, 0x66, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x61, - 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, - 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x6f, 0x6c, - 0x6f, 0x67, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x74, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x31, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x1a, 0x3f, 0x0a, 0x11, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x97, 0x10, - 0x0a, 0x10, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x68, 0x61, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, 0x68, 0x61, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x03, - 0x63, 0x6f, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x06, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x06, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, - 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, - 0x74, 0x12, 0x20, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, - 0x61, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, - 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, - 0x69, 0x63, 0x6b, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x06, 0x73, 0x74, - 0x69, 0x63, 0x6b, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x0b, 0x52, 0x05, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, - 0x12, 0x1c, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x0d, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x21, - 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, - 0x68, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, - 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0f, - 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x69, - 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x69, - 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x10, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x61, 0x73, - 0x74, 0x70, 0x61, 0x74, 0x68, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x08, 0x66, - 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x05, 0x78, 0x61, 0x74, 0x74, 0x72, - 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x58, 0x61, 0x74, 0x74, 0x72, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x48, 0x12, 0x52, 0x05, 0x78, 0x61, 0x74, 0x74, 0x72, 0x12, 0x3e, 0x0a, - 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, - 0x13, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x45, 0x0a, - 0x0e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x14, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x56, 0x0a, 0x17, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, - 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x15, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x16, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, - 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x24, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x48, - 0x17, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5a, 0x0a, 0x15, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x48, 0x18, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x48, 0x19, - 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, - 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x27, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x1a, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, - 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, - 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x48, 0x1b, 0x52, 0x0a, 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, - 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, 0x29, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x1c, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, - 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x2a, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x1d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x68, - 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x63, - 0x6f, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x64, 0x65, 0x64, 0x75, - 0x70, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, - 0x0e, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, - 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x5f, - 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6f, 0x70, 0x74, - 0x42, 0x0d, 0x0a, 0x0b, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, - 0x0e, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6f, 0x70, 0x74, 0x42, - 0x11, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x6f, - 0x70, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, - 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x78, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, + 0x74, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x20, 0x0a, + 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x07, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, + 0x2d, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x10, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x16, + 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, 0x52, + 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, + 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x0b, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x1a, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x0c, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x08, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, + 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x0e, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x1e, 0x0a, + 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x0f, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, + 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x4f, 0x0a, 0x0d, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x32, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, 0x52, + 0x0c, 0x73, 0x69, 0x7a, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x56, 0x0a, + 0x11, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x4f, 0x70, 0x52, 0x0f, 0x68, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x68, 0x0a, 0x1a, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, 0x52, 0x18, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, + 0x36, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, + 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x48, 0x13, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x14, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x56, 0x0a, 0x17, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x15, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x3c, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x17, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x1c, 0x0a, 0x08, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x18, 0x3e, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x18, 0x52, 0x08, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x12, 0x5a, 0x0a, + 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x19, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x48, + 0x1a, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x21, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x41, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x1b, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, + 0x69, 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x48, 0x1c, 0x52, 0x0a, 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, + 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, + 0x43, 0x20, 0x01, 0x28, 0x08, 0x48, 0x1d, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, + 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x44, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x1e, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x1a, 0x3f, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x2f, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, 0x12, 0x09, 0x0a, + 0x05, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, + 0x0a, 0x0c, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x63, 0x6f, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x6f, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x64, + 0x65, 0x64, 0x75, 0x70, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, + 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, + 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6f, + 0x70, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x74, 0x69, 0x63, + 0x6b, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6f, 0x70, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, + 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6f, + 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, + 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, + 0x0f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x70, 0x74, + 0x42, 0x11, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, 0x0e, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x1b, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, + 0x0a, 0x0c, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, @@ -29345,1385 +30368,1348 @@ var file_api_api_proto_rawDesc = []byte{ 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x22, 0xc5, 0x14, 0x0a, 0x10, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, 0x68, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x2c, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, - 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x03, 0x63, 0x6f, 0x73, 0x12, 0x3b, 0x0a, - 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x03, 0x52, - 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, - 0x64, 0x75, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x06, 0x64, 0x65, - 0x64, 0x75, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x05, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x12, 0x58, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, - 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, - 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, - 0x61, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x0a, 0x70, 0x61, 0x73, - 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x08, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, - 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, - 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, - 0x0b, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, - 0x6e, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x07, 0x6a, 0x6f, 0x75, - 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x76, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, - 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x10, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, 0x52, 0x0c, 0x73, 0x69, 0x7a, 0x65, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, 0x52, 0x0f, 0x68, 0x61, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x51, 0x0a, - 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, - 0x70, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x68, 0x0a, 0x1a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x35, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4f, 0x70, - 0x52, 0x18, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x09, 0x6e, 0x6f, - 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, - 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, - 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x69, 0x6f, - 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x12, 0x52, 0x0a, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x63, 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x13, 0x52, 0x0a, 0x73, 0x63, - 0x61, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, - 0x14, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x56, 0x0a, 0x17, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, - 0x15, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, - 0x4f, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x48, 0x17, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x61, 0x73, 0x74, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x08, 0x66, 0x61, 0x73, - 0x74, 0x70, 0x61, 0x74, 0x68, 0x12, 0x5a, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, - 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x3f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x19, 0x52, 0x13, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x48, 0x1a, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x48, 0x1b, 0x52, 0x0a, - 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x69, 0x6f, - 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x1c, 0x52, 0x0a, - 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x72, 0x65, - 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x48, 0x1d, 0x52, - 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x77, 0x69, - 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x08, 0x48, 0x1e, 0x52, 0x08, - 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x2f, 0x0a, 0x08, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4f, 0x70, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x07, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x73, 0x69, - 0x7a, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x73, 0x5f, 0x6f, 0x70, - 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x5f, 0x6f, 0x70, - 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, - 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, - 0x6f, 0x70, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x6a, - 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, 0x0a, - 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x17, - 0x0a, 0x15, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x69, 0x73, - 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x73, - 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0b, - 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, - 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, - 0x6f, 0x70, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x69, - 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x42, 0x0f, - 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x42, - 0x0e, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x22, - 0x51, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x55, 0x75, 0x69, - 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, - 0x69, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x57, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x2e, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, - 0x3f, 0x0a, 0x11, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0xb5, 0x05, 0x0a, 0x09, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x14, - 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x04, 0x61, 0x63, - 0x6c, 0x73, 0x1a, 0x50, 0x0a, 0x13, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x1a, 0xd3, 0x03, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0x61, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, - 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x68, 0x69, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a, - 0x60, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x61, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x22, 0x51, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x52, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x57, + 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0xb5, 0x05, 0x0a, 0x09, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x04, + 0x61, 0x63, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x1a, 0x50, 0x0a, 0x13, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x67, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, - 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2c, 0x0a, 0x0a, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x02, 0x22, 0xdf, 0x0d, 0x0a, 0x06, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x12, 0x38, - 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x75, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x53, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x43, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, - 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x61, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x0b, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x53, 0x65, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x52, - 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x0f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x73, 0x12, - 0x2c, 0x0a, 0x12, 0x66, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x73, 0x52, - 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x3b, 0x0a, - 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, - 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x74, - 0x61, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x66, 0x70, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, 0x73, 0x74, - 0x70, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x66, 0x70, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, - 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x61, - 0x6e, 0x46, 0x69, 0x78, 0x12, 0x51, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x61, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xd3, 0x03, 0x0a, + 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x4c, + 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x16, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, - 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x48, 0x0a, 0x12, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x6f, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, - 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, - 0x64, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, - 0x5f, 0x74, 0x72, 0x61, 0x73, 0x68, 0x63, 0x61, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x73, 0x68, 0x63, 0x61, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 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, 0xa4, 0x03, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x65, 0x61, - 0x64, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x4d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6f, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x69, 0x6f, 0x5f, 0x6d, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x69, 0x6f, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, - 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x69, - 0x73, 0x63, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x61, - 0x72, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, - 0x73, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, - 0x73, 0x61, 0x67, 0x65, 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, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x55, 0x75, 0x69, 0x64, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, - 0x69, 0x76, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x54, 0x0a, 0x11, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x3f, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x64, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x64, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x78, 0x5f, 0x75, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x78, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, - 0x72, 0x69, 0x6d, 0x22, 0x34, 0x0a, 0x13, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, - 0x6d, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6e, 0x75, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x10, 0x53, 0x64, - 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x68, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, - 0x22, 0xbd, 0x03, 0x0a, 0x05, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x65, - 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x65, 0x76, - 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x74, 0x74, 0x6c, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x54, 0x61, 0x67, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, - 0x65, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, - 0x22, 0x85, 0x01, 0x0a, 0x11, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x61, 0x0a, 0x0d, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, + 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, + 0x46, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, + 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a, 0x60, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, + 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x12, 0x43, 0x6f, 0x6c, + 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x2c, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x02, + 0x22, 0xdf, 0x0d, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, + 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x30, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, + 0x70, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, + 0x61, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x53, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x6e, 0x12, + 0x43, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, + 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x13, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, + 0x74, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x73, 0x12, 0x45, + 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x73, 0x18, + 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x73, 0x5f, 0x72, 0x65, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x73, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x3b, 0x0a, 0x08, 0x66, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x08, 0x66, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x0d, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x12, 0x53, 0x64, 0x6b, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x0f, 0x53, 0x64, 0x6b, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x11, - 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x76, - 0x65, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x69, 0x73, 0x5f, - 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x09, 0x69, 0x73, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, - 0x6e, 0x48, 0x00, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x44, 0x0a, - 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, - 0x70, 0x61, 0x6e, 0x42, 0x05, 0x0a, 0x03, 0x6f, 0x70, 0x74, 0x22, 0x60, 0x0a, 0x1a, 0x53, 0x64, - 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x17, - 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x53, - 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x49, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x46, 0x69, 0x78, 0x12, 0x51, 0x0a, 0x10, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x42, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x65, 0x64, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x73, 0x68, 0x63, 0x61, + 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x73, 0x68, + 0x63, 0x61, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 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, 0xa4, 0x03, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x72, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x73, 0x12, 0x1f, 0x0a, + 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x13, 0x0a, 0x05, 0x69, 0x6f, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, + 0x69, 0x6f, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, + 0x73, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, + 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x4d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x12, + 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x43, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xe4, 0x01, 0x0a, + 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 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, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6f, 0x6f, 0x6c, 0x55, 0x75, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x22, 0x54, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0xdd, 0x02, 0x0a, 0x0e, - 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5d, - 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x54, 0x0a, - 0x10, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4f, 0x0a, 0x0f, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 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, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x6f, 0x0a, 0x15, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x42, 0x79, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x09, + 0x76, 0x6f, 0x6c, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, + 0x64, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x55, 0x73, 0x61, 0x67, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x15, + 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x75, 0x5f, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x64, 0x75, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x78, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x78, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, + 0x13, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, + 0x74, 0x72, 0x69, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x65, 0x72, 0x66, + 0x6f, 0x72, 0x6d, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x22, 0x34, 0x0a, + 0x13, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, + 0x75, 0x72, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x75, 0x72, 0x67, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x50, 0x75, 0x72, + 0x67, 0x65, 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x10, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, + 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, + 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x22, 0xbd, 0x03, 0x0a, 0x05, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x54, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x11, 0x53, + 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x12, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x0f, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x69, 0x73, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, + 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x42, 0x05, 0x0a, + 0x03, 0x6f, 0x70, 0x74, 0x22, 0x60, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x12, 0x57, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x34, 0x0a, 0x04, - 0x6f, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6f, 0x70, - 0x74, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x61, 0x0a, 0x24, 0x53, - 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0xdd, 0x02, 0x0a, 0x0e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5d, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x54, 0x0a, 0x10, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x57, 0x0a, + 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x57, - 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, - 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x22, 0x53, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x39, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, - 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x06, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x22, - 0xcc, 0x02, 0x0a, 0x0f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x22, 0xb1, - 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x42, 0x07, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x61, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, + 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x57, 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x73, 0x22, 0x53, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x71, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x36, 0x0a, 0x06, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x52, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x22, 0xcc, 0x02, 0x0a, 0x0f, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x22, 0xb1, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x26, 0x0a, 0x0e, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x70, 0x0a, 0x14, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x0f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x52, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x22, 0xbf, 0x02, 0x0a, 0x10, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x22, 0x26, 0x0a, 0x0e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x70, 0x0a, 0x14, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x48, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc9, 0x01, 0x0a, - 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x38, - 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xbf, 0x02, 0x0a, 0x10, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, - 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, - 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x8e, 0x01, 0x0a, 0x11, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2f, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x11, - 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, - 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x72, 0x65, - 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x6f, 0x52, 0x65, 0x74, - 0x72, 0x79, 0x22, 0x71, 0x0a, 0x12, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 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, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x0e, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x14, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x76, 0x5f, 0x63, 0x6d, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x72, 0x76, 0x43, 0x6d, 0x64, 0x12, 0x5d, 0x0a, - 0x0e, 0x73, 0x72, 0x76, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x72, 0x76, - 0x43, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x73, 0x72, 0x76, 0x43, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x3f, 0x0a, 0x11, - 0x53, 0x72, 0x76, 0x43, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0xc4, 0x01, - 0x0a, 0x1d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, + 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x95, 0x01, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, - 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x5f, 0x73, 0x72, 0x76, 0x5f, 0x72, 0x73, 0x70, 0x5f, 0x6f, 0x62, - 0x6a, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x76, 0x6f, 0x6c, - 0x53, 0x72, 0x76, 0x52, 0x73, 0x70, 0x4f, 0x62, 0x6a, 0x43, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0b, - 0x76, 0x6f, 0x6c, 0x5f, 0x73, 0x72, 0x76, 0x5f, 0x72, 0x73, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x53, 0x72, 0x76, 0x52, 0x73, 0x70, 0x22, 0x64, 0x0a, 0x12, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6b, 0x69, - 0x6e, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x0d, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, - 0x08, 0x52, 0x65, 0x71, 0x65, 0x73, 0x74, 0x4b, 0x56, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x52, 0x65, 0x71, 0x65, 0x73, 0x74, 0x4b, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, - 0x65, 0x71, 0x65, 0x73, 0x74, 0x4b, 0x56, 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x65, 0x73, - 0x74, 0x4b, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x7a, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0d, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0xfb, 0x01, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x11, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4b, 0x0a, 0x06, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x6f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x22, 0x71, 0x0a, 0x12, + 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x74, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 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, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x35, + 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x07, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x0e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x14, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x73, 0x72, 0x76, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x72, 0x76, 0x43, 0x6d, 0x64, 0x12, 0x5d, 0x0a, 0x0e, 0x73, 0x72, 0x76, 0x5f, 0x63, + 0x6d, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x72, 0x76, 0x43, 0x6d, 0x64, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x72, 0x76, 0x43, 0x6d, 0x64, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x53, 0x72, 0x76, 0x43, 0x6d, 0x64, + 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0xc4, 0x01, 0x0a, 0x1d, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x52, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0xe9, - 0x01, 0x0a, 0x17, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x09, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x61, 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 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, 0x39, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6e, 0x61, - 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xec, 0x07, 0x0a, 0x0b, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, - 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x6d, 0x65, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x65, 0x6d, - 0x55, 0x73, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x72, 0x65, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x46, 0x72, 0x65, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x05, 0x64, - 0x69, 0x73, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, - 0x6f, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x17, - 0x0a, 0x07, 0x6d, 0x67, 0x6d, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x67, 0x6d, 0x74, 0x49, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x70, - 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0b, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x48, - 0x57, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x48, 0x57, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, - 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, - 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x1a, 0x5a, 0x0a, 0x0a, 0x44, - 0x69, 0x73, 0x6b, 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, 0x36, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x4e, 0x6f, 0x64, 0x65, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 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, 0x61, 0x0a, 0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, - 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x53, - 0x45, 0x43, 0x55, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x43, 0x55, - 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x44, - 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x03, 0x22, 0x65, 0x0a, 0x0e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, + 0x01, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x5f, + 0x73, 0x72, 0x76, 0x5f, 0x72, 0x73, 0x70, 0x5f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x53, 0x72, 0x76, 0x52, 0x73, 0x70, + 0x4f, 0x62, 0x6a, 0x43, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x5f, 0x73, 0x72, + 0x76, 0x5f, 0x72, 0x73, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x76, 0x6f, 0x6c, + 0x53, 0x72, 0x76, 0x52, 0x73, 0x70, 0x22, 0x64, 0x0a, 0x12, 0x47, 0x72, 0x61, 0x70, 0x68, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x12, 0x3a, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x27, 0x0a, 0x0f, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x65, 0x73, + 0x74, 0x4b, 0x56, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x65, 0x73, 0x74, + 0x4b, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x65, 0x71, 0x65, 0x73, 0x74, 0x4b, + 0x56, 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x65, 0x73, 0x74, 0x4b, 0x56, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x7a, + 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xfb, 0x01, 0x0a, 0x16, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4b, 0x0a, 0x06, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6e, 0x61, + 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, + 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x1a, 0x39, 0x0a, + 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0xe9, 0x01, 0x0a, 0x17, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x1a, 0x61, 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 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, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xec, 0x07, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x5f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x46, 0x72, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x76, 0x67, + 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x76, 0x67, + 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x64, + 0x69, 0x73, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x67, 0x6d, 0x74, + 0x5f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x67, 0x6d, 0x74, 0x49, + 0x70, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xc7, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x12, 0x68, 0x0a, 0x19, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x19, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x33, 0x0a, 0x14, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, - 0x89, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, - 0x72, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x63, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x18, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x72, 0x61, - 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x19, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x4a, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x57, 0x0a, - 0x19, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, - 0x22, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, - 0x79, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x22, - 0x6d, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x24, - 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x25, - 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x22, 0x38, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, 0x0a, - 0x23, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x37, - 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x6f, 0x64, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x48, 0x57, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x48, 0x57, 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x0f, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x51, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, + 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x1a, 0x5a, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x6b, 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, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x61, 0x0a, 0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x22, 0x0a, 0x1e, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, + 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x41, + 0x4c, 0x10, 0x03, 0x22, 0x65, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x13, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x19, 0x61, 0x6e, + 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x19, 0x61, 0x6e, 0x6f, 0x6e, 0x79, + 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x33, 0x0a, 0x14, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x42, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, + 0x18, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x86, + 0x01, 0x0a, 0x19, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x57, 0x0a, 0x19, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x1c, 0x0a, 0x1a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, + 0x0a, 0x17, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x0a, + 0x11, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x21, 0x53, 0x64, 0x6b, + 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, + 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, + 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, + 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, + 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4c, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x38, 0x0a, + 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, - 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, - 0x21, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x24, 0x0a, 0x22, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x4f, 0x70, + 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, + 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x37, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4f, + 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4f, 0x70, + 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, + 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3b, 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x28, 0x0a, 0x26, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, + 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x28, 0x0a, 0x26, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x25, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, - 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x76, 0x0a, 0x2a, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x6d, 0x0a, 0x1e, 0x53, - 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, - 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x64, 0x6b, + 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x76, 0x0a, + 0x2a, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x6d, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, + 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, - 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, - 0x1e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x4b, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x21, 0x0a, 0x1f, - 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x1f, 0x53, 0x64, - 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x5e, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x22, 0x34, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, 0x1e, 0x53, 0x64, - 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1f, 0x53, 0x64, 0x6b, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x03, - 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, - 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x22, 0x60, 0x0a, 0x20, 0x53, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3a, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x34, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x22, 0x3d, 0x0a, - 0x21, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xfc, 0x02, 0x0a, - 0x19, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x74, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x74, 0x61, - 0x69, 0x6e, 0x12, 0x48, 0x0a, 0x05, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x18, 0xc8, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x05, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x06, - 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x48, - 0x00, 0x52, 0x06, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x12, 0x4e, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x6c, 0x79, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x48, 0x00, - 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x69, 0x63, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, + 0x6e, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, + 0x6b, 0x64, 0x61, 0x79, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x22, 0x60, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x22, 0x3d, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x48, 0x0a, 0x05, + 0x64, 0x61, 0x69, 0x6c, 0x79, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x42, 0x0d, 0x0a, 0x0b, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x11, 0x53, - 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x48, 0x00, 0x52, + 0x05, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, + 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xad, - 0x04, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, - 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, - 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, - 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x61, 0x6d, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x61, 0x6d, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x33, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x73, 0x33, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x52, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, - 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x12, 0x58, 0x0a, 0x10, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x5b, - 0x0a, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, - 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x76, 0x61, 0x6c, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x65, + 0x6b, 0x6c, 0x79, 0x12, 0x4e, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x18, 0xca, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x18, + 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x48, 0x00, 0x52, 0x08, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x11, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, + 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x09, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x81, 0x05, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xda, 0x01, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x41, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x73, 0x6c, - 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x5f, - 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, - 0x56, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0xe6, 0x01, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x41, - 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x73, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x33, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x73, 0x33, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x22, 0x3f, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x3c, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, - 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x47, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x73, 0x22, 0x42, 0x0a, 0x1b, 0x53, 0x64, 0x6b, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x86, 0x04, - 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, - 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x61, 0x6d, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x53, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x28, 0x0a, 0x10, 0x73, 0x33, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x33, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x61, 0x77, + 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x0d, 0x61, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x58, + 0x0a, 0x10, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x5b, 0x0a, 0x11, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xca, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x00, 0x52, 0x10, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x52, 0x0a, 0x0e, 0x6e, 0x66, 0x73, 0x5f, 0x63, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x77, 0x73, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xc9, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x5c, 0x0a, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, + 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x66, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x66, 0x73, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x63, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x1b, + 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, + 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xda, 0x01, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x41, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, + 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x73, 0x6c, 0x12, 0x2c, + 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x5f, 0x0a, 0x19, + 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x56, 0x0a, + 0x1a, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x73, + 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x73, + 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x4e, 0x66, 0x73, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, + 0x70, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xe6, 0x01, 0x0a, + 0x18, 0x53, 0x64, 0x6b, 0x41, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x73, 0x6c, 0x12, 0x2c, 0x0a, + 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, + 0x33, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x33, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x3f, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x4e, 0x66, 0x73, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, + 0x70, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x1f, 0x0a, 0x1d, + 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x47, 0x0a, + 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x49, 0x64, 0x73, 0x22, 0x42, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xdb, 0x04, 0x0a, 0x1c, 0x53, + 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x73, 0x65, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x53, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x41, 0x77, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xc9, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, - 0x00, 0x52, 0x10, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x41, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x64, 0x6b, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x1f, 0x0a, - 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, - 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x00, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x12, 0x5c, 0x0a, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x12, 0x53, 0x0a, 0x0e, 0x6e, 0x66, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, + 0x66, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x66, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x41, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x25, 0x53, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, - 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x73, 0x74, 0x70, 0x61, - 0x74, 0x68, 0x22, 0xba, 0x02, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x1c, 0x53, 0x64, + 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, + 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4b, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x27, 0x0a, + 0x25, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, + 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x73, 0x74, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x73, 0x74, + 0x70, 0x61, 0x74, 0x68, 0x22, 0xba, 0x02, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 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, 0x1d, 0x0a, 0x0a, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x60, 0x0a, + 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, + 0x40, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x18, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x17, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x23, 0x6e, 0x6f, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x1e, 0x6e, 0x6f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, + 0x22, 0xbf, 0x02, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 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, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x60, 0x0a, 0x0e, 0x64, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, - 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, - 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, - 0x18, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x17, 0x53, 0x64, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x4b, 0x0a, 0x23, 0x6e, 0x6f, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, - 0x6e, 0x6f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0xbf, - 0x02, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 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, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x0e, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 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, 0x1a, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, + 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, + 0x02, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 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, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x0e, 0x64, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, - 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, 0x12, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x3a, + 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x7e, 0x0a, 0x16, 0x53, 0x64, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x75, 0x6e, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x75, 0x6e, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x16, 0x53, + 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 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, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x19, 0x0a, 0x17, 0x53, 0x64, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x36, 0x0a, + 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0xf8, 0x01, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x69, 0x0a, 0x11, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x1a, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x02, 0x0a, - 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 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, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, - 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x3a, 0x0a, 0x17, - 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x7e, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x75, 0x6e, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x75, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x16, 0x53, 0x64, 0x6b, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 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, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, - 0x70, 0x65, 0x63, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x36, 0x0a, 0x17, 0x53, - 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0x48, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x35, 0x0a, - 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0x35, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 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, 0x22, 0x19, 0x0a, 0x17, 0x53, - 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x22, 0x35, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, + 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0x35, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 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, 0x3f, - 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0xe9, 0x01, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0xf5, 0x02, 0x0a, 0x22, - 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x19, + 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x17, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 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, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2f, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0xf5, + 0x02, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 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, 0x6a, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, + 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x4b, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x39, + 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 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, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, + 0x74, 0x5f, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x22, 0x46, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x3c, 0x0a, 0x1d, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, + 0x61, 0x67, 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, 0x22, 0x74, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1b, 0x0a, + 0x19, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x1a, 0x53, 0x64, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0xb8, 0x02, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, @@ -30732,3293 +31718,3323 @@ var file_api_api_proto_rawDesc = []byte{ 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 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, 0x6a, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x22, - 0xf4, 0x01, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, - 0x61, 0x74, 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, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 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, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x5b, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x73, 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, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x63, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x6e, 0x6f, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0x46, - 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x3c, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 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, 0x22, 0x74, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, - 0x74, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x64, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x64, 0x73, 0x22, 0xb8, 0x02, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x59, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x41, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x09, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, - 0x46, 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, - 0x61, 0x74, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, + 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 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, 0x46, 0x0a, 0x25, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x1e, 0x53, + 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x43, 0x72, 0x65, 0x61, 0x74, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x42, + 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 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, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 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, 0x22, 0x54, 0x0a, 0x22, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x73, 0x22, + 0xe9, 0x01, 0x0a, 0x2c, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 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, 0x61, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x42, 0x0a, 0x1f, 0x53, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5f, 0x0a, 0x2d, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x22, - 0x5f, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 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, - 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, - 0x22, 0x22, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 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, 0x22, 0x54, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, + 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x73, 0x22, 0xe9, 0x01, 0x0a, - 0x2c, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 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, 0x61, 0x0a, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, - 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x5f, 0x0a, 0x2d, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x73, 0x22, 0x7d, 0x0a, 0x26, 0x53, 0x64, 0x6b, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x36, 0x0a, 0x17, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x27, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, - 0x72, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x75, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0x3c, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x22, 0x62, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x61, - 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, - 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x22, 0x53, 0x64, - 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x50, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x22, 0x51, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x73, 0x22, 0x7d, 0x0a, 0x26, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x36, 0x0a, 0x17, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x27, 0x53, + 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, + 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x22, 0x72, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, + 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x3c, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, + 0x75, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x56, 0x0a, + 0x22, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, + 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x51, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x21, 0x53, - 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, - 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x20, 0x53, 0x64, 0x6b, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, + 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, - 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x20, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x30, 0x0a, 0x15, 0x53, + 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xd7, 0x05, + 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x5f, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x90, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x10, + 0x64, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x5a, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x30, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x4e, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xd7, 0x05, 0x0a, 0x03, 0x4a, - 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x90, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x10, 0x64, 0x72, 0x61, - 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x5a, 0x0a, - 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x72, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x69, 0x61, 0x67, 0x73, 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x69, 0x61, 0x67, 0x73, - 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x69, - 0x61, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x15, - 0x0a, 0x11, 0x44, 0x52, 0x41, 0x49, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x4d, 0x45, - 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x44, - 0x52, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0x03, 0x12, - 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x49, 0x41, 0x47, 0x53, - 0x10, 0x04, 0x22, 0x69, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, - 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x42, 0x05, 0x0a, - 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x38, 0x0a, 0x0e, 0x53, 0x64, 0x6b, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x1c, - 0x0a, 0x1a, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xbd, 0x01, 0x0a, - 0x1e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, - 0x23, 0x0a, 0x0d, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x6e, 0x6c, 0x79, 0x53, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x76, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x22, 0xb6, 0x02, 0x0a, - 0x17, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x12, 0x4f, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x44, - 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x15, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, - 0x2c, 0x0a, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x73, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x36, 0x0a, - 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x98, 0x01, - 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x69, 0x61, 0x67, 0x73, 0x4a, 0x6f, - 0x62, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x15, 0x44, 0x69, 0x61, - 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, - 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, - 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, - 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x22, 0x9c, - 0x02, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x6e, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x73, 0x4e, - 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6e, 0x6f, 0x64, - 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6e, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6c, 0x69, 0x76, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, - 0x17, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, - 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x61, 0x67, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x59, 0x0a, 0x13, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, - 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x22, 0x93, - 0x01, 0x0a, 0x13, 0x44, 0x69, 0x61, 0x67, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x5d, 0x0a, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x0d, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x69, 0x61, 0x67, 0x73, 0x18, 0x92, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x69, + 0x61, 0x67, 0x73, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x44, 0x69, 0x61, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, + 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x52, 0x41, 0x49, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, + 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4c, 0x4f, 0x55, + 0x44, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, + 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x49, + 0x41, 0x47, 0x53, 0x10, 0x04, 0x22, 0x69, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x11, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, + 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x55, + 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, + 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, + 0x42, 0x05, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x38, 0x0a, 0x0e, 0x53, 0x64, 0x6b, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x6a, 0x6f, 0x62, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, + 0x62, 0x22, 0x1c, 0x0a, 0x1a, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0xbd, 0x01, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x08, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x44, - 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6a, 0x6f, - 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, - 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x13, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x16, 0x0a, - 0x14, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, 0x4a, - 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x76, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x6e, 0x6c, 0x79, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x22, + 0xb6, 0x02, 0x0a, 0x17, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, + 0x73, 0x75, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, + 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x15, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4a, + 0x6f, 0x62, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x98, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x69, 0x61, 0x67, + 0x73, 0x4a, 0x6f, 0x62, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, + 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x15, + 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x73, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, + 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, + 0x04, 0x22, 0x9c, 0x02, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, + 0x67, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, + 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x73, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6e, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, + 0x6c, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x41, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x6a, + 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, + 0x6a, 0x6f, 0x62, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x61, 0x67, 0x73, 0x4e, 0x6f, 0x64, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x59, 0x0a, 0x13, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, + 0x6c, 0x22, 0x93, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x61, 0x67, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x5d, 0x0a, 0x15, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x44, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, + 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, + 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x13, 0x53, 0x64, 0x6b, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x45, - 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x41, 0x75, 0x64, 0x69, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, - 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x57, 0x6f, 0x72, - 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x66, 0x0a, 0x19, 0x64, 0x72, 0x61, 0x69, - 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x72, - 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x17, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x42, 0x09, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x0a, - 0x4a, 0x6f, 0x62, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x46, - 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x57, 0x6f, 0x72, 0x6b, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, - 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x26, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x16, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x45, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x41, 0x75, 0x64, 0x69, 0x74, 0x12, 0x39, 0x0a, + 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x11, - 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x6f, - 0x6e, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x11, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x22, 0x3a, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, - 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x22, - 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, - 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, - 0xc9, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x69, 0x7a, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, - 0x72, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x57, 0x61, 0x69, 0x74, 0x46, - 0x6f, 0x72, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x42, 0x0f, - 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, - 0xa5, 0x03, 0x0a, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x50, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x3d, 0x0a, 0x1b, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, - 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x4c, 0x6f, - 0x61, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x22, 0x34, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x42, - 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x00, - 0x12, 0x16, 0x0a, 0x12, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x41, 0x4e, 0x5f, 0x50, - 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x22, 0x2d, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x53, 0x45, 0x44, 0x5f, - 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x22, 0xbe, 0x03, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x12, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x69, 0x61, - 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x72, 0x69, - 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x12, 0x5b, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x2e, 0x4a, 0x6f, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, + 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, + 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x66, 0x0a, 0x19, 0x64, + 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x17, 0x64, 0x72, 0x61, 0x69, + 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x98, + 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, + 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x46, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x57, + 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x17, 0x53, 0x64, 0x6b, + 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x35, 0x0a, 0x07, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x4a, 0x6f, 0x62, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, + 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, 0x64, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, + 0x55, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x1b, 0x53, 0x64, + 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, + 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x15, 0x0a, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x77, 0x61, 0x69, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x57, 0x61, + 0x69, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x22, 0xa5, 0x03, 0x0a, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x3d, 0x0a, 0x1b, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x6f, 0x76, 0x65, 0x72, + 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x34, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x10, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, + 0x54, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x41, + 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x22, 0x2d, 0x0a, 0x06, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x53, + 0x45, 0x44, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x22, 0xbe, 0x03, 0x0a, 0x1a, 0x53, + 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x12, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x12, 0x5b, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x12, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, - 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6d, - 0x61, 0x78, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x35, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, - 0x5f, 0x31, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x31, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x22, 0xdb, 0x01, 0x0a, 0x1b, 0x53, 0x64, 0x6b, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, - 0x12, 0x42, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x07, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xce, 0x02, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x12, 0x6d, 0x61, 0x78, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x75, 0x74, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x5f, 0x31, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6c, 0x31, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x22, 0xdb, 0x01, 0x0a, 0x1b, + 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x03, 0x6a, + 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x03, + 0x6a, 0x6f, 0x62, 0x12, 0x42, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xce, 0x02, 0x0a, 0x13, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, + 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x77, 0x6f, - 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x89, 0x02, 0x0a, 0x1b, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x75, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x6e, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, - 0x6e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, - 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x6e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x55, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x10, 0x03, 0x22, 0xb8, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 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, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x55, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, - 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x3d, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x41, - 0x44, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, - 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, 0x01, - 0x22, 0x6f, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x31, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xe0, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x03, 0x6a, 0x6f, - 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, - 0x6f, 0x62, 0x12, 0x42, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x75, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, + 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x89, 0x02, 0x0a, + 0x1b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x22, 0x75, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x6e, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x10, 0x00, 0x12, 0x15, + 0x0a, 0x11, 0x55, 0x6e, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x6e, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x55, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x10, 0x03, 0x22, 0xb8, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, + 0x69, 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, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, - 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x21, - 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x38, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x0e, - 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x73, - 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, - 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x10, 0x02, 0x12, 0x14, 0x0a, - 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, - 0x44, 0x10, 0x03, 0x22, 0x25, 0x0a, 0x0d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x00, 0x22, 0x62, 0x0a, 0x13, 0x52, 0x65, - 0x73, 0x69, 0x7a, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x53, 0x49, 0x5a, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x10, - 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x10, 0x02, 0x22, 0x1e, - 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, - 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, + 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, + 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x3d, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, + 0x0a, 0x0b, 0x41, 0x44, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, + 0x41, 0x10, 0x01, 0x22, 0x6f, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xe0, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, + 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x42, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x64, - 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x1d, 0x53, 0x64, - 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6e, + 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x22, 0x0a, 0x20, 0x53, + 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x5d, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x90, + 0x02, 0x0a, 0x0e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x22, 0x73, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4f, + 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, 0x25, 0x0a, 0x0d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x00, 0x22, 0x62, 0x0a, + 0x13, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, + 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x44, 0x49, + 0x53, 0x4b, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x10, + 0x02, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4a, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x19, 0x0a, - 0x17, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x4e, - 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x22, - 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x59, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, - 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x22, 0x45, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x1e, 0x0a, + 0x1c, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, + 0x1d, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, + 0x22, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x18, 0x53, + 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x73, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x59, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x4e, + 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x1d, 0x53, 0x64, + 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x12, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3a, 0x0a, 0x1b, + 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, + 0x65, 0x61, 0x74, 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, 0x22, 0x6f, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x12, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3a, 0x0a, 0x1b, 0x53, 0x64, 0x6b, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, - 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, 0x22, 0x6f, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x12, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x44, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, - 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, - 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x64, - 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x1b, 0x53, + 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x44, 0x0a, 0x1b, 0x53, 0x64, 0x6b, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, + 0x1e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x5c, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1e, 0x0a, + 0x1c, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x03, + 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x43, 0x72, 0x65, 0x61, 0x74, 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, 0x23, 0x0a, 0x0d, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, + 0x75, 0x6c, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, - 0x61, 0x74, 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, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, - 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x06, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x66, - 0x75, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, 0x75, 0x6c, 0x6c, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, - 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x37, 0x0a, - 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xca, 0x02, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, - 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x55, - 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 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, 0x71, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0xb4, 0x02, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x32, + 0x0a, 0x15, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, + 0x75, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x6e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x37, 0x0a, 0x1c, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xca, 0x02, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, - 0x70, 0x65, 0x63, 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x64, 0x0a, - 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, - 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x21, - 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xd9, 0x04, 0x0a, 0x29, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, - 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x77, 0x0a, 0x0f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x55, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 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, 0x71, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, + 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0xb4, 0x02, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x12, 0x38, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x64, 0x0a, 0x1d, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x69, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x21, 0x0a, + 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xd9, 0x04, 0x0a, 0x29, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x53, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, + 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x77, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0xe6, 0x03, - 0x0a, 0x12, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4d, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x0c, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x9a, 0x01, 0x0a, 0x2a, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0xa5, 0x04, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x6f, 0x70, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x06, 0x6f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x79, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, + 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0xe6, 0x03, 0x0a, + 0x12, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4d, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 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, 0x9a, 0x01, 0x0a, 0x2a, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0xa5, 0x04, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x06, 0x6f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x74, 0x61, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x1b, 0x53, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1f, + 0x0a, 0x0b, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x74, 0x61, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xdb, 0x01, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x6e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x0d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 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, + 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x60, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, + 0xbc, 0x01, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, + 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x42, + 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, + 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, - 0x1a, 0x62, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x03, + 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, + 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, + 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, + 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 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, 0x79, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x51, 0x0a, + 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, + 0x22, 0x98, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x42, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x23, 0x0a, 0x21, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xb2, 0x03, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x65, - 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 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, 0x79, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x55, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x21, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x50, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x49, 0x64, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8b, + 0x02, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x6e, 0x0a, 0x13, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x69, 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x51, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x49, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x55, 0x75, 0x69, 0x64, 0x22, - 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x53, - 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x8b, 0x02, 0x0a, 0x24, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x10, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x1a, 0x6e, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x69, - 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x5d, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, - 0x30, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x22, 0x39, 0x0a, 0x07, 0x53, 0x64, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x70, 0x69, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x70, 0x69, 0x73, 0x22, 0x4d, 0x0a, 0x07, - 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x14, 0x53, - 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x22, 0x45, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x52, - 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x30, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x53, 0x64, - 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, - 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x44, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, - 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0xc4, 0x01, 0x0a, - 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x22, - 0xb1, 0x01, 0x0a, 0x14, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, - 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, 0x54, - 0x52, 0x49, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, - 0x13, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x55, 0x4e, - 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, - 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x46, - 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x53, - 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x53, 0x5f, 0x54, - 0x52, 0x49, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, - 0x12, 0x0a, 0x0e, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, - 0x44, 0x10, 0x06, 0x22, 0x5b, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 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, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, - 0x22, 0x88, 0x01, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x54, 0x72, 0x69, 0x6d, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, - 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5c, 0x0a, 0x1e, 0x53, + 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x19, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x69, + 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x1a, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x69, + 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x63, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6f, + 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x1a, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x39, 0x0a, 0x07, 0x53, + 0x64, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x70, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x61, 0x70, 0x69, 0x73, 0x22, 0x4d, 0x0a, 0x07, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x15, 0x53, + 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x30, 0x0a, + 0x18, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0x2b, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x16, + 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, + 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x17, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x0a, 0x14, 0x53, 0x64, 0x6b, + 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, + 0x45, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x22, 0xb1, 0x01, 0x0a, 0x14, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x53, 0x5f, 0x54, 0x52, + 0x49, 0x4d, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, + 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, + 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x53, 0x5f, 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x53, 0x5f, + 0x54, 0x52, 0x49, 0x4d, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x22, 0x5b, 0x0a, + 0x1d, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, + 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 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, 0x1d, 0x0a, 0x0a, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x88, 0x01, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1f, 0x53, 0x64, - 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, - 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x8b, 0x02, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, - 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0b, 0x74, 0x72, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, - 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x73, 0x0a, 0x0f, - 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0x4a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, - 0x6d, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, - 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe6, - 0x01, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, - 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x60, 0x0a, 0x0a, 0x55, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5c, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x61, 0x74, 0x68, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x53, 0x5f, 0x43, - 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, - 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x53, - 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x53, 0x5f, 0x43, - 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x03, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x53, 0x54, - 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x53, 0x5f, 0x43, 0x48, - 0x45, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, - 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x06, 0x22, 0x51, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 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, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 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, 0x22, 0xee, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, + 0x61, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0x1c, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8b, 0x02, + 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x0b, 0x74, 0x72, 0x69, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, + 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x74, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x73, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x75, 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, 0x4a, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3c, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, - 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, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6c, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x63, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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, 0x1b, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x03, 0x0a, 0x14, - 0x53, 0x64, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x65, - 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0xc7, 0x02, 0x0a, 0x12, 0x4f, - 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x51, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x2e, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x53, + 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe6, 0x01, 0x0a, 0x1a, 0x53, 0x64, 0x6b, + 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, + 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, + 0x60, 0x0a, 0x0a, 0x55, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x5a, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 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, 0x1d, + 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x68, 0x0a, + 0x1a, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, + 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0d, 0x76, + 0x6f, 0x6c, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x55, 0x73, 0x65, 0x64, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x55, + 0x74, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x46, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, + 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x37, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, + 0x6d, 0x50, 0x75, 0x73, 0x68, 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, 0x22, 0x35, 0x0a, 0x19, 0x53, 0x64, 0x6b, + 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x36, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, + 0x6d, 0x50, 0x6f, 0x70, 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, 0x22, 0x34, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x41, + 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xcd, + 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x10, + 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, + 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x49, + 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x46, + 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, + 0x04, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x53, 0x5f, + 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x22, 0x51, + 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 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, 0x12, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0x3e, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x22, + 0xee, 0x01, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x3c, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 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, 0x22, 0x20, + 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x6c, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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, 0x1b, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x95, 0x01, + 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, + 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x03, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x54, + 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, - 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4c, 0x4f, 0x55, 0x44, - 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x55, 0x50, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x52, 0x45, - 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, - 0x44, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, - 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x43, 0x48, 0x45, - 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x06, 0x12, 0x0a, 0x0a, - 0x06, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x45, - 0x52, 0x54, 0x53, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x41, 0x43, 0x48, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x4f, 0x4c, 0x45, 0x10, - 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x49, - 0x52, 0x10, 0x0b, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x45, 0x10, 0x0c, - 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x49, - 0x43, 0x59, 0x10, 0x0d, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, - 0x0a, 0x53, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x55, 0x53, 0x54, 0x5f, 0x48, 0x41, 0x56, 0x45, 0x5f, - 0x5a, 0x45, 0x52, 0x4f, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x4d, 0x61, 0x6a, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x6f, 0x72, - 0x10, 0x94, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x63, 0x68, 0x10, 0x00, 0x1a, 0x02, - 0x10, 0x01, 0x22, 0xc6, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, - 0x3a, 0x0a, 0x0c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xb1, 0x02, 0x0a, 0x0c, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x22, 0x5f, 0x0a, 0x0d, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, - 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x10, 0x03, 0x22, 0x4e, 0x0a, - 0x05, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x53, 0x74, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x10, - 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x6f, 0x6e, 0x65, 0x10, 0x04, 0x22, 0x70, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, - 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x10, 0x06, 0x22, - 0xba, 0x01, 0x0a, 0x18, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xf2, 0x03, 0x0a, - 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0xc8, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x48, 0x00, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xc9, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x62, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x73, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x1a, 0xc7, 0x02, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdd, + 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x55, + 0x50, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, + 0x4c, 0x53, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x12, + 0x0a, 0x0e, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, + 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x50, + 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x4f, 0x4c, 0x55, 0x4d, + 0x45, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x53, 0x10, 0x08, 0x12, + 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x10, + 0x09, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x43, + 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x49, 0x52, 0x10, 0x0b, 0x12, 0x0b, 0x0a, + 0x07, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x45, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x0d, 0x42, 0x06, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x0a, 0x53, 0x64, 0x6b, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, + 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x49, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, + 0x4d, 0x55, 0x53, 0x54, 0x5f, 0x48, 0x41, 0x56, 0x45, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x5f, 0x56, + 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x6a, 0x6f, 0x72, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x6f, 0x72, 0x10, 0x9f, 0x01, 0x12, 0x09, 0x0a, + 0x05, 0x50, 0x61, 0x74, 0x63, 0x68, 0x10, 0x00, 0x1a, 0x02, 0x10, 0x01, 0x22, 0xc6, 0x01, 0x0a, + 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 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, 0xb1, 0x02, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, + 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x22, 0x5f, 0x0a, 0x0d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x69, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, + 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x10, 0x02, 0x12, + 0x16, 0x0a, 0x12, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x10, 0x03, 0x22, 0x4e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x6f, 0x6e, 0x65, 0x10, 0x04, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x10, + 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, + 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x10, 0x06, 0x22, 0xba, 0x01, 0x0a, 0x18, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, - 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x1a, 0x2c, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 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, 0x1a, 0x2f, 0x0a, 0x12, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x1a, 0x13, 0x0a, 0x11, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x41, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x42, 0x05, 0x0a, 0x03, 0x6f, 0x70, - 0x74, 0x22, 0x34, 0x0a, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xf2, 0x03, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x34, 0x0a, 0x19, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x55, + 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x69, + 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x06, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, + 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x62, 0x0a, 0x0b, + 0x61, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0xca, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x1a, 0x2c, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 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, 0x1a, 0x2f, + 0x0a, 0x12, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x1a, + 0x13, 0x0a, 0x11, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x42, 0x05, 0x0a, 0x03, 0x6f, 0x70, 0x74, 0x22, 0x34, 0x0a, 0x19, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, - 0x64, 0x22, 0x64, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, - 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb6, 0x05, 0x0a, 0x10, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, + 0x64, 0x22, 0x62, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x34, 0x0a, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, + 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x1c, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xb6, 0x05, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3c, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x74, + 0x61, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x65, 0x74, 0x61, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x4d, 0x0a, 0x14, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x1c, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x53, 0x0a, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, - 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0d, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, - 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, - 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x74, 0x61, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x22, 0x4d, 0x0a, 0x14, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x22, 0x64, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x1a, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x5e, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x64, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, - 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x52, 0x0a, 0x0f, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3f, - 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x6e, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x22, - 0xa9, 0x02, 0x0a, 0x18, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, - 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x73, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, - 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x19, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x62, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x62, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, + 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x1a, + 0x5e, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3b, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x64, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x52, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x69, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3f, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x44, 0x69, 0x73, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, + 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x22, 0xa9, 0x02, 0x0a, 0x18, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, + 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x19, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x62, + 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x62, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xd9, 0x01, 0x0a, 0x19, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x6f, + 0x64, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x49, 0x64, 0x22, 0xc2, 0x02, 0x0a, 0x1a, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x69, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, + 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, + 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xd9, 0x01, 0x0a, - 0x19, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x50, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x3c, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x1b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x69, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x66, 0x0a, 0x1e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0xec, 0x02, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x47, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, - 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xc2, 0x02, 0x0a, 0x1a, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x50, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x3c, 0x0a, - 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x53, - 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x1b, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x66, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x64, 0x6b, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x68, 0x0a, 0x20, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x44, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xec, 0x02, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x47, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, - 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x6f, 0x64, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, + 0x2e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, + 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, + 0x57, 0x0a, 0x16, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x61, 0x69, + 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x4d, - 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 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, 0x2e, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x57, 0x0a, 0x16, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x09, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x60, - 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0xeb, 0x01, 0x0a, 0x1d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, - 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x1a, 0x5a, 0x0a, 0x0a, 0x50, 0x61, 0x69, 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, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x69, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, - 0x72, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x07, - 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x72, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x74, 0x61, - 0x6c, 0x6f, 0x67, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x40, 0x0a, - 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, - 0x70, 0x0a, 0x0f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x6f, 0x63, - 0x6b, 0x65, 0x72, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x6f, - 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x64, 0x6f, - 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 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, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, 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, 0xed, 0x02, 0x0a, 0x17, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x50, 0x0a, 0x10, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x59, - 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x61, - 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x6e, 0x74, - 0x69, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x14, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, - 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x12, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x6e, 0x74, 0x69, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, - 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x50, 0x6c, 0x61, 0x63, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x10, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, - 0x67, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x56, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xec, 0x01, - 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x42, 0x0a, - 0x0b, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, - 0x79, 0x4b, 0x65, 0x79, 0x12, 0x56, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe1, 0x01, 0x0a, - 0x18, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x70, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x60, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xeb, 0x01, 0x0a, + 0x1d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x73, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x64, 0x12, 0x4f, 0x0a, + 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x69, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x1a, 0x5a, + 0x0a, 0x0a, 0x50, 0x61, 0x69, 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, 0x36, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x06, 0x0a, 0x02, 0x49, 0x6e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x03, - 0x12, 0x06, 0x0a, 0x02, 0x47, 0x74, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x74, 0x10, 0x05, - 0x22, 0x37, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x53, 0x6e, - 0x61, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x31, 0x0a, 0x17, 0x52, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa3, 0x0f, 0x0a, - 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x68, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, - 0x03, 0x63, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x63, 0x6f, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x69, 0x0a, 0x1f, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, - 0x65, 0x74, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x2b, - 0x0a, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x57, 0x0a, 0x11, 0x73, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x56, 0x6f, 0x6c, 0x53, 0x6e, 0x61, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x69, - 0x63, 0x6b, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, - 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x43, 0x0a, - 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, - 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, - 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, - 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, - 0x12, 0x57, 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x73, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x12, 0x34, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x08, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x40, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x70, 0x0a, 0x0f, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, + 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x0e, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, + 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, + 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 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, 0x1a, 0x3c, 0x0a, 0x0e, + 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x69, 0x64, 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, 0xed, 0x02, 0x0a, 0x17, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x73, 0x68, 0x69, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x4a, 0x0a, 0x0d, 0x66, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x0c, 0x66, 0x70, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x42, - 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, - 0x2d, 0x0a, 0x13, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6b, - 0x75, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6f, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x6b, 0x75, 0x70, 0x53, 0x72, 0x63, 0x12, 0x39, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, 0x63, 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x12, - 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, - 0x65, 0x52, 0x0a, 0x69, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x43, 0x0a, - 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x50, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, - 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, - 0x61, 0x64, 0x22, 0x60, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 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, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x70, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2a, 0x8a, 0x03, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x18, - 0x0a, 0x14, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, - 0x51, 0x55, 0x4f, 0x52, 0x55, 0x4d, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, - 0x06, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x49, 0x4e, - 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, - 0x10, 0x08, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, - 0x52, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x09, 0x12, - 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, - 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x42, 0x41, 0x4c, - 0x41, 0x4e, 0x43, 0x45, 0x10, 0x0b, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x5f, 0x52, - 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x54, 0x41, 0x54, + 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x59, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x5f, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x6e, 0x74, 0x69, 0x41, 0x66, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x66, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x79, 0x12, 0x56, 0x0a, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x6e, 0x74, + 0x69, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x12, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x6e, + 0x74, 0x69, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x65, + 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x2b, 0x0a, 0x11, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x4b, 0x65, 0x79, 0x12, + 0x56, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xec, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x65, 0x6e, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, + 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, + 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, + 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x56, + 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x18, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4b, 0x0a, + 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x6e, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x6f, 0x65, 0x73, + 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x74, + 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x74, 0x10, 0x05, 0x22, 0x37, 0x0a, 0x19, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x53, 0x6e, 0x61, 0x73, 0x68, 0x6f, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x22, 0x31, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, + 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa3, 0x0f, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, + 0x68, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x68, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x03, 0x63, 0x6f, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, + 0x63, 0x6f, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x09, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2b, + 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3d, 0x0a, 0x06, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x57, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x53, 0x6e, 0x61, + 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x10, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3d, + 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x12, 0x2c, 0x0a, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6a, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, + 0x63, 0x61, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, + 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, + 0x69, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x57, 0x0a, 0x12, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, + 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x52, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x56, 0x6f, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, + 0x68, 0x69, 0x70, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x3c, + 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4a, 0x0a, 0x0d, + 0x66, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x66, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x16, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x14, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x76, 0x34, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x6f, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x72, 0x63, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x42, 0x6b, 0x75, 0x70, 0x53, 0x72, 0x63, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, + 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x76, 0x34, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, + 0x75, 0x74, 0x6f, 0x46, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, + 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x49, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x0a, 0x69, 0x6f, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, + 0x68, 0x65, 0x61, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x61, 0x68, 0x65, 0x61, 0x64, 0x22, 0x60, 0x0a, 0x17, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, + 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, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x56, + 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, + 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2a, 0x8a, 0x03, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, + 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x49, + 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x46, 0x46, + 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x51, 0x55, 0x4f, 0x52, 0x55, 0x4d, - 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x0d, 0x12, 0x1a, 0x0a, - 0x16, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x4d, 0x41, 0x49, 0x4e, - 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x0e, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x0f, 0x2a, 0x99, 0x01, 0x0a, 0x0a, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x52, 0x49, 0x56, - 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x14, - 0x0a, 0x10, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, - 0x4c, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, - 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, - 0x0a, 0x11, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, - 0x41, 0x50, 0x48, 0x10, 0x05, 0x2a, 0xa8, 0x01, 0x0a, 0x06, 0x46, 0x53, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, - 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x54, - 0x52, 0x46, 0x53, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x45, 0x58, 0x54, 0x34, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x53, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x46, 0x55, 0x53, 0x45, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x53, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x46, 0x53, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x53, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x46, 0x53, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x46, - 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x46, 0x53, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, - 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x5a, 0x46, 0x53, 0x10, 0x07, 0x12, 0x11, 0x0a, - 0x0d, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x46, 0x53, 0x76, 0x32, 0x10, 0x08, - 0x2a, 0xab, 0x01, 0x0a, 0x15, 0x47, 0x72, 0x61, 0x70, 0x68, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x52, - 0x41, 0x50, 0x48, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x25, 0x0a, - 0x21, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x44, 0x52, + 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x43, + 0x4f, 0x4d, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, + 0x45, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x08, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x44, + 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, + 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, + 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x0b, + 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, + 0x47, 0x45, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, + 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x49, 0x4e, 0x5f, 0x51, 0x55, 0x4f, 0x52, 0x55, 0x4d, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, + 0x45, 0x10, 0x0e, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x41, + 0x58, 0x10, 0x0f, 0x2a, 0x99, 0x01, 0x0a, 0x0a, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x52, 0x49, 0x56, + 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x15, + 0x0a, 0x11, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x19, 0x0a, + 0x15, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, + 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x52, 0x49, 0x56, + 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x50, 0x48, 0x10, 0x05, 0x2a, + 0xa8, 0x01, 0x0a, 0x06, 0x46, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x53, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x54, 0x52, 0x46, 0x53, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x34, 0x10, + 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x53, + 0x45, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x46, 0x53, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x56, 0x46, 0x53, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x58, 0x46, 0x53, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x53, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x5a, 0x46, 0x53, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x53, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x58, 0x46, 0x53, 0x76, 0x32, 0x10, 0x08, 0x2a, 0xab, 0x01, 0x0a, 0x15, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x52, 0x41, 0x50, - 0x48, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x74, - 0x0a, 0x0c, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x12, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, - 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x10, 0x01, 0x12, - 0x19, 0x0a, 0x15, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, - 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, - 0x46, 0x59, 0x10, 0x03, 0x2a, 0xa4, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, - 0x14, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, - 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, - 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x52, 0x49, 0x56, - 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x05, 0x2a, 0x87, 0x01, 0x0a, 0x0f, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x16, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, - 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4c, 0x45, - 0x52, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4c, 0x45, 0x52, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x6a, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x4f, - 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x41, - 0x4d, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x4c, 0x55, - 0x4d, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, - 0x4f, 0x46, 0x46, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x4f, 0x4e, 0x10, - 0x02, 0x2a, 0x32, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, - 0x49, 0x47, 0x48, 0x10, 0x03, 0x2a, 0xc4, 0x01, 0x0a, 0x09, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, - 0x45, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x11, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x52, 0x41, 0x4e, - 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, - 0x49, 0x4c, 0x45, 0x5f, 0x44, 0x42, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4f, 0x5f, 0x50, - 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x44, 0x42, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, - 0x5f, 0x43, 0x4d, 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, - 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, - 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, - 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4f, 0x5f, 0x50, 0x52, - 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x07, 0x2a, 0x99, 0x02, 0x0a, - 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, - 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, - 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1a, 0x0a, - 0x16, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x56, - 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4f, 0x4c, - 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, - 0x45, 0x44, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x04, 0x12, - 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x44, 0x45, 0x54, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12, 0x1e, - 0x0a, 0x1a, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, - 0x52, 0x59, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x18, - 0x0a, 0x14, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, - 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x09, 0x2a, 0x8f, 0x01, 0x0a, 0x0c, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x4f, 0x4c, - 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, - 0x12, 0x14, 0x0a, 0x10, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1a, - 0x0a, 0x16, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x9d, 0x01, 0x0a, 0x16, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, - 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, - 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x41, 0x46, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x49, - 0x58, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x49, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0x5d, 0x0a, 0x0d, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x17, 0x53, - 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x4d, 0x41, - 0x47, 0x4e, 0x45, 0x54, 0x49, 0x43, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x4f, 0x52, - 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x53, 0x53, 0x44, 0x10, 0x01, - 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, - 0x55, 0x4d, 0x5f, 0x4e, 0x56, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0x65, 0x0a, 0x0b, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x54, 0x54, 0x41, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, - 0x4c, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x20, - 0x0a, 0x1c, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, - 0x2a, 0x54, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x5f, 0x46, - 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x4f, - 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x46, - 0x4f, 0x52, 0x43, 0x45, 0x10, 0x02, 0x2a, 0x4c, 0x0a, 0x0c, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x14, - 0x0a, 0x10, 0x42, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x58, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x49, 0x53, 0x43, 0x53, 0x49, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x46, 0x53, 0x10, 0x03, - 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x04, 0x2a, 0xaf, 0x01, 0x0a, - 0x0d, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, - 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, - 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, - 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4e, 0x46, 0x53, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, - 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x33, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, - 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x58, 0x44, 0x10, - 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, - 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x55, 0x52, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x04, - 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, - 0x4f, 0x4c, 0x5f, 0x50, 0x55, 0x52, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x05, 0x2a, 0x98, - 0x01, 0x0a, 0x0e, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x41, 0x53, 0x54, 0x50, - 0x41, 0x54, 0x48, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, - 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, - 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, - 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, - 0x10, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, - 0x47, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x05, 0x2a, 0x81, 0x01, 0x0a, 0x10, 0x46, 0x61, - 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, - 0x0a, 0x16, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, - 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x41, - 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x4e, 0x56, 0x4d, - 0x45, 0x4f, 0x46, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x53, - 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x49, 0x53, 0x43, 0x53, - 0x49, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, - 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x03, 0x2a, 0x71, 0x0a, - 0x19, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x04, - 0x2a, 0xce, 0x01, 0x0a, 0x0e, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, - 0x64, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, - 0x65, 0x6b, 0x64, 0x61, 0x79, 0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x10, 0x00, 0x12, 0x18, 0x0a, - 0x14, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x4d, - 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x54, 0x69, - 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, - 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, - 0x6b, 0x64, 0x61, 0x79, 0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x10, 0x03, 0x12, - 0x1a, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, - 0x79, 0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x53, - 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x46, 0x72, 0x69, - 0x64, 0x61, 0x79, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x10, - 0x06, 0x2a, 0x59, 0x0a, 0x18, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, - 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x7f, 0x0a, 0x19, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x53, - 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, - 0x1a, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x02, 0x2a, 0x7c, 0x0a, - 0x14, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x6b, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x47, 0x52, 0x41, 0x50, 0x48, + 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x22, + 0x0a, 0x1e, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x44, 0x52, 0x49, 0x56, + 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x74, 0x0a, 0x0c, 0x53, 0x65, 0x76, 0x65, + 0x72, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x56, 0x45, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x56, + 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x03, 0x2a, 0xa4, + 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, + 0x01, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, + 0x45, 0x52, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, + 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x4f, 0x4f, 0x4c, 0x10, 0x05, 0x2a, 0x87, 0x01, 0x0a, 0x0f, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4c, 0x45, + 0x52, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, + 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, + 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x2a, + 0x6a, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x01, 0x12, + 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x32, 0x0a, 0x07, 0x43, + 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, + 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x2a, + 0xc4, 0x01, 0x0a, 0x09, 0x49, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x19, 0x0a, + 0x15, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x45, 0x51, 0x55, + 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4f, 0x5f, 0x50, + 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, + 0x11, 0x0a, 0x0d, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x44, 0x42, + 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, + 0x5f, 0x44, 0x42, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, + 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x4d, 0x53, 0x10, 0x04, + 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, + 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, + 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, + 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x07, 0x2a, 0x99, 0x02, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, + 0x14, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x4c, 0x55, 0x4d, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x19, + 0x0a, 0x15, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, + 0x45, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x4c, + 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x54, 0x43, + 0x48, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x18, + 0x0a, 0x14, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x56, 0x4f, 0x4c, 0x55, + 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x54, + 0x41, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4f, 0x4c, 0x55, + 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, + 0x10, 0x09, 0x2a, 0x8f, 0x01, 0x0a, 0x0c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x56, + 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x4f, + 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, + 0x12, 0x16, 0x0a, 0x12, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x4c, 0x55, + 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, + 0x45, 0x44, 0x10, 0x04, 0x2a, 0x9d, 0x01, 0x0a, 0x16, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x18, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1c, 0x0a, + 0x18, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x46, + 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x53, 0x41, 0x46, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x49, 0x58, 0x10, 0x02, 0x12, 0x25, 0x0a, + 0x21, 0x46, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0x5d, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, + 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x4d, 0x41, 0x47, 0x4e, 0x45, 0x54, 0x49, 0x43, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x45, + 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x53, 0x53, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x4e, 0x56, 0x4d, + 0x45, 0x10, 0x02, 0x2a, 0x65, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x19, 0x0a, + 0x15, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x54, 0x54, 0x41, + 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x2a, 0x54, 0x0a, 0x0e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x10, + 0x4f, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, + 0x53, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x10, 0x02, + 0x2a, 0x4c, 0x0a, 0x0c, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x61, 0x72, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x10, 0x02, 0x2a, 0x46, + 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x50, 0x58, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x53, 0x43, 0x53, 0x49, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x46, 0x53, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x04, 0x2a, 0xaf, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x58, + 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4e, 0x46, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, + 0x33, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, + 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x58, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x50, + 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x55, + 0x52, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, + 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x55, 0x52, + 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x05, 0x2a, 0x98, 0x01, 0x0a, 0x0e, 0x46, 0x61, 0x73, + 0x74, 0x70, 0x61, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x46, + 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, + 0x54, 0x48, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x53, 0x54, 0x50, + 0x41, 0x54, 0x48, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x14, 0x0a, + 0x10, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, + 0x44, 0x10, 0x05, 0x2a, 0x81, 0x01, 0x0a, 0x10, 0x46, 0x61, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x53, 0x54, + 0x50, 0x41, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, + 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x4e, 0x56, 0x4d, 0x45, 0x4f, 0x46, 0x5f, 0x54, 0x43, + 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, + 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x49, 0x53, 0x43, 0x53, 0x49, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x46, 0x41, 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, + 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x03, 0x2a, 0x7f, 0x0a, 0x1b, 0x4e, 0x65, 0x61, 0x72, 0x53, + 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, + 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4e, 0x4f, 0x4e, + 0x45, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x59, 0x4e, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, + 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x71, 0x0a, 0x19, 0x41, 0x6e, 0x6f, 0x6e, + 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x04, 0x2a, 0xce, 0x01, 0x0a, 0x0e, + 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x18, + 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, + 0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, + 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, + 0x6b, 0x64, 0x61, 0x79, 0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x10, 0x02, 0x12, 0x1b, 0x0a, + 0x17, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x57, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x64, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x54, 0x68, 0x75, 0x72, + 0x73, 0x64, 0x61, 0x79, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, + 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x10, 0x05, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x64, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x64, + 0x61, 0x79, 0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x10, 0x06, 0x2a, 0x59, 0x0a, 0x18, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, + 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x7f, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x10, 0x02, 0x2a, 0x88, 0x03, 0x0a, 0x18, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x26, 0x0a, - 0x22, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x44, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x02, 0x2a, 0xda, 0x01, 0x0a, 0x14, 0x53, 0x64, 0x6b, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x4f, 0x70, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x4e, 0x65, + 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6c, 0x6f, 0x6e, + 0x65, 0x4f, 0x70, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, + 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x41, 0x64, + 0x64, 0x4f, 0x70, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, + 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x4f, 0x70, 0x10, 0x05, 0x2a, 0xf3, 0x04, 0x0a, 0x18, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, - 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x04, - 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x6f, 0x70, - 0x70, 0x65, 0x64, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x64, 0x6b, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x22, 0x0a, - 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x10, - 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x10, 0x09, 0x2a, 0xbc, 0x01, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, - 0x12, 0x25, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x02, 0x12, - 0x24, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x70, 0x10, 0x03, 0x2a, 0x2e, 0x0a, 0x0f, 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x72, 0x65, 0x64, 0x10, 0x01, 0x2a, 0x4a, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, - 0x0d, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x42, 0x4b, 0x55, 0x50, 0x53, 0x52, 0x43, 0x10, 0x00, - 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x55, 0x45, 0x10, - 0x02, 0x32, 0xb0, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0xa6, 0x01, 0x0a, 0x14, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, 0x65, - 0x72, 0x74, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x30, 0x01, - 0x12, 0x72, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, - 0x73, 0x3a, 0x01, 0x2a, 0x32, 0xd5, 0x04, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, - 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x07, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, - 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, - 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x71, 0x0a, 0x06, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, + 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x44, 0x6f, 0x6e, 0x65, 0x10, + 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x41, 0x62, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x05, 0x12, + 0x22, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x09, + 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, + 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x44, 0x6f, + 0x6e, 0x65, 0x10, 0x0b, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, 0x53, + 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, + 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, + 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x4e, 0x65, + 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x64, 0x6b, 0x4e, + 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x64, 0x6b, + 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x10, 0x2a, 0xa8, 0x02, 0x0a, 0x1c, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, + 0x6d, 0x65, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x64, + 0x6b, 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x04, 0x12, 0x23, + 0x0a, 0x1f, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x65, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x64, 0x6b, 0x4e, 0x65, 0x61, 0x72, 0x53, 0x79, + 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x6f, 0x70, 0x10, 0x06, 0x2a, 0x2e, 0x0a, 0x0f, 0x45, 0x6e, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x10, 0x01, 0x2a, 0x4a, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, + 0x0a, 0x0d, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x42, 0x4b, 0x55, 0x50, 0x53, 0x52, 0x43, 0x10, + 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x55, 0x45, + 0x10, 0x02, 0x32, 0xb0, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0xa6, 0x01, 0x0a, 0x14, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, + 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x30, + 0x01, 0x12, 0x72, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x2a, 0x10, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6d, 0x0a, - 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x1a, 0x09, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x32, 0x87, 0x06, 0x0a, - 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x12, 0x8e, 0x01, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, - 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, - 0x69, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x32, 0xd5, 0x04, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x7c, 0x0a, + 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, + 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x71, 0x0a, 0x06, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x2a, 0x10, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6d, + 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, + 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x1a, + 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x32, 0xb9, 0x08, + 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x12, 0x8e, 0x01, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, + 0x72, 0x69, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x9d, 0x01, - 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x9d, + 0x01, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, + 0x72, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x6f, + 0x2d, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x99, + 0x01, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, - 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x2d, - 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x99, 0x01, - 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, - 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x2d, 0x66, 0x73, 0x74, - 0x72, 0x69, 0x6d, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x04, 0x53, 0x74, - 0x6f, 0x70, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x69, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x2d, 0x66, 0x73, + 0x74, 0x72, 0x69, 0x6d, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x04, 0x53, + 0x74, 0x6f, 0x70, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x73, - 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x32, 0xd5, 0x03, 0x0a, 0x1a, 0x4f, 0x70, 0x65, 0x6e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x91, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8d, - 0x01, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x65, 0x6d, 0x54, 0x72, 0x69, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, + 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x12, 0x98, 0x01, 0x0a, 0x0e, 0x41, 0x75, 0x74, 0x6f, + 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, + 0x53, 0x54, 0x72, 0x69, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x61, + 0x75, 0x74, 0x6f, 0x2d, 0x66, 0x73, 0x74, 0x72, 0x69, 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x3a, + 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, + 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, + 0x54, 0x72, 0x69, 0x6d, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x46, 0x53, 0x54, 0x72, 0x69, 0x6d, 0x50, 0x6f, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x28, 0x22, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x2d, 0x66, 0x73, 0x74, 0x72, + 0x69, 0x6d, 0x2d, 0x70, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x32, 0xd5, 0x03, 0x0a, 0x1a, 0x4f, 0x70, + 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x91, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x32, 0xb3, - 0x02, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x96, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x2f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x82, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6f, 0x70, + 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, + 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, + 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, + 0x2a, 0x32, 0xb3, 0x02, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x96, 0x01, 0x0a, 0x0c, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, - 0x31, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xb1, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x9a, 0x01, 0x0a, 0x0e, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x30, + 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x32, 0xee, 0x06, 0x0a, 0x16, 0x4f, 0x70, 0x65, - 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x69, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x2e, 0x53, 0x64, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, + 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xb1, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x6e, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x9a, + 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x69, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x88, 0x01, 0x0a, 0x09, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x32, 0xee, 0x06, 0x0a, 0x16, + 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x69, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x07, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x88, 0x01, + 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x94, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, + 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, + 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x32, 0xb9, 0x05, 0x0a, + 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x09, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, + 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0xa6, 0x01, + 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x69, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x94, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, - 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x69, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x32, 0xb9, 0x05, 0x0a, 0x19, 0x4f, 0x70, - 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0xa6, 0x01, 0x0a, 0x07, 0x49, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x63, + 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x73, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x31, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x73, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x12, 0xb2, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, - 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, - 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xac, 0x06, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x8d, 0x01, 0x0a, 0x06, 0x52, 0x65, - 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x1a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x69, - 0x7a, 0x65, 0x2f, 0x7b, 0x75, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x8a, 0x01, 0x0a, 0x09, 0x52, 0x65, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x35, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xac, 0x06, 0x0a, 0x0f, 0x4f, 0x70, 0x65, + 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x8d, 0x01, 0x0a, + 0x06, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x1a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa9, - 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, - 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x1a, 0x1e, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, + 0x65, 0x73, 0x69, 0x7a, 0x65, 0x2f, 0x7b, 0x75, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x8a, 0x01, 0x0a, + 0x09, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x16, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x1a, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, + 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x17, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x1a, 0x23, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, + 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa7, 0x01, + 0x0a, 0x16, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x2f, 0x6a, 0x6f, 0x62, 0x32, 0x86, 0x01, 0x0a, 0x10, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x61, 0x67, 0x73, 0x12, 0x72, 0x0a, 0x07, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x2f, 0x6a, 0x6f, 0x62, 0x32, 0x86, 0x01, 0x0a, 0x10, 0x4f, 0x70, 0x65, 0x6e, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x61, 0x67, 0x73, 0x12, 0x72, 0x0a, 0x07, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, + 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0e, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x61, 0x67, 0x73, 0x3a, 0x01, 0x2a, + 0x32, 0xec, 0x02, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x4a, 0x6f, 0x62, 0x12, 0x6f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x44, 0x69, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, - 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x61, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x32, 0xec, 0x02, - 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4a, 0x6f, 0x62, - 0x12, 0x6f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, + 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x12, 0x1a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x1a, - 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, - 0x2a, 0x12, 0x75, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, + 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, + 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x72, 0x0a, 0x09, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x45, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x32, + 0x8b, 0x0c, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x7f, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x47, 0x65, 0x74, - 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x6a, - 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x72, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, + 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, + 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x73, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x32, 0xf8, 0x0a, 0x0a, - 0x0f, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x7f, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, - 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, - 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x73, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, - 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x14, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, - 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x11, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, - 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x7b, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6c, 0x61, - 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x12, - 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, - 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6c, - 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, - 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x75, 0x73, 0x61, 0x67, - 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x10, - 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x1a, 0x25, 0x2f, 0x76, 0x31, 0x2f, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2f, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xac, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x1a, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x01, 0x2a, 0x12, 0xb1, 0x01, 0x0a, 0x13, 0x55, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x6f, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x9c, 0x01, + 0x0a, 0x14, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, + 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x6e, + 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x9b, 0x01, 0x0a, + 0x11, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, + 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, + 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, + 0x67, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x61, + 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x75, + 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x96, + 0x01, 0x0a, 0x10, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x72, 0x61, + 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x1a, 0x25, 0x2f, + 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xac, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x72, 0x64, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, 0x26, 0x2f, 0x76, - 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x32, 0x9d, 0x04, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x6c, 0x0a, - 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x1a, 0x27, 0x2f, 0x76, 0x31, 0x2f, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xb1, 0x01, 0x0a, 0x13, 0x55, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, + 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x7b, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x42, 0x79, + 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x2f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x01, 0x2a, 0x32, 0x9d, 0x04, + 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x12, 0x6c, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, - 0x31, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x06, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3a, 0x01, + 0x2a, 0x12, 0x75, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, + 0x2a, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x7b, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x0b, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2f, 0x7b, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, + 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x32, 0xee, 0x12, + 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x12, 0x73, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x2f, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x01, 0x2a, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x32, 0xee, 0x12, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x73, 0x0a, - 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x10, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0x76, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x12, 0x26, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7c, 0x0a, 0x06, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x76, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x6e, + 0x65, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, + 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, + 0x12, 0x7c, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x87, + 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, - 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x87, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x69, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, - 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x76, - 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x77, 0x69, 0x74, 0x68, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, - 0x7f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, + 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x77, 0x69, 0x74, 0x68, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x7f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x17, 0x2f, 0x76, 0x31, 0x2f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x7f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, + 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, - 0x12, 0x7f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, - 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2f, - 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x09, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0xa5, 0x01, 0x0a, 0x14, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x95, - 0x01, 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x76, - 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa0, 0x01, 0x0a, 0x0f, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0x79, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2a, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, + 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0xa5, 0x01, 0x0a, + 0x14, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x72, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x11, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, - 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, - 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0xd3, 0x01, 0x0a, 0x1c, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, - 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, + 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x22, - 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xc2, 0x01, - 0x0a, 0x16, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, - 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, - 0x01, 0x2a, 0x12, 0x83, 0x01, 0x0a, 0x0d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x74, - 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa0, 0x01, 0x0a, + 0x0f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, + 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, + 0x9b, 0x01, 0x0a, 0x11, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0xd3, 0x01, + 0x0a, 0x1c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2f, 0x63, 0x61, - 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x3a, 0x01, 0x2a, 0x32, 0x99, 0x04, 0x0a, 0x16, 0x4f, 0x70, 0x65, - 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x12, 0x7e, 0x0a, 0x06, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x27, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x12, 0x27, 0x2e, + 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, - 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x05, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, - 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x01, 0x2a, 0x12, 0xc2, 0x01, 0x0a, 0x16, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x37, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x83, 0x01, 0x0a, 0x0d, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, - 0x82, 0x01, 0x0a, 0x07, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x6f, 0x70, + 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x3a, 0x01, 0x2a, 0x32, 0x99, + 0x04, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x7e, 0x0a, 0x06, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, + 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x06, 0x44, 0x65, 0x74, + 0x61, 0x63, 0x68, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, + 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, + 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x05, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x76, 0x31, + 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x01, 0x0a, 0x07, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, 0x75, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x3a, 0x01, 0x2a, 0x32, 0xad, 0x03, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, - 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, - 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x2d, 0x2e, 0x6f, 0x70, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, + 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x2f, + 0x75, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x32, 0xad, 0x03, 0x0a, 0x12, 0x4f, + 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x12, 0x82, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x6d, 0x69, - 0x67, 0x72, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0x12, - 0x82, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x6d, 0x69, 0x67, - 0x72, 0x61, 0x74, 0x65, 0x32, 0xe4, 0x04, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, - 0x9b, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x82, 0x01, - 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2c, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, + 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x6d, 0x69, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x32, 0xe4, 0x04, 0x0a, 0x16, 0x4f, + 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x2f, 0x7b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, + 0x69, 0x64, 0x7d, 0x12, 0x82, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x1a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x32, 0xb2, 0x08, 0x0a, 0x16, - 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x7f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x1a, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x09, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, - 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x12, 0x97, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x2c, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8c, 0x01, 0x0a, 0x06, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x06, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x1a, 0x21, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, + 0x2a, 0x32, 0xb2, 0x08, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x7f, 0x0a, 0x06, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x35, 0x2e, + 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, + 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x1a, 0x1f, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, + 0x85, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2c, 0x2a, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x97, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, + 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, - 0x32, 0xff, 0x05, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x8c, - 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, - 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x19, 0x1a, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, - 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, + 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x7b, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb5, + 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x2a, 0x2a, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x32, 0xff, 0x05, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, + 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, + 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x1a, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, + 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, + 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x90, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, - 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x30, 0x2e, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0x9e, 0x12, 0x0a, 0x16, 0x4f, 0x70, 0x65, + 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x12, 0x82, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x97, 0x01, 0x0a, 0x0b, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, + 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x2d, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, - 0x90, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, + 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2c, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x32, 0x9e, 0x12, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x82, 0x01, - 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0x97, 0x01, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x73, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, - 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, + 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x73, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x61, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, + 0xbe, 0x01, 0x0a, 0x14, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, + 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, + 0x12, 0x89, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, + 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, + 0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x73, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, - 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x73, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x3a, 0x01, 0x2a, 0x12, 0x9a, 0x01, 0x0a, + 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x12, - 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x61, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0xbe, 0x01, 0x0a, 0x14, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2f, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x89, 0x01, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, + 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x73, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x7b, 0x73, 0x72, 0x63, 0x5f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9d, 0x01, 0x0a, 0x0b, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xad, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, 0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, - 0x6f, 0x67, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x63, 0x61, 0x74, 0x61, - 0x6c, 0x6f, 0x67, 0x3a, 0x01, 0x2a, 0x12, 0x9a, 0x01, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x7b, 0x73, 0x72, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x7d, 0x12, 0x9d, 0x01, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x01, - 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, - 0x1a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, - 0xad, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, - 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, - 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, - 0xa1, 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, - 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, - 0x69, 0x7a, 0x65, 0x32, 0x8f, 0x0a, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x91, 0x01, 0x0a, 0x06, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x04, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x53, 0x64, 0x6b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x69, + 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x69, 0x7a, 0x65, 0x32, 0x8f, 0x0a, 0x0a, 0x11, 0x4f, 0x70, + 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x91, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x3a, 0x01, 0x2a, 0x12, 0x97, 0x01, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, - 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x97, 0x01, - 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, + 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0xa0, 0x01, + 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, + 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0x91, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x1a, 0x13, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x95, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, + 0x2a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xac, 0x01, 0x0a, + 0x0a, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x36, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, + 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xae, 0x01, 0x0a, 0x0e, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x3a, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, + 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, + 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x9c, 0x01, 0x0a, + 0x07, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, - 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x91, 0x01, 0x0a, 0x06, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, - 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x1a, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x95, - 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, - 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xae, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x3a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, - 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x9c, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x64, 0x6b, 0x4f, 0x70, 0x65, - 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x3a, 0x01, 0x2a, 0x42, 0x22, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x50, 0x01, 0x5a, 0x09, - 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x3b, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x3a, 0x01, 0x2a, 0x42, 0x22, 0x0a, 0x13, 0x63, + 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x3b, 0x61, 0x70, 0x69, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -34033,8 +35049,8 @@ func file_api_api_proto_rawDescGZIP() []byte { return file_api_api_proto_rawDescData } -var file_api_api_proto_enumTypes = make([]protoimpl.EnumInfo, 57) -var file_api_api_proto_msgTypes = make([]protoimpl.MessageInfo, 421) +var file_api_api_proto_enumTypes = make([]protoimpl.EnumInfo, 58) +var file_api_api_proto_msgTypes = make([]protoimpl.MessageInfo, 432) var file_api_api_proto_goTypes = []interface{}{ (Status)(0), // 0: openstorage.api.Status (DriverType)(0), // 1: openstorage.api.DriverType @@ -34057,1097 +35073,1122 @@ var file_api_api_proto_goTypes = []interface{}{ (ProxyProtocol)(0), // 18: openstorage.api.ProxyProtocol (FastpathStatus)(0), // 19: openstorage.api.FastpathStatus (FastpathProtocol)(0), // 20: openstorage.api.FastpathProtocol - (AnonymousBucketAccessMode)(0), // 21: openstorage.api.AnonymousBucketAccessMode - (SdkTimeWeekday)(0), // 22: openstorage.api.SdkTimeWeekday - (StorageRebalanceJobState)(0), // 23: openstorage.api.StorageRebalanceJobState - (SdkCloudBackupClusterType)(0), // 24: openstorage.api.SdkCloudBackupClusterType - (SdkCloudBackupOpType)(0), // 25: openstorage.api.SdkCloudBackupOpType - (SdkCloudBackupStatusType)(0), // 26: openstorage.api.SdkCloudBackupStatusType - (SdkCloudBackupRequestedState)(0), // 27: openstorage.api.SdkCloudBackupRequestedState - (EnforcementType)(0), // 28: openstorage.api.EnforcementType - (RestoreParamBoolType)(0), // 29: openstorage.api.RestoreParamBoolType - (Xattr_Value)(0), // 30: openstorage.api.Xattr.Value - (Sharedv4ServiceSpec_ServiceType)(0), // 31: openstorage.api.Sharedv4ServiceSpec.ServiceType - (Sharedv4FailoverStrategy_Value)(0), // 32: openstorage.api.Sharedv4FailoverStrategy.Value - (ScanPolicy_ScanTrigger)(0), // 33: openstorage.api.ScanPolicy.ScanTrigger - (ScanPolicy_ScanAction)(0), // 34: openstorage.api.ScanPolicy.ScanAction - (VolumeSpecPolicy_PolicyOp)(0), // 35: openstorage.api.VolumeSpecPolicy.PolicyOp - (Ownership_AccessType)(0), // 36: openstorage.api.Ownership.AccessType - (StorageNode_SecurityStatus)(0), // 37: openstorage.api.StorageNode.SecurityStatus - (Job_Type)(0), // 38: openstorage.api.Job.Type - (Job_State)(0), // 39: openstorage.api.Job.State - (DiagsCollectionStatus_State)(0), // 40: openstorage.api.DiagsCollectionStatus.State - (StorageRebalanceTriggerThreshold_Type)(0), // 41: openstorage.api.StorageRebalanceTriggerThreshold.Type - (StorageRebalanceTriggerThreshold_Metric)(0), // 42: openstorage.api.StorageRebalanceTriggerThreshold.Metric - (StorageRebalanceWorkSummary_Type)(0), // 43: openstorage.api.StorageRebalanceWorkSummary.Type - (StorageRebalanceAudit_StorageRebalanceAction)(0), // 44: openstorage.api.StorageRebalanceAudit.StorageRebalanceAction - (SdkStoragePool_OperationStatus)(0), // 45: openstorage.api.SdkStoragePool.OperationStatus - (SdkStoragePool_OperationType)(0), // 46: openstorage.api.SdkStoragePool.OperationType - (SdkStoragePool_ResizeOperationType)(0), // 47: openstorage.api.SdkStoragePool.ResizeOperationType - (FilesystemTrim_FilesystemTrimStatus)(0), // 48: openstorage.api.FilesystemTrim.FilesystemTrimStatus - (FilesystemCheck_FilesystemCheckStatus)(0), // 49: openstorage.api.FilesystemCheck.FilesystemCheckStatus - (SdkServiceCapability_OpenStorageService_Type)(0), // 50: openstorage.api.SdkServiceCapability.OpenStorageService.Type - (SdkVersion_Version)(0), // 51: openstorage.api.SdkVersion.Version - (CloudMigrate_OperationType)(0), // 52: openstorage.api.CloudMigrate.OperationType - (CloudMigrate_Stage)(0), // 53: openstorage.api.CloudMigrate.Stage - (CloudMigrate_Status)(0), // 54: openstorage.api.CloudMigrate.Status - (ClusterPairMode_Mode)(0), // 55: openstorage.api.ClusterPairMode.Mode - (LabelSelectorRequirement_Operator)(0), // 56: openstorage.api.LabelSelectorRequirement.Operator - (*StorageResource)(nil), // 57: openstorage.api.StorageResource - (*StoragePool)(nil), // 58: openstorage.api.StoragePool - (*SchedulerTopology)(nil), // 59: openstorage.api.SchedulerTopology - (*StoragePoolOperation)(nil), // 60: openstorage.api.StoragePoolOperation - (*TopologyRequirement)(nil), // 61: openstorage.api.TopologyRequirement - (*VolumeLocator)(nil), // 62: openstorage.api.VolumeLocator - (*VolumeInspectOptions)(nil), // 63: openstorage.api.VolumeInspectOptions - (*Source)(nil), // 64: openstorage.api.Source - (*Group)(nil), // 65: openstorage.api.Group - (*IoStrategy)(nil), // 66: openstorage.api.IoStrategy - (*Xattr)(nil), // 67: openstorage.api.Xattr - (*ExportSpec)(nil), // 68: openstorage.api.ExportSpec - (*NFSProxySpec)(nil), // 69: openstorage.api.NFSProxySpec - (*S3ProxySpec)(nil), // 70: openstorage.api.S3ProxySpec - (*PXDProxySpec)(nil), // 71: openstorage.api.PXDProxySpec - (*PureBlockSpec)(nil), // 72: openstorage.api.PureBlockSpec - (*PureFileSpec)(nil), // 73: openstorage.api.PureFileSpec - (*ProxySpec)(nil), // 74: openstorage.api.ProxySpec - (*Sharedv4ServiceSpec)(nil), // 75: openstorage.api.Sharedv4ServiceSpec - (*Sharedv4FailoverStrategy)(nil), // 76: openstorage.api.Sharedv4FailoverStrategy - (*Sharedv4Spec)(nil), // 77: openstorage.api.Sharedv4Spec - (*MountOptions)(nil), // 78: openstorage.api.MountOptions - (*FastpathReplState)(nil), // 79: openstorage.api.FastpathReplState - (*FastpathConfig)(nil), // 80: openstorage.api.FastpathConfig - (*ScanPolicy)(nil), // 81: openstorage.api.ScanPolicy - (*IoThrottle)(nil), // 82: openstorage.api.IoThrottle - (*VolumeSpec)(nil), // 83: openstorage.api.VolumeSpec - (*VolumeSpecUpdate)(nil), // 84: openstorage.api.VolumeSpecUpdate - (*VolumeSpecPolicy)(nil), // 85: openstorage.api.VolumeSpecPolicy - (*ReplicaSet)(nil), // 86: openstorage.api.ReplicaSet - (*RuntimeStateMap)(nil), // 87: openstorage.api.RuntimeStateMap - (*Ownership)(nil), // 88: openstorage.api.Ownership - (*Volume)(nil), // 89: openstorage.api.Volume - (*Stats)(nil), // 90: openstorage.api.Stats - (*CapacityUsageInfo)(nil), // 91: openstorage.api.CapacityUsageInfo - (*VolumeUsage)(nil), // 92: openstorage.api.VolumeUsage - (*VolumeUsageByNode)(nil), // 93: openstorage.api.VolumeUsageByNode - (*FstrimVolumeUsageInfo)(nil), // 94: openstorage.api.FstrimVolumeUsageInfo - (*RelaxedReclaimPurge)(nil), // 95: openstorage.api.RelaxedReclaimPurge - (*SdkStoragePolicy)(nil), // 96: openstorage.api.SdkStoragePolicy - (*Alert)(nil), // 97: openstorage.api.Alert - (*SdkAlertsTimeSpan)(nil), // 98: openstorage.api.SdkAlertsTimeSpan - (*SdkAlertsCountSpan)(nil), // 99: openstorage.api.SdkAlertsCountSpan - (*SdkAlertsOption)(nil), // 100: openstorage.api.SdkAlertsOption - (*SdkAlertsResourceTypeQuery)(nil), // 101: openstorage.api.SdkAlertsResourceTypeQuery - (*SdkAlertsAlertTypeQuery)(nil), // 102: openstorage.api.SdkAlertsAlertTypeQuery - (*SdkAlertsResourceIdQuery)(nil), // 103: openstorage.api.SdkAlertsResourceIdQuery - (*SdkAlertsQuery)(nil), // 104: openstorage.api.SdkAlertsQuery - (*SdkAlertsEnumerateWithFiltersRequest)(nil), // 105: openstorage.api.SdkAlertsEnumerateWithFiltersRequest - (*SdkAlertsEnumerateWithFiltersResponse)(nil), // 106: openstorage.api.SdkAlertsEnumerateWithFiltersResponse - (*SdkAlertsDeleteRequest)(nil), // 107: openstorage.api.SdkAlertsDeleteRequest - (*SdkAlertsDeleteResponse)(nil), // 108: openstorage.api.SdkAlertsDeleteResponse - (*Alerts)(nil), // 109: openstorage.api.Alerts - (*ObjectstoreInfo)(nil), // 110: openstorage.api.ObjectstoreInfo - (*VolumeCreateRequest)(nil), // 111: openstorage.api.VolumeCreateRequest - (*VolumeResponse)(nil), // 112: openstorage.api.VolumeResponse - (*VolumeCreateResponse)(nil), // 113: openstorage.api.VolumeCreateResponse - (*VolumeStateAction)(nil), // 114: openstorage.api.VolumeStateAction - (*VolumeSetRequest)(nil), // 115: openstorage.api.VolumeSetRequest - (*VolumeSetResponse)(nil), // 116: openstorage.api.VolumeSetResponse - (*SnapCreateRequest)(nil), // 117: openstorage.api.SnapCreateRequest - (*SnapCreateResponse)(nil), // 118: openstorage.api.SnapCreateResponse - (*VolumeInfo)(nil), // 119: openstorage.api.VolumeInfo - (*VolumeConsumer)(nil), // 120: openstorage.api.VolumeConsumer - (*VolumeServiceRequest)(nil), // 121: openstorage.api.VolumeServiceRequest - (*VolumeServiceInstanceResponse)(nil), // 122: openstorage.api.VolumeServiceInstanceResponse - (*VolumeServiceResponse)(nil), // 123: openstorage.api.VolumeServiceResponse - (*GraphDriverChanges)(nil), // 124: openstorage.api.GraphDriverChanges - (*ClusterResponse)(nil), // 125: openstorage.api.ClusterResponse - (*ActiveRequest)(nil), // 126: openstorage.api.ActiveRequest - (*ActiveRequests)(nil), // 127: openstorage.api.ActiveRequests - (*GroupSnapCreateRequest)(nil), // 128: openstorage.api.GroupSnapCreateRequest - (*GroupSnapCreateResponse)(nil), // 129: openstorage.api.GroupSnapCreateResponse - (*StorageNode)(nil), // 130: openstorage.api.StorageNode - (*StorageCluster)(nil), // 131: openstorage.api.StorageCluster - (*BucketCreateRequest)(nil), // 132: openstorage.api.BucketCreateRequest - (*BucketCreateResponse)(nil), // 133: openstorage.api.BucketCreateResponse - (*BucketDeleteRequest)(nil), // 134: openstorage.api.BucketDeleteRequest - (*BucketDeleteResponse)(nil), // 135: openstorage.api.BucketDeleteResponse - (*BucketGrantAccessRequest)(nil), // 136: openstorage.api.BucketGrantAccessRequest - (*BucketGrantAccessResponse)(nil), // 137: openstorage.api.BucketGrantAccessResponse - (*BucketRevokeAccessRequest)(nil), // 138: openstorage.api.BucketRevokeAccessRequest - (*BucketRevokeAccessResponse)(nil), // 139: openstorage.api.BucketRevokeAccessResponse - (*BucketAccessCredentials)(nil), // 140: openstorage.api.BucketAccessCredentials - (*SdkOpenStoragePolicyCreateRequest)(nil), // 141: openstorage.api.SdkOpenStoragePolicyCreateRequest - (*SdkOpenStoragePolicyCreateResponse)(nil), // 142: openstorage.api.SdkOpenStoragePolicyCreateResponse - (*SdkOpenStoragePolicyEnumerateRequest)(nil), // 143: openstorage.api.SdkOpenStoragePolicyEnumerateRequest - (*SdkOpenStoragePolicyEnumerateResponse)(nil), // 144: openstorage.api.SdkOpenStoragePolicyEnumerateResponse - (*SdkOpenStoragePolicyInspectRequest)(nil), // 145: openstorage.api.SdkOpenStoragePolicyInspectRequest - (*SdkOpenStoragePolicyInspectResponse)(nil), // 146: openstorage.api.SdkOpenStoragePolicyInspectResponse - (*SdkOpenStoragePolicyDeleteRequest)(nil), // 147: openstorage.api.SdkOpenStoragePolicyDeleteRequest - (*SdkOpenStoragePolicyDeleteResponse)(nil), // 148: openstorage.api.SdkOpenStoragePolicyDeleteResponse - (*SdkOpenStoragePolicyUpdateRequest)(nil), // 149: openstorage.api.SdkOpenStoragePolicyUpdateRequest - (*SdkOpenStoragePolicyUpdateResponse)(nil), // 150: openstorage.api.SdkOpenStoragePolicyUpdateResponse - (*SdkOpenStoragePolicySetDefaultRequest)(nil), // 151: openstorage.api.SdkOpenStoragePolicySetDefaultRequest - (*SdkOpenStoragePolicySetDefaultResponse)(nil), // 152: openstorage.api.SdkOpenStoragePolicySetDefaultResponse - (*SdkOpenStoragePolicyReleaseRequest)(nil), // 153: openstorage.api.SdkOpenStoragePolicyReleaseRequest - (*SdkOpenStoragePolicyReleaseResponse)(nil), // 154: openstorage.api.SdkOpenStoragePolicyReleaseResponse - (*SdkOpenStoragePolicyDefaultInspectRequest)(nil), // 155: openstorage.api.SdkOpenStoragePolicyDefaultInspectRequest - (*SdkOpenStoragePolicyDefaultInspectResponse)(nil), // 156: openstorage.api.SdkOpenStoragePolicyDefaultInspectResponse - (*SdkSchedulePolicyCreateRequest)(nil), // 157: openstorage.api.SdkSchedulePolicyCreateRequest - (*SdkSchedulePolicyCreateResponse)(nil), // 158: openstorage.api.SdkSchedulePolicyCreateResponse - (*SdkSchedulePolicyUpdateRequest)(nil), // 159: openstorage.api.SdkSchedulePolicyUpdateRequest - (*SdkSchedulePolicyUpdateResponse)(nil), // 160: openstorage.api.SdkSchedulePolicyUpdateResponse - (*SdkSchedulePolicyEnumerateRequest)(nil), // 161: openstorage.api.SdkSchedulePolicyEnumerateRequest - (*SdkSchedulePolicyEnumerateResponse)(nil), // 162: openstorage.api.SdkSchedulePolicyEnumerateResponse - (*SdkSchedulePolicyInspectRequest)(nil), // 163: openstorage.api.SdkSchedulePolicyInspectRequest - (*SdkSchedulePolicyInspectResponse)(nil), // 164: openstorage.api.SdkSchedulePolicyInspectResponse - (*SdkSchedulePolicyDeleteRequest)(nil), // 165: openstorage.api.SdkSchedulePolicyDeleteRequest - (*SdkSchedulePolicyDeleteResponse)(nil), // 166: openstorage.api.SdkSchedulePolicyDeleteResponse - (*SdkSchedulePolicyIntervalDaily)(nil), // 167: openstorage.api.SdkSchedulePolicyIntervalDaily - (*SdkSchedulePolicyIntervalWeekly)(nil), // 168: openstorage.api.SdkSchedulePolicyIntervalWeekly - (*SdkSchedulePolicyIntervalMonthly)(nil), // 169: openstorage.api.SdkSchedulePolicyIntervalMonthly - (*SdkSchedulePolicyIntervalPeriodic)(nil), // 170: openstorage.api.SdkSchedulePolicyIntervalPeriodic - (*SdkSchedulePolicyInterval)(nil), // 171: openstorage.api.SdkSchedulePolicyInterval - (*SdkSchedulePolicy)(nil), // 172: openstorage.api.SdkSchedulePolicy - (*SdkCredentialCreateRequest)(nil), // 173: openstorage.api.SdkCredentialCreateRequest - (*SdkCredentialCreateResponse)(nil), // 174: openstorage.api.SdkCredentialCreateResponse - (*SdkCredentialUpdateRequest)(nil), // 175: openstorage.api.SdkCredentialUpdateRequest - (*SdkCredentialUpdateResponse)(nil), // 176: openstorage.api.SdkCredentialUpdateResponse - (*SdkAwsCredentialRequest)(nil), // 177: openstorage.api.SdkAwsCredentialRequest - (*SdkAzureCredentialRequest)(nil), // 178: openstorage.api.SdkAzureCredentialRequest - (*SdkGoogleCredentialRequest)(nil), // 179: openstorage.api.SdkGoogleCredentialRequest - (*SdkAwsCredentialResponse)(nil), // 180: openstorage.api.SdkAwsCredentialResponse - (*SdkAzureCredentialResponse)(nil), // 181: openstorage.api.SdkAzureCredentialResponse - (*SdkGoogleCredentialResponse)(nil), // 182: openstorage.api.SdkGoogleCredentialResponse - (*SdkCredentialEnumerateRequest)(nil), // 183: openstorage.api.SdkCredentialEnumerateRequest - (*SdkCredentialEnumerateResponse)(nil), // 184: openstorage.api.SdkCredentialEnumerateResponse - (*SdkCredentialInspectRequest)(nil), // 185: openstorage.api.SdkCredentialInspectRequest - (*SdkCredentialInspectResponse)(nil), // 186: openstorage.api.SdkCredentialInspectResponse - (*SdkCredentialDeleteRequest)(nil), // 187: openstorage.api.SdkCredentialDeleteRequest - (*SdkCredentialDeleteResponse)(nil), // 188: openstorage.api.SdkCredentialDeleteResponse - (*SdkCredentialValidateRequest)(nil), // 189: openstorage.api.SdkCredentialValidateRequest - (*SdkCredentialValidateResponse)(nil), // 190: openstorage.api.SdkCredentialValidateResponse - (*SdkCredentialDeleteReferencesRequest)(nil), // 191: openstorage.api.SdkCredentialDeleteReferencesRequest - (*SdkCredentialDeleteReferencesResponse)(nil), // 192: openstorage.api.SdkCredentialDeleteReferencesResponse - (*SdkVolumeAttachOptions)(nil), // 193: openstorage.api.SdkVolumeAttachOptions - (*SdkVolumeMountRequest)(nil), // 194: openstorage.api.SdkVolumeMountRequest - (*SdkVolumeMountResponse)(nil), // 195: openstorage.api.SdkVolumeMountResponse - (*SdkVolumeUnmountOptions)(nil), // 196: openstorage.api.SdkVolumeUnmountOptions - (*SdkVolumeUnmountRequest)(nil), // 197: openstorage.api.SdkVolumeUnmountRequest - (*SdkVolumeUnmountResponse)(nil), // 198: openstorage.api.SdkVolumeUnmountResponse - (*SdkVolumeAttachRequest)(nil), // 199: openstorage.api.SdkVolumeAttachRequest - (*SdkVolumeAttachResponse)(nil), // 200: openstorage.api.SdkVolumeAttachResponse - (*SdkVolumeDetachOptions)(nil), // 201: openstorage.api.SdkVolumeDetachOptions - (*SdkVolumeDetachRequest)(nil), // 202: openstorage.api.SdkVolumeDetachRequest - (*SdkVolumeDetachResponse)(nil), // 203: openstorage.api.SdkVolumeDetachResponse - (*SdkVolumeCreateRequest)(nil), // 204: openstorage.api.SdkVolumeCreateRequest - (*SdkVolumeCreateResponse)(nil), // 205: openstorage.api.SdkVolumeCreateResponse - (*SdkVolumeCloneRequest)(nil), // 206: openstorage.api.SdkVolumeCloneRequest - (*SdkVolumeCloneResponse)(nil), // 207: openstorage.api.SdkVolumeCloneResponse - (*SdkVolumeDeleteRequest)(nil), // 208: openstorage.api.SdkVolumeDeleteRequest - (*SdkVolumeDeleteResponse)(nil), // 209: openstorage.api.SdkVolumeDeleteResponse - (*SdkVolumeInspectRequest)(nil), // 210: openstorage.api.SdkVolumeInspectRequest - (*SdkVolumeInspectResponse)(nil), // 211: openstorage.api.SdkVolumeInspectResponse - (*SdkVolumeInspectWithFiltersRequest)(nil), // 212: openstorage.api.SdkVolumeInspectWithFiltersRequest - (*SdkVolumeInspectWithFiltersResponse)(nil), // 213: openstorage.api.SdkVolumeInspectWithFiltersResponse - (*SdkVolumeUpdateRequest)(nil), // 214: openstorage.api.SdkVolumeUpdateRequest - (*SdkVolumeUpdateResponse)(nil), // 215: openstorage.api.SdkVolumeUpdateResponse - (*SdkVolumeStatsRequest)(nil), // 216: openstorage.api.SdkVolumeStatsRequest - (*SdkVolumeStatsResponse)(nil), // 217: openstorage.api.SdkVolumeStatsResponse - (*SdkVolumeCapacityUsageRequest)(nil), // 218: openstorage.api.SdkVolumeCapacityUsageRequest - (*SdkVolumeCapacityUsageResponse)(nil), // 219: openstorage.api.SdkVolumeCapacityUsageResponse - (*SdkVolumeEnumerateRequest)(nil), // 220: openstorage.api.SdkVolumeEnumerateRequest - (*SdkVolumeEnumerateResponse)(nil), // 221: openstorage.api.SdkVolumeEnumerateResponse - (*SdkVolumeEnumerateWithFiltersRequest)(nil), // 222: openstorage.api.SdkVolumeEnumerateWithFiltersRequest - (*SdkVolumeEnumerateWithFiltersResponse)(nil), // 223: openstorage.api.SdkVolumeEnumerateWithFiltersResponse - (*SdkVolumeSnapshotCreateRequest)(nil), // 224: openstorage.api.SdkVolumeSnapshotCreateRequest - (*SdkVolumeSnapshotCreateResponse)(nil), // 225: openstorage.api.SdkVolumeSnapshotCreateResponse - (*SdkVolumeSnapshotRestoreRequest)(nil), // 226: openstorage.api.SdkVolumeSnapshotRestoreRequest - (*SdkVolumeSnapshotRestoreResponse)(nil), // 227: openstorage.api.SdkVolumeSnapshotRestoreResponse - (*SdkVolumeSnapshotEnumerateRequest)(nil), // 228: openstorage.api.SdkVolumeSnapshotEnumerateRequest - (*SdkVolumeSnapshotEnumerateResponse)(nil), // 229: openstorage.api.SdkVolumeSnapshotEnumerateResponse - (*SdkVolumeSnapshotEnumerateWithFiltersRequest)(nil), // 230: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest - (*SdkVolumeSnapshotEnumerateWithFiltersResponse)(nil), // 231: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersResponse - (*SdkVolumeSnapshotScheduleUpdateRequest)(nil), // 232: openstorage.api.SdkVolumeSnapshotScheduleUpdateRequest - (*SdkVolumeSnapshotScheduleUpdateResponse)(nil), // 233: openstorage.api.SdkVolumeSnapshotScheduleUpdateResponse - (*SdkNodeVolumeUsageByNodeRequest)(nil), // 234: openstorage.api.SdkNodeVolumeUsageByNodeRequest - (*SdkNodeVolumeUsageByNodeResponse)(nil), // 235: openstorage.api.SdkNodeVolumeUsageByNodeResponse - (*SdkNodeRelaxedReclaimPurgeRequest)(nil), // 236: openstorage.api.SdkNodeRelaxedReclaimPurgeRequest - (*SdkNodeRelaxedReclaimPurgeResponse)(nil), // 237: openstorage.api.SdkNodeRelaxedReclaimPurgeResponse - (*SdkClusterDomainsEnumerateRequest)(nil), // 238: openstorage.api.SdkClusterDomainsEnumerateRequest - (*SdkClusterDomainsEnumerateResponse)(nil), // 239: openstorage.api.SdkClusterDomainsEnumerateResponse - (*SdkClusterDomainInspectRequest)(nil), // 240: openstorage.api.SdkClusterDomainInspectRequest - (*SdkClusterDomainInspectResponse)(nil), // 241: openstorage.api.SdkClusterDomainInspectResponse - (*SdkClusterDomainActivateRequest)(nil), // 242: openstorage.api.SdkClusterDomainActivateRequest - (*SdkClusterDomainActivateResponse)(nil), // 243: openstorage.api.SdkClusterDomainActivateResponse - (*SdkClusterDomainDeactivateRequest)(nil), // 244: openstorage.api.SdkClusterDomainDeactivateRequest - (*SdkClusterDomainDeactivateResponse)(nil), // 245: openstorage.api.SdkClusterDomainDeactivateResponse - (*SdkClusterInspectCurrentRequest)(nil), // 246: openstorage.api.SdkClusterInspectCurrentRequest - (*SdkClusterInspectCurrentResponse)(nil), // 247: openstorage.api.SdkClusterInspectCurrentResponse - (*SdkNodeInspectRequest)(nil), // 248: openstorage.api.SdkNodeInspectRequest - (*Job)(nil), // 249: openstorage.api.Job - (*SdkJobResponse)(nil), // 250: openstorage.api.SdkJobResponse - (*NodeDrainAttachmentOptions)(nil), // 251: openstorage.api.NodeDrainAttachmentOptions - (*SdkNodeDrainAttachmentsRequest)(nil), // 252: openstorage.api.SdkNodeDrainAttachmentsRequest - (*NodeDrainAttachmentsJob)(nil), // 253: openstorage.api.NodeDrainAttachmentsJob - (*CloudDriveTransferJob)(nil), // 254: openstorage.api.CloudDriveTransferJob - (*CollectDiagsJob)(nil), // 255: openstorage.api.CollectDiagsJob - (*DiagsCollectionStatus)(nil), // 256: openstorage.api.DiagsCollectionStatus - (*SdkDiagsCollectRequest)(nil), // 257: openstorage.api.SdkDiagsCollectRequest - (*SdkDiagsCollectResponse)(nil), // 258: openstorage.api.SdkDiagsCollectResponse - (*DiagsNodeSelector)(nil), // 259: openstorage.api.DiagsNodeSelector - (*DiagsVolumeSelector)(nil), // 260: openstorage.api.DiagsVolumeSelector - (*SdkEnumerateJobsRequest)(nil), // 261: openstorage.api.SdkEnumerateJobsRequest - (*SdkEnumerateJobsResponse)(nil), // 262: openstorage.api.SdkEnumerateJobsResponse - (*SdkUpdateJobRequest)(nil), // 263: openstorage.api.SdkUpdateJobRequest - (*SdkUpdateJobResponse)(nil), // 264: openstorage.api.SdkUpdateJobResponse - (*SdkGetJobStatusRequest)(nil), // 265: openstorage.api.SdkGetJobStatusRequest - (*JobAudit)(nil), // 266: openstorage.api.JobAudit - (*JobWorkSummary)(nil), // 267: openstorage.api.JobWorkSummary - (*JobSummary)(nil), // 268: openstorage.api.JobSummary - (*SdkGetJobStatusResponse)(nil), // 269: openstorage.api.SdkGetJobStatusResponse - (*DrainAttachmentsSummary)(nil), // 270: openstorage.api.DrainAttachmentsSummary - (*SdkNodeCordonAttachmentsRequest)(nil), // 271: openstorage.api.SdkNodeCordonAttachmentsRequest - (*SdkNodeCordonAttachmentsResponse)(nil), // 272: openstorage.api.SdkNodeCordonAttachmentsResponse - (*SdkNodeUncordonAttachmentsRequest)(nil), // 273: openstorage.api.SdkNodeUncordonAttachmentsRequest - (*SdkNodeUncordonAttachmentsResponse)(nil), // 274: openstorage.api.SdkNodeUncordonAttachmentsResponse - (*SdkStoragePoolResizeRequest)(nil), // 275: openstorage.api.SdkStoragePoolResizeRequest - (*StorageRebalanceTriggerThreshold)(nil), // 276: openstorage.api.StorageRebalanceTriggerThreshold - (*SdkStorageRebalanceRequest)(nil), // 277: openstorage.api.SdkStorageRebalanceRequest - (*SdkStorageRebalanceResponse)(nil), // 278: openstorage.api.SdkStorageRebalanceResponse - (*StorageRebalanceJob)(nil), // 279: openstorage.api.StorageRebalanceJob - (*StorageRebalanceSummary)(nil), // 280: openstorage.api.StorageRebalanceSummary - (*StorageRebalanceWorkSummary)(nil), // 281: openstorage.api.StorageRebalanceWorkSummary - (*StorageRebalanceAudit)(nil), // 282: openstorage.api.StorageRebalanceAudit - (*SdkUpdateRebalanceJobRequest)(nil), // 283: openstorage.api.SdkUpdateRebalanceJobRequest - (*SdkUpdateRebalanceJobResponse)(nil), // 284: openstorage.api.SdkUpdateRebalanceJobResponse - (*SdkGetRebalanceJobStatusRequest)(nil), // 285: openstorage.api.SdkGetRebalanceJobStatusRequest - (*SdkGetRebalanceJobStatusResponse)(nil), // 286: openstorage.api.SdkGetRebalanceJobStatusResponse - (*SdkEnumerateRebalanceJobsRequest)(nil), // 287: openstorage.api.SdkEnumerateRebalanceJobsRequest - (*SdkEnumerateRebalanceJobsResponse)(nil), // 288: openstorage.api.SdkEnumerateRebalanceJobsResponse - (*SdkStoragePool)(nil), // 289: openstorage.api.SdkStoragePool - (*SdkStoragePoolResizeResponse)(nil), // 290: openstorage.api.SdkStoragePoolResizeResponse - (*SdkNodeInspectResponse)(nil), // 291: openstorage.api.SdkNodeInspectResponse - (*SdkNodeInspectCurrentRequest)(nil), // 292: openstorage.api.SdkNodeInspectCurrentRequest - (*SdkNodeInspectCurrentResponse)(nil), // 293: openstorage.api.SdkNodeInspectCurrentResponse - (*SdkNodeEnumerateRequest)(nil), // 294: openstorage.api.SdkNodeEnumerateRequest - (*SdkNodeEnumerateResponse)(nil), // 295: openstorage.api.SdkNodeEnumerateResponse - (*SdkNodeEnumerateWithFiltersRequest)(nil), // 296: openstorage.api.SdkNodeEnumerateWithFiltersRequest - (*SdkNodeEnumerateWithFiltersResponse)(nil), // 297: openstorage.api.SdkNodeEnumerateWithFiltersResponse - (*SdkObjectstoreInspectRequest)(nil), // 298: openstorage.api.SdkObjectstoreInspectRequest - (*SdkObjectstoreInspectResponse)(nil), // 299: openstorage.api.SdkObjectstoreInspectResponse - (*SdkObjectstoreCreateRequest)(nil), // 300: openstorage.api.SdkObjectstoreCreateRequest - (*SdkObjectstoreCreateResponse)(nil), // 301: openstorage.api.SdkObjectstoreCreateResponse - (*SdkObjectstoreDeleteRequest)(nil), // 302: openstorage.api.SdkObjectstoreDeleteRequest - (*SdkObjectstoreDeleteResponse)(nil), // 303: openstorage.api.SdkObjectstoreDeleteResponse - (*SdkObjectstoreUpdateRequest)(nil), // 304: openstorage.api.SdkObjectstoreUpdateRequest - (*SdkObjectstoreUpdateResponse)(nil), // 305: openstorage.api.SdkObjectstoreUpdateResponse - (*SdkCloudBackupCreateRequest)(nil), // 306: openstorage.api.SdkCloudBackupCreateRequest - (*SdkCloudBackupCreateResponse)(nil), // 307: openstorage.api.SdkCloudBackupCreateResponse - (*SdkCloudBackupGroupCreateRequest)(nil), // 308: openstorage.api.SdkCloudBackupGroupCreateRequest - (*SdkCloudBackupGroupCreateResponse)(nil), // 309: openstorage.api.SdkCloudBackupGroupCreateResponse - (*SdkCloudBackupRestoreRequest)(nil), // 310: openstorage.api.SdkCloudBackupRestoreRequest - (*SdkCloudBackupRestoreResponse)(nil), // 311: openstorage.api.SdkCloudBackupRestoreResponse - (*SdkCloudBackupDeleteRequest)(nil), // 312: openstorage.api.SdkCloudBackupDeleteRequest - (*SdkCloudBackupDeleteResponse)(nil), // 313: openstorage.api.SdkCloudBackupDeleteResponse - (*SdkCloudBackupDeleteAllRequest)(nil), // 314: openstorage.api.SdkCloudBackupDeleteAllRequest - (*SdkCloudBackupDeleteAllResponse)(nil), // 315: openstorage.api.SdkCloudBackupDeleteAllResponse - (*SdkCloudBackupEnumerateWithFiltersRequest)(nil), // 316: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest - (*SdkCloudBackupInfo)(nil), // 317: openstorage.api.SdkCloudBackupInfo - (*SdkCloudBackupEnumerateWithFiltersResponse)(nil), // 318: openstorage.api.SdkCloudBackupEnumerateWithFiltersResponse - (*SdkCloudBackupStatus)(nil), // 319: openstorage.api.SdkCloudBackupStatus - (*SdkCloudBackupStatusRequest)(nil), // 320: openstorage.api.SdkCloudBackupStatusRequest - (*SdkCloudBackupStatusResponse)(nil), // 321: openstorage.api.SdkCloudBackupStatusResponse - (*SdkCloudBackupCatalogRequest)(nil), // 322: openstorage.api.SdkCloudBackupCatalogRequest - (*SdkCloudBackupCatalogResponse)(nil), // 323: openstorage.api.SdkCloudBackupCatalogResponse - (*SdkCloudBackupHistoryItem)(nil), // 324: openstorage.api.SdkCloudBackupHistoryItem - (*SdkCloudBackupHistoryRequest)(nil), // 325: openstorage.api.SdkCloudBackupHistoryRequest - (*SdkCloudBackupHistoryResponse)(nil), // 326: openstorage.api.SdkCloudBackupHistoryResponse - (*SdkCloudBackupStateChangeRequest)(nil), // 327: openstorage.api.SdkCloudBackupStateChangeRequest - (*SdkCloudBackupStateChangeResponse)(nil), // 328: openstorage.api.SdkCloudBackupStateChangeResponse - (*SdkCloudBackupScheduleInfo)(nil), // 329: openstorage.api.SdkCloudBackupScheduleInfo - (*SdkCloudBackupSchedCreateRequest)(nil), // 330: openstorage.api.SdkCloudBackupSchedCreateRequest - (*SdkCloudBackupSchedCreateResponse)(nil), // 331: openstorage.api.SdkCloudBackupSchedCreateResponse - (*SdkCloudBackupSchedUpdateRequest)(nil), // 332: openstorage.api.SdkCloudBackupSchedUpdateRequest - (*SdkCloudBackupSchedUpdateResponse)(nil), // 333: openstorage.api.SdkCloudBackupSchedUpdateResponse - (*SdkCloudBackupSchedDeleteRequest)(nil), // 334: openstorage.api.SdkCloudBackupSchedDeleteRequest - (*SdkCloudBackupSchedDeleteResponse)(nil), // 335: openstorage.api.SdkCloudBackupSchedDeleteResponse - (*SdkCloudBackupSchedEnumerateRequest)(nil), // 336: openstorage.api.SdkCloudBackupSchedEnumerateRequest - (*SdkCloudBackupSchedEnumerateResponse)(nil), // 337: openstorage.api.SdkCloudBackupSchedEnumerateResponse - (*SdkCloudBackupSizeRequest)(nil), // 338: openstorage.api.SdkCloudBackupSizeRequest - (*SdkCloudBackupSizeResponse)(nil), // 339: openstorage.api.SdkCloudBackupSizeResponse - (*SdkRule)(nil), // 340: openstorage.api.SdkRule - (*SdkRole)(nil), // 341: openstorage.api.SdkRole - (*SdkRoleCreateRequest)(nil), // 342: openstorage.api.SdkRoleCreateRequest - (*SdkRoleCreateResponse)(nil), // 343: openstorage.api.SdkRoleCreateResponse - (*SdkRoleEnumerateRequest)(nil), // 344: openstorage.api.SdkRoleEnumerateRequest - (*SdkRoleEnumerateResponse)(nil), // 345: openstorage.api.SdkRoleEnumerateResponse - (*SdkRoleInspectRequest)(nil), // 346: openstorage.api.SdkRoleInspectRequest - (*SdkRoleInspectResponse)(nil), // 347: openstorage.api.SdkRoleInspectResponse - (*SdkRoleDeleteRequest)(nil), // 348: openstorage.api.SdkRoleDeleteRequest - (*SdkRoleDeleteResponse)(nil), // 349: openstorage.api.SdkRoleDeleteResponse - (*SdkRoleUpdateRequest)(nil), // 350: openstorage.api.SdkRoleUpdateRequest - (*SdkRoleUpdateResponse)(nil), // 351: openstorage.api.SdkRoleUpdateResponse - (*FilesystemTrim)(nil), // 352: openstorage.api.FilesystemTrim - (*SdkFilesystemTrimStartRequest)(nil), // 353: openstorage.api.SdkFilesystemTrimStartRequest - (*SdkFilesystemTrimStartResponse)(nil), // 354: openstorage.api.SdkFilesystemTrimStartResponse - (*SdkFilesystemTrimStatusRequest)(nil), // 355: openstorage.api.SdkFilesystemTrimStatusRequest - (*SdkFilesystemTrimStatusResponse)(nil), // 356: openstorage.api.SdkFilesystemTrimStatusResponse - (*SdkAutoFSTrimStatusRequest)(nil), // 357: openstorage.api.SdkAutoFSTrimStatusRequest - (*SdkAutoFSTrimStatusResponse)(nil), // 358: openstorage.api.SdkAutoFSTrimStatusResponse - (*SdkAutoFSTrimUsageRequest)(nil), // 359: openstorage.api.SdkAutoFSTrimUsageRequest - (*SdkAutoFSTrimUsageResponse)(nil), // 360: openstorage.api.SdkAutoFSTrimUsageResponse - (*SdkFilesystemTrimStopRequest)(nil), // 361: openstorage.api.SdkFilesystemTrimStopRequest - (*SdkFilesystemTrimStopResponse)(nil), // 362: openstorage.api.SdkFilesystemTrimStopResponse - (*FilesystemCheck)(nil), // 363: openstorage.api.FilesystemCheck - (*SdkFilesystemCheckStartRequest)(nil), // 364: openstorage.api.SdkFilesystemCheckStartRequest - (*SdkFilesystemCheckStartResponse)(nil), // 365: openstorage.api.SdkFilesystemCheckStartResponse - (*SdkFilesystemCheckStatusRequest)(nil), // 366: openstorage.api.SdkFilesystemCheckStatusRequest - (*SdkFilesystemCheckStatusResponse)(nil), // 367: openstorage.api.SdkFilesystemCheckStatusResponse - (*SdkFilesystemCheckStopRequest)(nil), // 368: openstorage.api.SdkFilesystemCheckStopRequest - (*SdkFilesystemCheckStopResponse)(nil), // 369: openstorage.api.SdkFilesystemCheckStopResponse - (*SdkIdentityCapabilitiesRequest)(nil), // 370: openstorage.api.SdkIdentityCapabilitiesRequest - (*SdkIdentityCapabilitiesResponse)(nil), // 371: openstorage.api.SdkIdentityCapabilitiesResponse - (*SdkIdentityVersionRequest)(nil), // 372: openstorage.api.SdkIdentityVersionRequest - (*SdkIdentityVersionResponse)(nil), // 373: openstorage.api.SdkIdentityVersionResponse - (*SdkServiceCapability)(nil), // 374: openstorage.api.SdkServiceCapability - (*SdkVersion)(nil), // 375: openstorage.api.SdkVersion - (*StorageVersion)(nil), // 376: openstorage.api.StorageVersion - (*CloudMigrate)(nil), // 377: openstorage.api.CloudMigrate - (*CloudMigrateStartRequest)(nil), // 378: openstorage.api.CloudMigrateStartRequest - (*SdkCloudMigrateStartRequest)(nil), // 379: openstorage.api.SdkCloudMigrateStartRequest - (*CloudMigrateStartResponse)(nil), // 380: openstorage.api.CloudMigrateStartResponse - (*SdkCloudMigrateStartResponse)(nil), // 381: openstorage.api.SdkCloudMigrateStartResponse - (*CloudMigrateCancelRequest)(nil), // 382: openstorage.api.CloudMigrateCancelRequest - (*SdkCloudMigrateCancelRequest)(nil), // 383: openstorage.api.SdkCloudMigrateCancelRequest - (*SdkCloudMigrateCancelResponse)(nil), // 384: openstorage.api.SdkCloudMigrateCancelResponse - (*CloudMigrateInfo)(nil), // 385: openstorage.api.CloudMigrateInfo - (*CloudMigrateInfoList)(nil), // 386: openstorage.api.CloudMigrateInfoList - (*SdkCloudMigrateStatusRequest)(nil), // 387: openstorage.api.SdkCloudMigrateStatusRequest - (*CloudMigrateStatusRequest)(nil), // 388: openstorage.api.CloudMigrateStatusRequest - (*CloudMigrateStatusResponse)(nil), // 389: openstorage.api.CloudMigrateStatusResponse - (*SdkCloudMigrateStatusResponse)(nil), // 390: openstorage.api.SdkCloudMigrateStatusResponse - (*ClusterPairMode)(nil), // 391: openstorage.api.ClusterPairMode - (*ClusterPairCreateRequest)(nil), // 392: openstorage.api.ClusterPairCreateRequest - (*ClusterPairCreateResponse)(nil), // 393: openstorage.api.ClusterPairCreateResponse - (*SdkClusterPairCreateRequest)(nil), // 394: openstorage.api.SdkClusterPairCreateRequest - (*SdkClusterPairCreateResponse)(nil), // 395: openstorage.api.SdkClusterPairCreateResponse - (*ClusterPairProcessRequest)(nil), // 396: openstorage.api.ClusterPairProcessRequest - (*ClusterPairProcessResponse)(nil), // 397: openstorage.api.ClusterPairProcessResponse - (*SdkClusterPairDeleteRequest)(nil), // 398: openstorage.api.SdkClusterPairDeleteRequest - (*SdkClusterPairDeleteResponse)(nil), // 399: openstorage.api.SdkClusterPairDeleteResponse - (*ClusterPairTokenGetResponse)(nil), // 400: openstorage.api.ClusterPairTokenGetResponse - (*SdkClusterPairGetTokenRequest)(nil), // 401: openstorage.api.SdkClusterPairGetTokenRequest - (*SdkClusterPairGetTokenResponse)(nil), // 402: openstorage.api.SdkClusterPairGetTokenResponse - (*SdkClusterPairResetTokenRequest)(nil), // 403: openstorage.api.SdkClusterPairResetTokenRequest - (*SdkClusterPairResetTokenResponse)(nil), // 404: openstorage.api.SdkClusterPairResetTokenResponse - (*ClusterPairInfo)(nil), // 405: openstorage.api.ClusterPairInfo - (*SdkClusterPairInspectRequest)(nil), // 406: openstorage.api.SdkClusterPairInspectRequest - (*ClusterPairGetResponse)(nil), // 407: openstorage.api.ClusterPairGetResponse - (*SdkClusterPairInspectResponse)(nil), // 408: openstorage.api.SdkClusterPairInspectResponse - (*SdkClusterPairEnumerateRequest)(nil), // 409: openstorage.api.SdkClusterPairEnumerateRequest - (*ClusterPairsEnumerateResponse)(nil), // 410: openstorage.api.ClusterPairsEnumerateResponse - (*SdkClusterPairEnumerateResponse)(nil), // 411: openstorage.api.SdkClusterPairEnumerateResponse - (*Catalog)(nil), // 412: openstorage.api.Catalog - (*Report)(nil), // 413: openstorage.api.Report - (*CatalogResponse)(nil), // 414: openstorage.api.CatalogResponse - (*LocateResponse)(nil), // 415: openstorage.api.LocateResponse - (*VolumePlacementStrategy)(nil), // 416: openstorage.api.VolumePlacementStrategy - (*ReplicaPlacementSpec)(nil), // 417: openstorage.api.ReplicaPlacementSpec - (*VolumePlacementSpec)(nil), // 418: openstorage.api.VolumePlacementSpec - (*LabelSelectorRequirement)(nil), // 419: openstorage.api.LabelSelectorRequirement - (*RestoreVolSnashotSchedule)(nil), // 420: openstorage.api.RestoreVolSnashotSchedule - (*RestoreVolStoragePolicy)(nil), // 421: openstorage.api.RestoreVolStoragePolicy - (*RestoreVolumeSpec)(nil), // 422: openstorage.api.RestoreVolumeSpec - (*SdkVolumeCatalogRequest)(nil), // 423: openstorage.api.SdkVolumeCatalogRequest - (*SdkVolumeCatalogResponse)(nil), // 424: openstorage.api.SdkVolumeCatalogResponse - nil, // 425: openstorage.api.StoragePool.LabelsEntry - nil, // 426: openstorage.api.SchedulerTopology.LabelsEntry - nil, // 427: openstorage.api.StoragePoolOperation.ParamsEntry - nil, // 428: openstorage.api.TopologyRequirement.LabelsEntry - nil, // 429: openstorage.api.VolumeLocator.VolumeLabelsEntry - nil, // 430: openstorage.api.MountOptions.OptionsEntry - nil, // 431: openstorage.api.VolumeSpec.VolumeLabelsEntry - nil, // 432: openstorage.api.VolumeSpecPolicy.VolumeLabelsEntry - nil, // 433: openstorage.api.RuntimeStateMap.RuntimeStateEntry - (*Ownership_PublicAccessControl)(nil), // 434: openstorage.api.Ownership.PublicAccessControl - (*Ownership_AccessControl)(nil), // 435: openstorage.api.Ownership.AccessControl - nil, // 436: openstorage.api.Ownership.AccessControl.GroupsEntry - nil, // 437: openstorage.api.Ownership.AccessControl.CollaboratorsEntry - nil, // 438: openstorage.api.Volume.AttachInfoEntry - nil, // 439: openstorage.api.VolumeSetRequest.OptionsEntry - nil, // 440: openstorage.api.VolumeServiceRequest.SrvCmdParamsEntry - nil, // 441: openstorage.api.VolumeServiceInstanceResponse.StatusEntry - nil, // 442: openstorage.api.ActiveRequest.ReqestKVEntry - nil, // 443: openstorage.api.GroupSnapCreateRequest.LabelsEntry - nil, // 444: openstorage.api.GroupSnapCreateResponse.SnapshotsEntry - nil, // 445: openstorage.api.StorageNode.DisksEntry - nil, // 446: openstorage.api.StorageNode.NodeLabelsEntry - nil, // 447: openstorage.api.SdkVolumeMountRequest.DriverOptionsEntry - nil, // 448: openstorage.api.SdkVolumeUnmountRequest.DriverOptionsEntry - nil, // 449: openstorage.api.SdkVolumeAttachRequest.DriverOptionsEntry - nil, // 450: openstorage.api.SdkVolumeDetachRequest.DriverOptionsEntry - nil, // 451: openstorage.api.SdkVolumeCreateRequest.LabelsEntry - nil, // 452: openstorage.api.SdkVolumeInspectResponse.LabelsEntry - nil, // 453: openstorage.api.SdkVolumeInspectWithFiltersRequest.LabelsEntry - nil, // 454: openstorage.api.SdkVolumeUpdateRequest.LabelsEntry - nil, // 455: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.LabelsEntry - nil, // 456: openstorage.api.SdkVolumeSnapshotCreateRequest.LabelsEntry - nil, // 457: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest.LabelsEntry - nil, // 458: openstorage.api.SdkCloudBackupCreateRequest.LabelsEntry - nil, // 459: openstorage.api.SdkCloudBackupGroupCreateRequest.LabelsEntry - nil, // 460: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.MetadataFilterEntry - nil, // 461: openstorage.api.SdkCloudBackupInfo.MetadataEntry - nil, // 462: openstorage.api.SdkCloudBackupStatusResponse.StatusesEntry - nil, // 463: openstorage.api.SdkCloudBackupScheduleInfo.LabelsEntry - nil, // 464: openstorage.api.SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry - nil, // 465: openstorage.api.SdkAutoFSTrimStatusResponse.TrimStatusEntry - nil, // 466: openstorage.api.SdkAutoFSTrimUsageResponse.UsageEntry - (*SdkServiceCapability_OpenStorageService)(nil), // 467: openstorage.api.SdkServiceCapability.OpenStorageService - nil, // 468: openstorage.api.StorageVersion.DetailsEntry - (*SdkCloudMigrateStartRequest_MigrateVolume)(nil), // 469: openstorage.api.SdkCloudMigrateStartRequest.MigrateVolume - (*SdkCloudMigrateStartRequest_MigrateVolumeGroup)(nil), // 470: openstorage.api.SdkCloudMigrateStartRequest.MigrateVolumeGroup - (*SdkCloudMigrateStartRequest_MigrateAllVolumes)(nil), // 471: openstorage.api.SdkCloudMigrateStartRequest.MigrateAllVolumes - nil, // 472: openstorage.api.CloudMigrateStatusResponse.InfoEntry - nil, // 473: openstorage.api.ClusterPairProcessResponse.OptionsEntry - nil, // 474: openstorage.api.ClusterPairInfo.OptionsEntry - nil, // 475: openstorage.api.ClusterPairsEnumerateResponse.PairsEntry - nil, // 476: openstorage.api.LocateResponse.MountsEntry - nil, // 477: openstorage.api.LocateResponse.DockeridsEntry - (*timestamppb.Timestamp)(nil), // 478: google.protobuf.Timestamp + (NearSyncReplicationStrategy)(0), // 21: openstorage.api.NearSyncReplicationStrategy + (AnonymousBucketAccessMode)(0), // 22: openstorage.api.AnonymousBucketAccessMode + (SdkTimeWeekday)(0), // 23: openstorage.api.SdkTimeWeekday + (StorageRebalanceJobState)(0), // 24: openstorage.api.StorageRebalanceJobState + (SdkCloudBackupClusterType)(0), // 25: openstorage.api.SdkCloudBackupClusterType + (SdkCloudBackupOpType)(0), // 26: openstorage.api.SdkCloudBackupOpType + (SdkCloudBackupStatusType)(0), // 27: openstorage.api.SdkCloudBackupStatusType + (SdkCloudBackupRequestedState)(0), // 28: openstorage.api.SdkCloudBackupRequestedState + (EnforcementType)(0), // 29: openstorage.api.EnforcementType + (RestoreParamBoolType)(0), // 30: openstorage.api.RestoreParamBoolType + (Xattr_Value)(0), // 31: openstorage.api.Xattr.Value + (Sharedv4ServiceSpec_ServiceType)(0), // 32: openstorage.api.Sharedv4ServiceSpec.ServiceType + (Sharedv4FailoverStrategy_Value)(0), // 33: openstorage.api.Sharedv4FailoverStrategy.Value + (ScanPolicy_ScanTrigger)(0), // 34: openstorage.api.ScanPolicy.ScanTrigger + (ScanPolicy_ScanAction)(0), // 35: openstorage.api.ScanPolicy.ScanAction + (VolumeSpecPolicy_PolicyOp)(0), // 36: openstorage.api.VolumeSpecPolicy.PolicyOp + (Ownership_AccessType)(0), // 37: openstorage.api.Ownership.AccessType + (StorageNode_SecurityStatus)(0), // 38: openstorage.api.StorageNode.SecurityStatus + (Job_Type)(0), // 39: openstorage.api.Job.Type + (Job_State)(0), // 40: openstorage.api.Job.State + (DiagsCollectionStatus_State)(0), // 41: openstorage.api.DiagsCollectionStatus.State + (StorageRebalanceTriggerThreshold_Type)(0), // 42: openstorage.api.StorageRebalanceTriggerThreshold.Type + (StorageRebalanceTriggerThreshold_Metric)(0), // 43: openstorage.api.StorageRebalanceTriggerThreshold.Metric + (StorageRebalanceWorkSummary_Type)(0), // 44: openstorage.api.StorageRebalanceWorkSummary.Type + (StorageRebalanceAudit_StorageRebalanceAction)(0), // 45: openstorage.api.StorageRebalanceAudit.StorageRebalanceAction + (SdkStoragePool_OperationStatus)(0), // 46: openstorage.api.SdkStoragePool.OperationStatus + (SdkStoragePool_OperationType)(0), // 47: openstorage.api.SdkStoragePool.OperationType + (SdkStoragePool_ResizeOperationType)(0), // 48: openstorage.api.SdkStoragePool.ResizeOperationType + (FilesystemTrim_FilesystemTrimStatus)(0), // 49: openstorage.api.FilesystemTrim.FilesystemTrimStatus + (FilesystemCheck_FilesystemCheckStatus)(0), // 50: openstorage.api.FilesystemCheck.FilesystemCheckStatus + (SdkServiceCapability_OpenStorageService_Type)(0), // 51: openstorage.api.SdkServiceCapability.OpenStorageService.Type + (SdkVersion_Version)(0), // 52: openstorage.api.SdkVersion.Version + (CloudMigrate_OperationType)(0), // 53: openstorage.api.CloudMigrate.OperationType + (CloudMigrate_Stage)(0), // 54: openstorage.api.CloudMigrate.Stage + (CloudMigrate_Status)(0), // 55: openstorage.api.CloudMigrate.Status + (ClusterPairMode_Mode)(0), // 56: openstorage.api.ClusterPairMode.Mode + (LabelSelectorRequirement_Operator)(0), // 57: openstorage.api.LabelSelectorRequirement.Operator + (*StorageResource)(nil), // 58: openstorage.api.StorageResource + (*StoragePool)(nil), // 59: openstorage.api.StoragePool + (*SchedulerTopology)(nil), // 60: openstorage.api.SchedulerTopology + (*StoragePoolOperation)(nil), // 61: openstorage.api.StoragePoolOperation + (*TopologyRequirement)(nil), // 62: openstorage.api.TopologyRequirement + (*VolumeLocator)(nil), // 63: openstorage.api.VolumeLocator + (*VolumeInspectOptions)(nil), // 64: openstorage.api.VolumeInspectOptions + (*Source)(nil), // 65: openstorage.api.Source + (*Group)(nil), // 66: openstorage.api.Group + (*IoStrategy)(nil), // 67: openstorage.api.IoStrategy + (*Xattr)(nil), // 68: openstorage.api.Xattr + (*ExportSpec)(nil), // 69: openstorage.api.ExportSpec + (*NFSProxySpec)(nil), // 70: openstorage.api.NFSProxySpec + (*S3ProxySpec)(nil), // 71: openstorage.api.S3ProxySpec + (*PXDProxySpec)(nil), // 72: openstorage.api.PXDProxySpec + (*PureBlockSpec)(nil), // 73: openstorage.api.PureBlockSpec + (*PureFileSpec)(nil), // 74: openstorage.api.PureFileSpec + (*ProxySpec)(nil), // 75: openstorage.api.ProxySpec + (*Sharedv4ServiceSpec)(nil), // 76: openstorage.api.Sharedv4ServiceSpec + (*Sharedv4FailoverStrategy)(nil), // 77: openstorage.api.Sharedv4FailoverStrategy + (*Sharedv4Spec)(nil), // 78: openstorage.api.Sharedv4Spec + (*MountOptions)(nil), // 79: openstorage.api.MountOptions + (*FastpathReplState)(nil), // 80: openstorage.api.FastpathReplState + (*FastpathConfig)(nil), // 81: openstorage.api.FastpathConfig + (*ScanPolicy)(nil), // 82: openstorage.api.ScanPolicy + (*IoThrottle)(nil), // 83: openstorage.api.IoThrottle + (*VolumeSpec)(nil), // 84: openstorage.api.VolumeSpec + (*VolumeSpecUpdate)(nil), // 85: openstorage.api.VolumeSpecUpdate + (*VolumeSpecPolicy)(nil), // 86: openstorage.api.VolumeSpecPolicy + (*ReplicaSet)(nil), // 87: openstorage.api.ReplicaSet + (*RuntimeStateMap)(nil), // 88: openstorage.api.RuntimeStateMap + (*Ownership)(nil), // 89: openstorage.api.Ownership + (*Volume)(nil), // 90: openstorage.api.Volume + (*Stats)(nil), // 91: openstorage.api.Stats + (*CapacityUsageInfo)(nil), // 92: openstorage.api.CapacityUsageInfo + (*VolumeUsage)(nil), // 93: openstorage.api.VolumeUsage + (*VolumeUsageByNode)(nil), // 94: openstorage.api.VolumeUsageByNode + (*VolumeBytesUsed)(nil), // 95: openstorage.api.VolumeBytesUsed + (*VolumeBytesUsedByNode)(nil), // 96: openstorage.api.VolumeBytesUsedByNode + (*FstrimVolumeUsageInfo)(nil), // 97: openstorage.api.FstrimVolumeUsageInfo + (*RelaxedReclaimPurge)(nil), // 98: openstorage.api.RelaxedReclaimPurge + (*SdkStoragePolicy)(nil), // 99: openstorage.api.SdkStoragePolicy + (*Alert)(nil), // 100: openstorage.api.Alert + (*SdkAlertsTimeSpan)(nil), // 101: openstorage.api.SdkAlertsTimeSpan + (*SdkAlertsCountSpan)(nil), // 102: openstorage.api.SdkAlertsCountSpan + (*SdkAlertsOption)(nil), // 103: openstorage.api.SdkAlertsOption + (*SdkAlertsResourceTypeQuery)(nil), // 104: openstorage.api.SdkAlertsResourceTypeQuery + (*SdkAlertsAlertTypeQuery)(nil), // 105: openstorage.api.SdkAlertsAlertTypeQuery + (*SdkAlertsResourceIdQuery)(nil), // 106: openstorage.api.SdkAlertsResourceIdQuery + (*SdkAlertsQuery)(nil), // 107: openstorage.api.SdkAlertsQuery + (*SdkAlertsEnumerateWithFiltersRequest)(nil), // 108: openstorage.api.SdkAlertsEnumerateWithFiltersRequest + (*SdkAlertsEnumerateWithFiltersResponse)(nil), // 109: openstorage.api.SdkAlertsEnumerateWithFiltersResponse + (*SdkAlertsDeleteRequest)(nil), // 110: openstorage.api.SdkAlertsDeleteRequest + (*SdkAlertsDeleteResponse)(nil), // 111: openstorage.api.SdkAlertsDeleteResponse + (*Alerts)(nil), // 112: openstorage.api.Alerts + (*ObjectstoreInfo)(nil), // 113: openstorage.api.ObjectstoreInfo + (*VolumeCreateRequest)(nil), // 114: openstorage.api.VolumeCreateRequest + (*VolumeResponse)(nil), // 115: openstorage.api.VolumeResponse + (*VolumeCreateResponse)(nil), // 116: openstorage.api.VolumeCreateResponse + (*VolumeStateAction)(nil), // 117: openstorage.api.VolumeStateAction + (*VolumeSetRequest)(nil), // 118: openstorage.api.VolumeSetRequest + (*VolumeSetResponse)(nil), // 119: openstorage.api.VolumeSetResponse + (*SnapCreateRequest)(nil), // 120: openstorage.api.SnapCreateRequest + (*SnapCreateResponse)(nil), // 121: openstorage.api.SnapCreateResponse + (*VolumeInfo)(nil), // 122: openstorage.api.VolumeInfo + (*VolumeConsumer)(nil), // 123: openstorage.api.VolumeConsumer + (*VolumeServiceRequest)(nil), // 124: openstorage.api.VolumeServiceRequest + (*VolumeServiceInstanceResponse)(nil), // 125: openstorage.api.VolumeServiceInstanceResponse + (*VolumeServiceResponse)(nil), // 126: openstorage.api.VolumeServiceResponse + (*GraphDriverChanges)(nil), // 127: openstorage.api.GraphDriverChanges + (*ClusterResponse)(nil), // 128: openstorage.api.ClusterResponse + (*ActiveRequest)(nil), // 129: openstorage.api.ActiveRequest + (*ActiveRequests)(nil), // 130: openstorage.api.ActiveRequests + (*GroupSnapCreateRequest)(nil), // 131: openstorage.api.GroupSnapCreateRequest + (*GroupSnapCreateResponse)(nil), // 132: openstorage.api.GroupSnapCreateResponse + (*StorageNode)(nil), // 133: openstorage.api.StorageNode + (*StorageCluster)(nil), // 134: openstorage.api.StorageCluster + (*BucketCreateRequest)(nil), // 135: openstorage.api.BucketCreateRequest + (*BucketCreateResponse)(nil), // 136: openstorage.api.BucketCreateResponse + (*BucketDeleteRequest)(nil), // 137: openstorage.api.BucketDeleteRequest + (*BucketDeleteResponse)(nil), // 138: openstorage.api.BucketDeleteResponse + (*BucketGrantAccessRequest)(nil), // 139: openstorage.api.BucketGrantAccessRequest + (*BucketGrantAccessResponse)(nil), // 140: openstorage.api.BucketGrantAccessResponse + (*BucketRevokeAccessRequest)(nil), // 141: openstorage.api.BucketRevokeAccessRequest + (*BucketRevokeAccessResponse)(nil), // 142: openstorage.api.BucketRevokeAccessResponse + (*BucketAccessCredentials)(nil), // 143: openstorage.api.BucketAccessCredentials + (*SdkOpenStoragePolicyCreateRequest)(nil), // 144: openstorage.api.SdkOpenStoragePolicyCreateRequest + (*SdkOpenStoragePolicyCreateResponse)(nil), // 145: openstorage.api.SdkOpenStoragePolicyCreateResponse + (*SdkOpenStoragePolicyEnumerateRequest)(nil), // 146: openstorage.api.SdkOpenStoragePolicyEnumerateRequest + (*SdkOpenStoragePolicyEnumerateResponse)(nil), // 147: openstorage.api.SdkOpenStoragePolicyEnumerateResponse + (*SdkOpenStoragePolicyInspectRequest)(nil), // 148: openstorage.api.SdkOpenStoragePolicyInspectRequest + (*SdkOpenStoragePolicyInspectResponse)(nil), // 149: openstorage.api.SdkOpenStoragePolicyInspectResponse + (*SdkOpenStoragePolicyDeleteRequest)(nil), // 150: openstorage.api.SdkOpenStoragePolicyDeleteRequest + (*SdkOpenStoragePolicyDeleteResponse)(nil), // 151: openstorage.api.SdkOpenStoragePolicyDeleteResponse + (*SdkOpenStoragePolicyUpdateRequest)(nil), // 152: openstorage.api.SdkOpenStoragePolicyUpdateRequest + (*SdkOpenStoragePolicyUpdateResponse)(nil), // 153: openstorage.api.SdkOpenStoragePolicyUpdateResponse + (*SdkOpenStoragePolicySetDefaultRequest)(nil), // 154: openstorage.api.SdkOpenStoragePolicySetDefaultRequest + (*SdkOpenStoragePolicySetDefaultResponse)(nil), // 155: openstorage.api.SdkOpenStoragePolicySetDefaultResponse + (*SdkOpenStoragePolicyReleaseRequest)(nil), // 156: openstorage.api.SdkOpenStoragePolicyReleaseRequest + (*SdkOpenStoragePolicyReleaseResponse)(nil), // 157: openstorage.api.SdkOpenStoragePolicyReleaseResponse + (*SdkOpenStoragePolicyDefaultInspectRequest)(nil), // 158: openstorage.api.SdkOpenStoragePolicyDefaultInspectRequest + (*SdkOpenStoragePolicyDefaultInspectResponse)(nil), // 159: openstorage.api.SdkOpenStoragePolicyDefaultInspectResponse + (*SdkSchedulePolicyCreateRequest)(nil), // 160: openstorage.api.SdkSchedulePolicyCreateRequest + (*SdkSchedulePolicyCreateResponse)(nil), // 161: openstorage.api.SdkSchedulePolicyCreateResponse + (*SdkSchedulePolicyUpdateRequest)(nil), // 162: openstorage.api.SdkSchedulePolicyUpdateRequest + (*SdkSchedulePolicyUpdateResponse)(nil), // 163: openstorage.api.SdkSchedulePolicyUpdateResponse + (*SdkSchedulePolicyEnumerateRequest)(nil), // 164: openstorage.api.SdkSchedulePolicyEnumerateRequest + (*SdkSchedulePolicyEnumerateResponse)(nil), // 165: openstorage.api.SdkSchedulePolicyEnumerateResponse + (*SdkSchedulePolicyInspectRequest)(nil), // 166: openstorage.api.SdkSchedulePolicyInspectRequest + (*SdkSchedulePolicyInspectResponse)(nil), // 167: openstorage.api.SdkSchedulePolicyInspectResponse + (*SdkSchedulePolicyDeleteRequest)(nil), // 168: openstorage.api.SdkSchedulePolicyDeleteRequest + (*SdkSchedulePolicyDeleteResponse)(nil), // 169: openstorage.api.SdkSchedulePolicyDeleteResponse + (*SdkSchedulePolicyIntervalDaily)(nil), // 170: openstorage.api.SdkSchedulePolicyIntervalDaily + (*SdkSchedulePolicyIntervalWeekly)(nil), // 171: openstorage.api.SdkSchedulePolicyIntervalWeekly + (*SdkSchedulePolicyIntervalMonthly)(nil), // 172: openstorage.api.SdkSchedulePolicyIntervalMonthly + (*SdkSchedulePolicyIntervalPeriodic)(nil), // 173: openstorage.api.SdkSchedulePolicyIntervalPeriodic + (*SdkSchedulePolicyInterval)(nil), // 174: openstorage.api.SdkSchedulePolicyInterval + (*SdkSchedulePolicy)(nil), // 175: openstorage.api.SdkSchedulePolicy + (*SdkCredentialCreateRequest)(nil), // 176: openstorage.api.SdkCredentialCreateRequest + (*SdkCredentialCreateResponse)(nil), // 177: openstorage.api.SdkCredentialCreateResponse + (*SdkCredentialUpdateRequest)(nil), // 178: openstorage.api.SdkCredentialUpdateRequest + (*SdkCredentialUpdateResponse)(nil), // 179: openstorage.api.SdkCredentialUpdateResponse + (*SdkAwsCredentialRequest)(nil), // 180: openstorage.api.SdkAwsCredentialRequest + (*SdkAzureCredentialRequest)(nil), // 181: openstorage.api.SdkAzureCredentialRequest + (*SdkGoogleCredentialRequest)(nil), // 182: openstorage.api.SdkGoogleCredentialRequest + (*SdkNfsCredentialRequest)(nil), // 183: openstorage.api.SdkNfsCredentialRequest + (*SdkAwsCredentialResponse)(nil), // 184: openstorage.api.SdkAwsCredentialResponse + (*SdkAzureCredentialResponse)(nil), // 185: openstorage.api.SdkAzureCredentialResponse + (*SdkGoogleCredentialResponse)(nil), // 186: openstorage.api.SdkGoogleCredentialResponse + (*SdkNfsCredentialResponse)(nil), // 187: openstorage.api.SdkNfsCredentialResponse + (*SdkCredentialEnumerateRequest)(nil), // 188: openstorage.api.SdkCredentialEnumerateRequest + (*SdkCredentialEnumerateResponse)(nil), // 189: openstorage.api.SdkCredentialEnumerateResponse + (*SdkCredentialInspectRequest)(nil), // 190: openstorage.api.SdkCredentialInspectRequest + (*SdkCredentialInspectResponse)(nil), // 191: openstorage.api.SdkCredentialInspectResponse + (*SdkCredentialDeleteRequest)(nil), // 192: openstorage.api.SdkCredentialDeleteRequest + (*SdkCredentialDeleteResponse)(nil), // 193: openstorage.api.SdkCredentialDeleteResponse + (*SdkCredentialValidateRequest)(nil), // 194: openstorage.api.SdkCredentialValidateRequest + (*SdkCredentialValidateResponse)(nil), // 195: openstorage.api.SdkCredentialValidateResponse + (*SdkCredentialDeleteReferencesRequest)(nil), // 196: openstorage.api.SdkCredentialDeleteReferencesRequest + (*SdkCredentialDeleteReferencesResponse)(nil), // 197: openstorage.api.SdkCredentialDeleteReferencesResponse + (*SdkVolumeAttachOptions)(nil), // 198: openstorage.api.SdkVolumeAttachOptions + (*SdkVolumeMountRequest)(nil), // 199: openstorage.api.SdkVolumeMountRequest + (*SdkVolumeMountResponse)(nil), // 200: openstorage.api.SdkVolumeMountResponse + (*SdkVolumeUnmountOptions)(nil), // 201: openstorage.api.SdkVolumeUnmountOptions + (*SdkVolumeUnmountRequest)(nil), // 202: openstorage.api.SdkVolumeUnmountRequest + (*SdkVolumeUnmountResponse)(nil), // 203: openstorage.api.SdkVolumeUnmountResponse + (*SdkVolumeAttachRequest)(nil), // 204: openstorage.api.SdkVolumeAttachRequest + (*SdkVolumeAttachResponse)(nil), // 205: openstorage.api.SdkVolumeAttachResponse + (*SdkVolumeDetachOptions)(nil), // 206: openstorage.api.SdkVolumeDetachOptions + (*SdkVolumeDetachRequest)(nil), // 207: openstorage.api.SdkVolumeDetachRequest + (*SdkVolumeDetachResponse)(nil), // 208: openstorage.api.SdkVolumeDetachResponse + (*SdkVolumeCreateRequest)(nil), // 209: openstorage.api.SdkVolumeCreateRequest + (*SdkVolumeCreateResponse)(nil), // 210: openstorage.api.SdkVolumeCreateResponse + (*SdkVolumeCloneRequest)(nil), // 211: openstorage.api.SdkVolumeCloneRequest + (*SdkVolumeCloneResponse)(nil), // 212: openstorage.api.SdkVolumeCloneResponse + (*SdkVolumeDeleteRequest)(nil), // 213: openstorage.api.SdkVolumeDeleteRequest + (*SdkVolumeDeleteResponse)(nil), // 214: openstorage.api.SdkVolumeDeleteResponse + (*SdkVolumeInspectRequest)(nil), // 215: openstorage.api.SdkVolumeInspectRequest + (*SdkVolumeInspectResponse)(nil), // 216: openstorage.api.SdkVolumeInspectResponse + (*SdkVolumeInspectWithFiltersRequest)(nil), // 217: openstorage.api.SdkVolumeInspectWithFiltersRequest + (*SdkVolumeInspectWithFiltersResponse)(nil), // 218: openstorage.api.SdkVolumeInspectWithFiltersResponse + (*SdkVolumeUpdateRequest)(nil), // 219: openstorage.api.SdkVolumeUpdateRequest + (*SdkVolumeUpdateResponse)(nil), // 220: openstorage.api.SdkVolumeUpdateResponse + (*SdkVolumeStatsRequest)(nil), // 221: openstorage.api.SdkVolumeStatsRequest + (*SdkVolumeStatsResponse)(nil), // 222: openstorage.api.SdkVolumeStatsResponse + (*SdkVolumeCapacityUsageRequest)(nil), // 223: openstorage.api.SdkVolumeCapacityUsageRequest + (*SdkVolumeCapacityUsageResponse)(nil), // 224: openstorage.api.SdkVolumeCapacityUsageResponse + (*SdkVolumeEnumerateRequest)(nil), // 225: openstorage.api.SdkVolumeEnumerateRequest + (*SdkVolumeEnumerateResponse)(nil), // 226: openstorage.api.SdkVolumeEnumerateResponse + (*SdkVolumeEnumerateWithFiltersRequest)(nil), // 227: openstorage.api.SdkVolumeEnumerateWithFiltersRequest + (*SdkVolumeEnumerateWithFiltersResponse)(nil), // 228: openstorage.api.SdkVolumeEnumerateWithFiltersResponse + (*SdkVolumeSnapshotCreateRequest)(nil), // 229: openstorage.api.SdkVolumeSnapshotCreateRequest + (*SdkVolumeSnapshotCreateResponse)(nil), // 230: openstorage.api.SdkVolumeSnapshotCreateResponse + (*SdkVolumeSnapshotRestoreRequest)(nil), // 231: openstorage.api.SdkVolumeSnapshotRestoreRequest + (*SdkVolumeSnapshotRestoreResponse)(nil), // 232: openstorage.api.SdkVolumeSnapshotRestoreResponse + (*SdkVolumeSnapshotEnumerateRequest)(nil), // 233: openstorage.api.SdkVolumeSnapshotEnumerateRequest + (*SdkVolumeSnapshotEnumerateResponse)(nil), // 234: openstorage.api.SdkVolumeSnapshotEnumerateResponse + (*SdkVolumeSnapshotEnumerateWithFiltersRequest)(nil), // 235: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest + (*SdkVolumeSnapshotEnumerateWithFiltersResponse)(nil), // 236: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersResponse + (*SdkVolumeSnapshotScheduleUpdateRequest)(nil), // 237: openstorage.api.SdkVolumeSnapshotScheduleUpdateRequest + (*SdkVolumeSnapshotScheduleUpdateResponse)(nil), // 238: openstorage.api.SdkVolumeSnapshotScheduleUpdateResponse + (*SdkNodeVolumeUsageByNodeRequest)(nil), // 239: openstorage.api.SdkNodeVolumeUsageByNodeRequest + (*SdkNodeVolumeUsageByNodeResponse)(nil), // 240: openstorage.api.SdkNodeVolumeUsageByNodeResponse + (*SdkNodeRelaxedReclaimPurgeRequest)(nil), // 241: openstorage.api.SdkNodeRelaxedReclaimPurgeRequest + (*SdkNodeRelaxedReclaimPurgeResponse)(nil), // 242: openstorage.api.SdkNodeRelaxedReclaimPurgeResponse + (*SdkClusterDomainsEnumerateRequest)(nil), // 243: openstorage.api.SdkClusterDomainsEnumerateRequest + (*SdkClusterDomainsEnumerateResponse)(nil), // 244: openstorage.api.SdkClusterDomainsEnumerateResponse + (*SdkClusterDomainInspectRequest)(nil), // 245: openstorage.api.SdkClusterDomainInspectRequest + (*SdkClusterDomainInspectResponse)(nil), // 246: openstorage.api.SdkClusterDomainInspectResponse + (*SdkClusterDomainActivateRequest)(nil), // 247: openstorage.api.SdkClusterDomainActivateRequest + (*SdkClusterDomainActivateResponse)(nil), // 248: openstorage.api.SdkClusterDomainActivateResponse + (*SdkClusterDomainDeactivateRequest)(nil), // 249: openstorage.api.SdkClusterDomainDeactivateRequest + (*SdkClusterDomainDeactivateResponse)(nil), // 250: openstorage.api.SdkClusterDomainDeactivateResponse + (*SdkClusterInspectCurrentRequest)(nil), // 251: openstorage.api.SdkClusterInspectCurrentRequest + (*SdkClusterInspectCurrentResponse)(nil), // 252: openstorage.api.SdkClusterInspectCurrentResponse + (*SdkNodeInspectRequest)(nil), // 253: openstorage.api.SdkNodeInspectRequest + (*Job)(nil), // 254: openstorage.api.Job + (*SdkJobResponse)(nil), // 255: openstorage.api.SdkJobResponse + (*NodeDrainAttachmentOptions)(nil), // 256: openstorage.api.NodeDrainAttachmentOptions + (*SdkNodeDrainAttachmentsRequest)(nil), // 257: openstorage.api.SdkNodeDrainAttachmentsRequest + (*NodeDrainAttachmentsJob)(nil), // 258: openstorage.api.NodeDrainAttachmentsJob + (*CloudDriveTransferJob)(nil), // 259: openstorage.api.CloudDriveTransferJob + (*CollectDiagsJob)(nil), // 260: openstorage.api.CollectDiagsJob + (*DiagsCollectionStatus)(nil), // 261: openstorage.api.DiagsCollectionStatus + (*SdkDiagsCollectRequest)(nil), // 262: openstorage.api.SdkDiagsCollectRequest + (*SdkDiagsCollectResponse)(nil), // 263: openstorage.api.SdkDiagsCollectResponse + (*DiagsNodeSelector)(nil), // 264: openstorage.api.DiagsNodeSelector + (*DiagsVolumeSelector)(nil), // 265: openstorage.api.DiagsVolumeSelector + (*SdkEnumerateJobsRequest)(nil), // 266: openstorage.api.SdkEnumerateJobsRequest + (*SdkEnumerateJobsResponse)(nil), // 267: openstorage.api.SdkEnumerateJobsResponse + (*SdkUpdateJobRequest)(nil), // 268: openstorage.api.SdkUpdateJobRequest + (*SdkUpdateJobResponse)(nil), // 269: openstorage.api.SdkUpdateJobResponse + (*SdkGetJobStatusRequest)(nil), // 270: openstorage.api.SdkGetJobStatusRequest + (*JobAudit)(nil), // 271: openstorage.api.JobAudit + (*JobWorkSummary)(nil), // 272: openstorage.api.JobWorkSummary + (*JobSummary)(nil), // 273: openstorage.api.JobSummary + (*SdkGetJobStatusResponse)(nil), // 274: openstorage.api.SdkGetJobStatusResponse + (*DrainAttachmentsSummary)(nil), // 275: openstorage.api.DrainAttachmentsSummary + (*SdkNodeCordonAttachmentsRequest)(nil), // 276: openstorage.api.SdkNodeCordonAttachmentsRequest + (*SdkNodeCordonAttachmentsResponse)(nil), // 277: openstorage.api.SdkNodeCordonAttachmentsResponse + (*SdkNodeUncordonAttachmentsRequest)(nil), // 278: openstorage.api.SdkNodeUncordonAttachmentsRequest + (*SdkNodeUncordonAttachmentsResponse)(nil), // 279: openstorage.api.SdkNodeUncordonAttachmentsResponse + (*SdkStoragePoolResizeRequest)(nil), // 280: openstorage.api.SdkStoragePoolResizeRequest + (*StorageRebalanceTriggerThreshold)(nil), // 281: openstorage.api.StorageRebalanceTriggerThreshold + (*SdkStorageRebalanceRequest)(nil), // 282: openstorage.api.SdkStorageRebalanceRequest + (*SdkStorageRebalanceResponse)(nil), // 283: openstorage.api.SdkStorageRebalanceResponse + (*StorageRebalanceJob)(nil), // 284: openstorage.api.StorageRebalanceJob + (*StorageRebalanceSummary)(nil), // 285: openstorage.api.StorageRebalanceSummary + (*StorageRebalanceWorkSummary)(nil), // 286: openstorage.api.StorageRebalanceWorkSummary + (*StorageRebalanceAudit)(nil), // 287: openstorage.api.StorageRebalanceAudit + (*SdkUpdateRebalanceJobRequest)(nil), // 288: openstorage.api.SdkUpdateRebalanceJobRequest + (*SdkUpdateRebalanceJobResponse)(nil), // 289: openstorage.api.SdkUpdateRebalanceJobResponse + (*SdkGetRebalanceJobStatusRequest)(nil), // 290: openstorage.api.SdkGetRebalanceJobStatusRequest + (*SdkGetRebalanceJobStatusResponse)(nil), // 291: openstorage.api.SdkGetRebalanceJobStatusResponse + (*SdkEnumerateRebalanceJobsRequest)(nil), // 292: openstorage.api.SdkEnumerateRebalanceJobsRequest + (*SdkEnumerateRebalanceJobsResponse)(nil), // 293: openstorage.api.SdkEnumerateRebalanceJobsResponse + (*SdkStoragePool)(nil), // 294: openstorage.api.SdkStoragePool + (*SdkStoragePoolResizeResponse)(nil), // 295: openstorage.api.SdkStoragePoolResizeResponse + (*SdkNodeInspectResponse)(nil), // 296: openstorage.api.SdkNodeInspectResponse + (*SdkNodeInspectCurrentRequest)(nil), // 297: openstorage.api.SdkNodeInspectCurrentRequest + (*SdkNodeInspectCurrentResponse)(nil), // 298: openstorage.api.SdkNodeInspectCurrentResponse + (*SdkNodeEnumerateRequest)(nil), // 299: openstorage.api.SdkNodeEnumerateRequest + (*SdkNodeEnumerateResponse)(nil), // 300: openstorage.api.SdkNodeEnumerateResponse + (*SdkNodeEnumerateWithFiltersRequest)(nil), // 301: openstorage.api.SdkNodeEnumerateWithFiltersRequest + (*SdkNodeEnumerateWithFiltersResponse)(nil), // 302: openstorage.api.SdkNodeEnumerateWithFiltersResponse + (*SdkObjectstoreInspectRequest)(nil), // 303: openstorage.api.SdkObjectstoreInspectRequest + (*SdkObjectstoreInspectResponse)(nil), // 304: openstorage.api.SdkObjectstoreInspectResponse + (*SdkObjectstoreCreateRequest)(nil), // 305: openstorage.api.SdkObjectstoreCreateRequest + (*SdkObjectstoreCreateResponse)(nil), // 306: openstorage.api.SdkObjectstoreCreateResponse + (*SdkObjectstoreDeleteRequest)(nil), // 307: openstorage.api.SdkObjectstoreDeleteRequest + (*SdkObjectstoreDeleteResponse)(nil), // 308: openstorage.api.SdkObjectstoreDeleteResponse + (*SdkObjectstoreUpdateRequest)(nil), // 309: openstorage.api.SdkObjectstoreUpdateRequest + (*SdkObjectstoreUpdateResponse)(nil), // 310: openstorage.api.SdkObjectstoreUpdateResponse + (*SdkCloudBackupCreateRequest)(nil), // 311: openstorage.api.SdkCloudBackupCreateRequest + (*SdkCloudBackupCreateResponse)(nil), // 312: openstorage.api.SdkCloudBackupCreateResponse + (*SdkCloudBackupGroupCreateRequest)(nil), // 313: openstorage.api.SdkCloudBackupGroupCreateRequest + (*SdkCloudBackupGroupCreateResponse)(nil), // 314: openstorage.api.SdkCloudBackupGroupCreateResponse + (*SdkCloudBackupRestoreRequest)(nil), // 315: openstorage.api.SdkCloudBackupRestoreRequest + (*SdkCloudBackupRestoreResponse)(nil), // 316: openstorage.api.SdkCloudBackupRestoreResponse + (*SdkCloudBackupDeleteRequest)(nil), // 317: openstorage.api.SdkCloudBackupDeleteRequest + (*SdkCloudBackupDeleteResponse)(nil), // 318: openstorage.api.SdkCloudBackupDeleteResponse + (*SdkCloudBackupDeleteAllRequest)(nil), // 319: openstorage.api.SdkCloudBackupDeleteAllRequest + (*SdkCloudBackupDeleteAllResponse)(nil), // 320: openstorage.api.SdkCloudBackupDeleteAllResponse + (*SdkCloudBackupEnumerateWithFiltersRequest)(nil), // 321: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest + (*SdkCloudBackupInfo)(nil), // 322: openstorage.api.SdkCloudBackupInfo + (*SdkCloudBackupEnumerateWithFiltersResponse)(nil), // 323: openstorage.api.SdkCloudBackupEnumerateWithFiltersResponse + (*SdkCloudBackupStatus)(nil), // 324: openstorage.api.SdkCloudBackupStatus + (*SdkCloudBackupStatusRequest)(nil), // 325: openstorage.api.SdkCloudBackupStatusRequest + (*SdkCloudBackupStatusResponse)(nil), // 326: openstorage.api.SdkCloudBackupStatusResponse + (*SdkCloudBackupCatalogRequest)(nil), // 327: openstorage.api.SdkCloudBackupCatalogRequest + (*SdkCloudBackupCatalogResponse)(nil), // 328: openstorage.api.SdkCloudBackupCatalogResponse + (*SdkCloudBackupHistoryItem)(nil), // 329: openstorage.api.SdkCloudBackupHistoryItem + (*SdkCloudBackupHistoryRequest)(nil), // 330: openstorage.api.SdkCloudBackupHistoryRequest + (*SdkCloudBackupHistoryResponse)(nil), // 331: openstorage.api.SdkCloudBackupHistoryResponse + (*SdkCloudBackupStateChangeRequest)(nil), // 332: openstorage.api.SdkCloudBackupStateChangeRequest + (*SdkCloudBackupStateChangeResponse)(nil), // 333: openstorage.api.SdkCloudBackupStateChangeResponse + (*SdkCloudBackupScheduleInfo)(nil), // 334: openstorage.api.SdkCloudBackupScheduleInfo + (*SdkCloudBackupSchedCreateRequest)(nil), // 335: openstorage.api.SdkCloudBackupSchedCreateRequest + (*SdkCloudBackupSchedCreateResponse)(nil), // 336: openstorage.api.SdkCloudBackupSchedCreateResponse + (*SdkCloudBackupSchedUpdateRequest)(nil), // 337: openstorage.api.SdkCloudBackupSchedUpdateRequest + (*SdkCloudBackupSchedUpdateResponse)(nil), // 338: openstorage.api.SdkCloudBackupSchedUpdateResponse + (*SdkCloudBackupSchedDeleteRequest)(nil), // 339: openstorage.api.SdkCloudBackupSchedDeleteRequest + (*SdkCloudBackupSchedDeleteResponse)(nil), // 340: openstorage.api.SdkCloudBackupSchedDeleteResponse + (*SdkCloudBackupSchedEnumerateRequest)(nil), // 341: openstorage.api.SdkCloudBackupSchedEnumerateRequest + (*SdkCloudBackupSchedEnumerateResponse)(nil), // 342: openstorage.api.SdkCloudBackupSchedEnumerateResponse + (*SdkCloudBackupSizeRequest)(nil), // 343: openstorage.api.SdkCloudBackupSizeRequest + (*SdkCloudBackupSizeResponse)(nil), // 344: openstorage.api.SdkCloudBackupSizeResponse + (*SdkRule)(nil), // 345: openstorage.api.SdkRule + (*SdkRole)(nil), // 346: openstorage.api.SdkRole + (*SdkRoleCreateRequest)(nil), // 347: openstorage.api.SdkRoleCreateRequest + (*SdkRoleCreateResponse)(nil), // 348: openstorage.api.SdkRoleCreateResponse + (*SdkRoleEnumerateRequest)(nil), // 349: openstorage.api.SdkRoleEnumerateRequest + (*SdkRoleEnumerateResponse)(nil), // 350: openstorage.api.SdkRoleEnumerateResponse + (*SdkRoleInspectRequest)(nil), // 351: openstorage.api.SdkRoleInspectRequest + (*SdkRoleInspectResponse)(nil), // 352: openstorage.api.SdkRoleInspectResponse + (*SdkRoleDeleteRequest)(nil), // 353: openstorage.api.SdkRoleDeleteRequest + (*SdkRoleDeleteResponse)(nil), // 354: openstorage.api.SdkRoleDeleteResponse + (*SdkRoleUpdateRequest)(nil), // 355: openstorage.api.SdkRoleUpdateRequest + (*SdkRoleUpdateResponse)(nil), // 356: openstorage.api.SdkRoleUpdateResponse + (*FilesystemTrim)(nil), // 357: openstorage.api.FilesystemTrim + (*SdkFilesystemTrimStartRequest)(nil), // 358: openstorage.api.SdkFilesystemTrimStartRequest + (*SdkFilesystemTrimStartResponse)(nil), // 359: openstorage.api.SdkFilesystemTrimStartResponse + (*SdkFilesystemTrimStatusRequest)(nil), // 360: openstorage.api.SdkFilesystemTrimStatusRequest + (*SdkFilesystemTrimStatusResponse)(nil), // 361: openstorage.api.SdkFilesystemTrimStatusResponse + (*SdkAutoFSTrimStatusRequest)(nil), // 362: openstorage.api.SdkAutoFSTrimStatusRequest + (*SdkAutoFSTrimStatusResponse)(nil), // 363: openstorage.api.SdkAutoFSTrimStatusResponse + (*SdkAutoFSTrimUsageRequest)(nil), // 364: openstorage.api.SdkAutoFSTrimUsageRequest + (*SdkAutoFSTrimUsageResponse)(nil), // 365: openstorage.api.SdkAutoFSTrimUsageResponse + (*SdkFilesystemTrimStopRequest)(nil), // 366: openstorage.api.SdkFilesystemTrimStopRequest + (*SdkVolumeBytesUsedResponse)(nil), // 367: openstorage.api.SdkVolumeBytesUsedResponse + (*SdkVolumeBytesUsedRequest)(nil), // 368: openstorage.api.SdkVolumeBytesUsedRequest + (*SdkFilesystemTrimStopResponse)(nil), // 369: openstorage.api.SdkFilesystemTrimStopResponse + (*SdkAutoFSTrimPushRequest)(nil), // 370: openstorage.api.SdkAutoFSTrimPushRequest + (*SdkAutoFSTrimPushResponse)(nil), // 371: openstorage.api.SdkAutoFSTrimPushResponse + (*SdkAutoFSTrimPopRequest)(nil), // 372: openstorage.api.SdkAutoFSTrimPopRequest + (*SdkAutoFSTrimPopResponse)(nil), // 373: openstorage.api.SdkAutoFSTrimPopResponse + (*FilesystemCheck)(nil), // 374: openstorage.api.FilesystemCheck + (*SdkFilesystemCheckStartRequest)(nil), // 375: openstorage.api.SdkFilesystemCheckStartRequest + (*SdkFilesystemCheckStartResponse)(nil), // 376: openstorage.api.SdkFilesystemCheckStartResponse + (*SdkFilesystemCheckStatusRequest)(nil), // 377: openstorage.api.SdkFilesystemCheckStatusRequest + (*SdkFilesystemCheckStatusResponse)(nil), // 378: openstorage.api.SdkFilesystemCheckStatusResponse + (*SdkFilesystemCheckStopRequest)(nil), // 379: openstorage.api.SdkFilesystemCheckStopRequest + (*SdkFilesystemCheckStopResponse)(nil), // 380: openstorage.api.SdkFilesystemCheckStopResponse + (*SdkIdentityCapabilitiesRequest)(nil), // 381: openstorage.api.SdkIdentityCapabilitiesRequest + (*SdkIdentityCapabilitiesResponse)(nil), // 382: openstorage.api.SdkIdentityCapabilitiesResponse + (*SdkIdentityVersionRequest)(nil), // 383: openstorage.api.SdkIdentityVersionRequest + (*SdkIdentityVersionResponse)(nil), // 384: openstorage.api.SdkIdentityVersionResponse + (*SdkServiceCapability)(nil), // 385: openstorage.api.SdkServiceCapability + (*SdkVersion)(nil), // 386: openstorage.api.SdkVersion + (*StorageVersion)(nil), // 387: openstorage.api.StorageVersion + (*CloudMigrate)(nil), // 388: openstorage.api.CloudMigrate + (*CloudMigrateStartRequest)(nil), // 389: openstorage.api.CloudMigrateStartRequest + (*SdkCloudMigrateStartRequest)(nil), // 390: openstorage.api.SdkCloudMigrateStartRequest + (*CloudMigrateStartResponse)(nil), // 391: openstorage.api.CloudMigrateStartResponse + (*SdkCloudMigrateStartResponse)(nil), // 392: openstorage.api.SdkCloudMigrateStartResponse + (*CloudMigrateCancelRequest)(nil), // 393: openstorage.api.CloudMigrateCancelRequest + (*SdkCloudMigrateCancelRequest)(nil), // 394: openstorage.api.SdkCloudMigrateCancelRequest + (*SdkCloudMigrateCancelResponse)(nil), // 395: openstorage.api.SdkCloudMigrateCancelResponse + (*CloudMigrateInfo)(nil), // 396: openstorage.api.CloudMigrateInfo + (*CloudMigrateInfoList)(nil), // 397: openstorage.api.CloudMigrateInfoList + (*SdkCloudMigrateStatusRequest)(nil), // 398: openstorage.api.SdkCloudMigrateStatusRequest + (*CloudMigrateStatusRequest)(nil), // 399: openstorage.api.CloudMigrateStatusRequest + (*CloudMigrateStatusResponse)(nil), // 400: openstorage.api.CloudMigrateStatusResponse + (*SdkCloudMigrateStatusResponse)(nil), // 401: openstorage.api.SdkCloudMigrateStatusResponse + (*ClusterPairMode)(nil), // 402: openstorage.api.ClusterPairMode + (*ClusterPairCreateRequest)(nil), // 403: openstorage.api.ClusterPairCreateRequest + (*ClusterPairCreateResponse)(nil), // 404: openstorage.api.ClusterPairCreateResponse + (*SdkClusterPairCreateRequest)(nil), // 405: openstorage.api.SdkClusterPairCreateRequest + (*SdkClusterPairCreateResponse)(nil), // 406: openstorage.api.SdkClusterPairCreateResponse + (*ClusterPairProcessRequest)(nil), // 407: openstorage.api.ClusterPairProcessRequest + (*ClusterPairProcessResponse)(nil), // 408: openstorage.api.ClusterPairProcessResponse + (*SdkClusterPairDeleteRequest)(nil), // 409: openstorage.api.SdkClusterPairDeleteRequest + (*SdkClusterPairDeleteResponse)(nil), // 410: openstorage.api.SdkClusterPairDeleteResponse + (*ClusterPairTokenGetResponse)(nil), // 411: openstorage.api.ClusterPairTokenGetResponse + (*SdkClusterPairGetTokenRequest)(nil), // 412: openstorage.api.SdkClusterPairGetTokenRequest + (*SdkClusterPairGetTokenResponse)(nil), // 413: openstorage.api.SdkClusterPairGetTokenResponse + (*SdkClusterPairResetTokenRequest)(nil), // 414: openstorage.api.SdkClusterPairResetTokenRequest + (*SdkClusterPairResetTokenResponse)(nil), // 415: openstorage.api.SdkClusterPairResetTokenResponse + (*ClusterPairInfo)(nil), // 416: openstorage.api.ClusterPairInfo + (*SdkClusterPairInspectRequest)(nil), // 417: openstorage.api.SdkClusterPairInspectRequest + (*ClusterPairGetResponse)(nil), // 418: openstorage.api.ClusterPairGetResponse + (*SdkClusterPairInspectResponse)(nil), // 419: openstorage.api.SdkClusterPairInspectResponse + (*SdkClusterPairEnumerateRequest)(nil), // 420: openstorage.api.SdkClusterPairEnumerateRequest + (*ClusterPairsEnumerateResponse)(nil), // 421: openstorage.api.ClusterPairsEnumerateResponse + (*SdkClusterPairEnumerateResponse)(nil), // 422: openstorage.api.SdkClusterPairEnumerateResponse + (*Catalog)(nil), // 423: openstorage.api.Catalog + (*Report)(nil), // 424: openstorage.api.Report + (*CatalogResponse)(nil), // 425: openstorage.api.CatalogResponse + (*LocateResponse)(nil), // 426: openstorage.api.LocateResponse + (*VolumePlacementStrategy)(nil), // 427: openstorage.api.VolumePlacementStrategy + (*ReplicaPlacementSpec)(nil), // 428: openstorage.api.ReplicaPlacementSpec + (*VolumePlacementSpec)(nil), // 429: openstorage.api.VolumePlacementSpec + (*LabelSelectorRequirement)(nil), // 430: openstorage.api.LabelSelectorRequirement + (*RestoreVolSnashotSchedule)(nil), // 431: openstorage.api.RestoreVolSnashotSchedule + (*RestoreVolStoragePolicy)(nil), // 432: openstorage.api.RestoreVolStoragePolicy + (*RestoreVolumeSpec)(nil), // 433: openstorage.api.RestoreVolumeSpec + (*SdkVolumeCatalogRequest)(nil), // 434: openstorage.api.SdkVolumeCatalogRequest + (*SdkVolumeCatalogResponse)(nil), // 435: openstorage.api.SdkVolumeCatalogResponse + nil, // 436: openstorage.api.StoragePool.LabelsEntry + nil, // 437: openstorage.api.SchedulerTopology.LabelsEntry + nil, // 438: openstorage.api.StoragePoolOperation.ParamsEntry + nil, // 439: openstorage.api.TopologyRequirement.LabelsEntry + nil, // 440: openstorage.api.VolumeLocator.VolumeLabelsEntry + nil, // 441: openstorage.api.MountOptions.OptionsEntry + nil, // 442: openstorage.api.VolumeSpec.VolumeLabelsEntry + nil, // 443: openstorage.api.VolumeSpecPolicy.VolumeLabelsEntry + nil, // 444: openstorage.api.RuntimeStateMap.RuntimeStateEntry + (*Ownership_PublicAccessControl)(nil), // 445: openstorage.api.Ownership.PublicAccessControl + (*Ownership_AccessControl)(nil), // 446: openstorage.api.Ownership.AccessControl + nil, // 447: openstorage.api.Ownership.AccessControl.GroupsEntry + nil, // 448: openstorage.api.Ownership.AccessControl.CollaboratorsEntry + nil, // 449: openstorage.api.Volume.AttachInfoEntry + nil, // 450: openstorage.api.VolumeSetRequest.OptionsEntry + nil, // 451: openstorage.api.VolumeServiceRequest.SrvCmdParamsEntry + nil, // 452: openstorage.api.VolumeServiceInstanceResponse.StatusEntry + nil, // 453: openstorage.api.ActiveRequest.ReqestKVEntry + nil, // 454: openstorage.api.GroupSnapCreateRequest.LabelsEntry + nil, // 455: openstorage.api.GroupSnapCreateResponse.SnapshotsEntry + nil, // 456: openstorage.api.StorageNode.DisksEntry + nil, // 457: openstorage.api.StorageNode.NodeLabelsEntry + nil, // 458: openstorage.api.SdkVolumeMountRequest.DriverOptionsEntry + nil, // 459: openstorage.api.SdkVolumeUnmountRequest.DriverOptionsEntry + nil, // 460: openstorage.api.SdkVolumeAttachRequest.DriverOptionsEntry + nil, // 461: openstorage.api.SdkVolumeDetachRequest.DriverOptionsEntry + nil, // 462: openstorage.api.SdkVolumeCreateRequest.LabelsEntry + nil, // 463: openstorage.api.SdkVolumeCloneRequest.AdditionalLabelsEntry + nil, // 464: openstorage.api.SdkVolumeInspectResponse.LabelsEntry + nil, // 465: openstorage.api.SdkVolumeInspectWithFiltersRequest.LabelsEntry + nil, // 466: openstorage.api.SdkVolumeUpdateRequest.LabelsEntry + nil, // 467: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.LabelsEntry + nil, // 468: openstorage.api.SdkVolumeSnapshotCreateRequest.LabelsEntry + nil, // 469: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest.LabelsEntry + nil, // 470: openstorage.api.SdkCloudBackupCreateRequest.LabelsEntry + nil, // 471: openstorage.api.SdkCloudBackupGroupCreateRequest.LabelsEntry + nil, // 472: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.MetadataFilterEntry + nil, // 473: openstorage.api.SdkCloudBackupInfo.MetadataEntry + nil, // 474: openstorage.api.SdkCloudBackupStatusResponse.StatusesEntry + nil, // 475: openstorage.api.SdkCloudBackupScheduleInfo.LabelsEntry + nil, // 476: openstorage.api.SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry + nil, // 477: openstorage.api.SdkAutoFSTrimStatusResponse.TrimStatusEntry + nil, // 478: openstorage.api.SdkAutoFSTrimUsageResponse.UsageEntry + (*SdkServiceCapability_OpenStorageService)(nil), // 479: openstorage.api.SdkServiceCapability.OpenStorageService + nil, // 480: openstorage.api.StorageVersion.DetailsEntry + (*SdkCloudMigrateStartRequest_MigrateVolume)(nil), // 481: openstorage.api.SdkCloudMigrateStartRequest.MigrateVolume + (*SdkCloudMigrateStartRequest_MigrateVolumeGroup)(nil), // 482: openstorage.api.SdkCloudMigrateStartRequest.MigrateVolumeGroup + (*SdkCloudMigrateStartRequest_MigrateAllVolumes)(nil), // 483: openstorage.api.SdkCloudMigrateStartRequest.MigrateAllVolumes + nil, // 484: openstorage.api.CloudMigrateStatusResponse.InfoEntry + nil, // 485: openstorage.api.ClusterPairProcessResponse.OptionsEntry + nil, // 486: openstorage.api.ClusterPairInfo.OptionsEntry + nil, // 487: openstorage.api.ClusterPairsEnumerateResponse.PairsEntry + nil, // 488: openstorage.api.LocateResponse.MountsEntry + nil, // 489: openstorage.api.LocateResponse.DockeridsEntry + (*timestamppb.Timestamp)(nil), // 490: google.protobuf.Timestamp } var file_api_api_proto_depIdxs = []int32{ 13, // 0: openstorage.api.StorageResource.medium:type_name -> openstorage.api.StorageMedium - 478, // 1: openstorage.api.StorageResource.last_scan:type_name -> google.protobuf.Timestamp + 490, // 1: openstorage.api.StorageResource.last_scan:type_name -> google.protobuf.Timestamp 8, // 2: openstorage.api.StoragePool.Cos:type_name -> openstorage.api.CosType 13, // 3: openstorage.api.StoragePool.Medium:type_name -> openstorage.api.StorageMedium - 425, // 4: openstorage.api.StoragePool.labels:type_name -> openstorage.api.StoragePool.LabelsEntry - 60, // 5: openstorage.api.StoragePool.last_operation:type_name -> openstorage.api.StoragePoolOperation - 426, // 6: openstorage.api.SchedulerTopology.labels:type_name -> openstorage.api.SchedulerTopology.LabelsEntry - 46, // 7: openstorage.api.StoragePoolOperation.type:type_name -> openstorage.api.SdkStoragePool.OperationType - 427, // 8: openstorage.api.StoragePoolOperation.params:type_name -> openstorage.api.StoragePoolOperation.ParamsEntry - 45, // 9: openstorage.api.StoragePoolOperation.status:type_name -> openstorage.api.SdkStoragePool.OperationStatus - 428, // 10: openstorage.api.TopologyRequirement.labels:type_name -> openstorage.api.TopologyRequirement.LabelsEntry - 429, // 11: openstorage.api.VolumeLocator.volume_labels:type_name -> openstorage.api.VolumeLocator.VolumeLabelsEntry - 88, // 12: openstorage.api.VolumeLocator.ownership:type_name -> openstorage.api.Ownership - 65, // 13: openstorage.api.VolumeLocator.group:type_name -> openstorage.api.Group + 436, // 4: openstorage.api.StoragePool.labels:type_name -> openstorage.api.StoragePool.LabelsEntry + 61, // 5: openstorage.api.StoragePool.last_operation:type_name -> openstorage.api.StoragePoolOperation + 437, // 6: openstorage.api.SchedulerTopology.labels:type_name -> openstorage.api.SchedulerTopology.LabelsEntry + 47, // 7: openstorage.api.StoragePoolOperation.type:type_name -> openstorage.api.SdkStoragePool.OperationType + 438, // 8: openstorage.api.StoragePoolOperation.params:type_name -> openstorage.api.StoragePoolOperation.ParamsEntry + 46, // 9: openstorage.api.StoragePoolOperation.status:type_name -> openstorage.api.SdkStoragePool.OperationStatus + 439, // 10: openstorage.api.TopologyRequirement.labels:type_name -> openstorage.api.TopologyRequirement.LabelsEntry + 440, // 11: openstorage.api.VolumeLocator.volume_labels:type_name -> openstorage.api.VolumeLocator.VolumeLabelsEntry + 89, // 12: openstorage.api.VolumeLocator.ownership:type_name -> openstorage.api.Ownership + 66, // 13: openstorage.api.VolumeLocator.group:type_name -> openstorage.api.Group 17, // 14: openstorage.api.ExportSpec.export_protocol:type_name -> openstorage.api.ExportProtocol 18, // 15: openstorage.api.ProxySpec.proxy_protocol:type_name -> openstorage.api.ProxyProtocol - 69, // 16: openstorage.api.ProxySpec.nfs_spec:type_name -> openstorage.api.NFSProxySpec - 70, // 17: openstorage.api.ProxySpec.s3_spec:type_name -> openstorage.api.S3ProxySpec - 71, // 18: openstorage.api.ProxySpec.pxd_spec:type_name -> openstorage.api.PXDProxySpec - 72, // 19: openstorage.api.ProxySpec.pure_block_spec:type_name -> openstorage.api.PureBlockSpec - 73, // 20: openstorage.api.ProxySpec.pure_file_spec:type_name -> openstorage.api.PureFileSpec - 31, // 21: openstorage.api.Sharedv4ServiceSpec.type:type_name -> openstorage.api.Sharedv4ServiceSpec.ServiceType - 32, // 22: openstorage.api.Sharedv4Spec.failover_strategy:type_name -> openstorage.api.Sharedv4FailoverStrategy.Value - 430, // 23: openstorage.api.MountOptions.options:type_name -> openstorage.api.MountOptions.OptionsEntry + 70, // 16: openstorage.api.ProxySpec.nfs_spec:type_name -> openstorage.api.NFSProxySpec + 71, // 17: openstorage.api.ProxySpec.s3_spec:type_name -> openstorage.api.S3ProxySpec + 72, // 18: openstorage.api.ProxySpec.pxd_spec:type_name -> openstorage.api.PXDProxySpec + 73, // 19: openstorage.api.ProxySpec.pure_block_spec:type_name -> openstorage.api.PureBlockSpec + 74, // 20: openstorage.api.ProxySpec.pure_file_spec:type_name -> openstorage.api.PureFileSpec + 32, // 21: openstorage.api.Sharedv4ServiceSpec.type:type_name -> openstorage.api.Sharedv4ServiceSpec.ServiceType + 33, // 22: openstorage.api.Sharedv4Spec.failover_strategy:type_name -> openstorage.api.Sharedv4FailoverStrategy.Value + 441, // 23: openstorage.api.MountOptions.options:type_name -> openstorage.api.MountOptions.OptionsEntry 20, // 24: openstorage.api.FastpathReplState.protocol:type_name -> openstorage.api.FastpathProtocol 19, // 25: openstorage.api.FastpathConfig.status:type_name -> openstorage.api.FastpathStatus - 79, // 26: openstorage.api.FastpathConfig.replicas:type_name -> openstorage.api.FastpathReplState - 33, // 27: openstorage.api.ScanPolicy.trigger:type_name -> openstorage.api.ScanPolicy.ScanTrigger - 34, // 28: openstorage.api.ScanPolicy.action:type_name -> openstorage.api.ScanPolicy.ScanAction + 80, // 26: openstorage.api.FastpathConfig.replicas:type_name -> openstorage.api.FastpathReplState + 34, // 27: openstorage.api.ScanPolicy.trigger:type_name -> openstorage.api.ScanPolicy.ScanTrigger + 35, // 28: openstorage.api.ScanPolicy.action:type_name -> openstorage.api.ScanPolicy.ScanAction 2, // 29: openstorage.api.VolumeSpec.format:type_name -> openstorage.api.FSType 8, // 30: openstorage.api.VolumeSpec.cos:type_name -> openstorage.api.CosType 9, // 31: openstorage.api.VolumeSpec.io_profile:type_name -> openstorage.api.IoProfile - 431, // 32: openstorage.api.VolumeSpec.volume_labels:type_name -> openstorage.api.VolumeSpec.VolumeLabelsEntry - 86, // 33: openstorage.api.VolumeSpec.replica_set:type_name -> openstorage.api.ReplicaSet - 65, // 34: openstorage.api.VolumeSpec.group:type_name -> openstorage.api.Group - 66, // 35: openstorage.api.VolumeSpec.io_strategy:type_name -> openstorage.api.IoStrategy - 416, // 36: openstorage.api.VolumeSpec.placement_strategy:type_name -> openstorage.api.VolumePlacementStrategy - 88, // 37: openstorage.api.VolumeSpec.ownership:type_name -> openstorage.api.Ownership - 68, // 38: openstorage.api.VolumeSpec.export_spec:type_name -> openstorage.api.ExportSpec - 30, // 39: openstorage.api.VolumeSpec.xattr:type_name -> openstorage.api.Xattr.Value - 81, // 40: openstorage.api.VolumeSpec.scan_policy:type_name -> openstorage.api.ScanPolicy - 78, // 41: openstorage.api.VolumeSpec.mount_options:type_name -> openstorage.api.MountOptions - 78, // 42: openstorage.api.VolumeSpec.sharedv4_mount_options:type_name -> openstorage.api.MountOptions - 74, // 43: openstorage.api.VolumeSpec.proxy_spec:type_name -> openstorage.api.ProxySpec - 75, // 44: openstorage.api.VolumeSpec.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec - 77, // 45: openstorage.api.VolumeSpec.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec - 82, // 46: openstorage.api.VolumeSpec.io_throttle:type_name -> openstorage.api.IoThrottle - 61, // 47: openstorage.api.VolumeSpec.topology_requirement:type_name -> openstorage.api.TopologyRequirement - 8, // 48: openstorage.api.VolumeSpecUpdate.cos:type_name -> openstorage.api.CosType - 9, // 49: openstorage.api.VolumeSpecUpdate.io_profile:type_name -> openstorage.api.IoProfile - 86, // 50: openstorage.api.VolumeSpecUpdate.replica_set:type_name -> openstorage.api.ReplicaSet - 65, // 51: openstorage.api.VolumeSpecUpdate.group:type_name -> openstorage.api.Group - 88, // 52: openstorage.api.VolumeSpecUpdate.ownership:type_name -> openstorage.api.Ownership - 66, // 53: openstorage.api.VolumeSpecUpdate.io_strategy:type_name -> openstorage.api.IoStrategy - 68, // 54: openstorage.api.VolumeSpecUpdate.export_spec:type_name -> openstorage.api.ExportSpec - 30, // 55: openstorage.api.VolumeSpecUpdate.xattr:type_name -> openstorage.api.Xattr.Value - 81, // 56: openstorage.api.VolumeSpecUpdate.scan_policy:type_name -> openstorage.api.ScanPolicy - 78, // 57: openstorage.api.VolumeSpecUpdate.mount_opt_spec:type_name -> openstorage.api.MountOptions - 78, // 58: openstorage.api.VolumeSpecUpdate.sharedv4_mount_opt_spec:type_name -> openstorage.api.MountOptions - 74, // 59: openstorage.api.VolumeSpecUpdate.proxy_spec:type_name -> openstorage.api.ProxySpec - 75, // 60: openstorage.api.VolumeSpecUpdate.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec - 77, // 61: openstorage.api.VolumeSpecUpdate.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec - 82, // 62: openstorage.api.VolumeSpecUpdate.io_throttle:type_name -> openstorage.api.IoThrottle - 8, // 63: openstorage.api.VolumeSpecPolicy.cos:type_name -> openstorage.api.CosType - 9, // 64: openstorage.api.VolumeSpecPolicy.io_profile:type_name -> openstorage.api.IoProfile - 432, // 65: openstorage.api.VolumeSpecPolicy.volume_labels:type_name -> openstorage.api.VolumeSpecPolicy.VolumeLabelsEntry - 86, // 66: openstorage.api.VolumeSpecPolicy.replica_set:type_name -> openstorage.api.ReplicaSet - 65, // 67: openstorage.api.VolumeSpecPolicy.group:type_name -> openstorage.api.Group - 35, // 68: openstorage.api.VolumeSpecPolicy.size_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp - 35, // 69: openstorage.api.VolumeSpecPolicy.ha_level_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp - 35, // 70: openstorage.api.VolumeSpecPolicy.scale_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp - 35, // 71: openstorage.api.VolumeSpecPolicy.snapshot_interval_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp - 66, // 72: openstorage.api.VolumeSpecPolicy.io_strategy:type_name -> openstorage.api.IoStrategy - 68, // 73: openstorage.api.VolumeSpecPolicy.export_spec:type_name -> openstorage.api.ExportSpec - 81, // 74: openstorage.api.VolumeSpecPolicy.scan_policy:type_name -> openstorage.api.ScanPolicy - 78, // 75: openstorage.api.VolumeSpecPolicy.mount_opt_spec:type_name -> openstorage.api.MountOptions - 78, // 76: openstorage.api.VolumeSpecPolicy.sharedv4_mount_opt_spec:type_name -> openstorage.api.MountOptions - 74, // 77: openstorage.api.VolumeSpecPolicy.proxy_spec:type_name -> openstorage.api.ProxySpec - 75, // 78: openstorage.api.VolumeSpecPolicy.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec - 77, // 79: openstorage.api.VolumeSpecPolicy.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec - 82, // 80: openstorage.api.VolumeSpecPolicy.io_throttle:type_name -> openstorage.api.IoThrottle - 433, // 81: openstorage.api.RuntimeStateMap.runtime_state:type_name -> openstorage.api.RuntimeStateMap.RuntimeStateEntry - 435, // 82: openstorage.api.Ownership.acls:type_name -> openstorage.api.Ownership.AccessControl - 64, // 83: openstorage.api.Volume.source:type_name -> openstorage.api.Source - 65, // 84: openstorage.api.Volume.group:type_name -> openstorage.api.Group - 62, // 85: openstorage.api.Volume.locator:type_name -> openstorage.api.VolumeLocator - 478, // 86: openstorage.api.Volume.ctime:type_name -> google.protobuf.Timestamp - 83, // 87: openstorage.api.Volume.spec:type_name -> openstorage.api.VolumeSpec - 478, // 88: openstorage.api.Volume.last_scan:type_name -> google.protobuf.Timestamp - 2, // 89: openstorage.api.Volume.format:type_name -> openstorage.api.FSType - 11, // 90: openstorage.api.Volume.status:type_name -> openstorage.api.VolumeStatus - 10, // 91: openstorage.api.Volume.state:type_name -> openstorage.api.VolumeState - 14, // 92: openstorage.api.Volume.attached_state:type_name -> openstorage.api.AttachState - 438, // 93: openstorage.api.Volume.attach_info:type_name -> openstorage.api.Volume.AttachInfoEntry - 86, // 94: openstorage.api.Volume.replica_sets:type_name -> openstorage.api.ReplicaSet - 87, // 95: openstorage.api.Volume.runtime_state:type_name -> openstorage.api.RuntimeStateMap - 120, // 96: openstorage.api.Volume.volume_consumers:type_name -> openstorage.api.VolumeConsumer - 478, // 97: openstorage.api.Volume.attach_time:type_name -> google.protobuf.Timestamp - 478, // 98: openstorage.api.Volume.detach_time:type_name -> google.protobuf.Timestamp - 80, // 99: openstorage.api.Volume.fpConfig:type_name -> openstorage.api.FastpathConfig - 478, // 100: openstorage.api.Volume.last_scan_fix:type_name -> google.protobuf.Timestamp - 12, // 101: openstorage.api.Volume.last_scan_status:type_name -> openstorage.api.FilesystemHealthStatus - 78, // 102: openstorage.api.Volume.mount_options:type_name -> openstorage.api.MountOptions - 78, // 103: openstorage.api.Volume.sharedv4_mount_options:type_name -> openstorage.api.MountOptions - 9, // 104: openstorage.api.Volume.derived_io_profile:type_name -> openstorage.api.IoProfile - 92, // 105: openstorage.api.VolumeUsageByNode.volume_usage:type_name -> openstorage.api.VolumeUsage - 85, // 106: openstorage.api.SdkStoragePolicy.policy:type_name -> openstorage.api.VolumeSpecPolicy - 88, // 107: openstorage.api.SdkStoragePolicy.ownership:type_name -> openstorage.api.Ownership - 4, // 108: openstorage.api.Alert.severity:type_name -> openstorage.api.SeverityType - 478, // 109: openstorage.api.Alert.timestamp:type_name -> google.protobuf.Timestamp - 5, // 110: openstorage.api.Alert.resource:type_name -> openstorage.api.ResourceType - 478, // 111: openstorage.api.Alert.first_seen:type_name -> google.protobuf.Timestamp - 478, // 112: openstorage.api.SdkAlertsTimeSpan.start_time:type_name -> google.protobuf.Timestamp - 478, // 113: openstorage.api.SdkAlertsTimeSpan.end_time:type_name -> google.protobuf.Timestamp - 4, // 114: openstorage.api.SdkAlertsOption.min_severity_type:type_name -> openstorage.api.SeverityType - 98, // 115: openstorage.api.SdkAlertsOption.time_span:type_name -> openstorage.api.SdkAlertsTimeSpan - 99, // 116: openstorage.api.SdkAlertsOption.count_span:type_name -> openstorage.api.SdkAlertsCountSpan - 5, // 117: openstorage.api.SdkAlertsResourceTypeQuery.resource_type:type_name -> openstorage.api.ResourceType - 5, // 118: openstorage.api.SdkAlertsAlertTypeQuery.resource_type:type_name -> openstorage.api.ResourceType - 5, // 119: openstorage.api.SdkAlertsResourceIdQuery.resource_type:type_name -> openstorage.api.ResourceType - 101, // 120: openstorage.api.SdkAlertsQuery.resource_type_query:type_name -> openstorage.api.SdkAlertsResourceTypeQuery - 102, // 121: openstorage.api.SdkAlertsQuery.alert_type_query:type_name -> openstorage.api.SdkAlertsAlertTypeQuery - 103, // 122: openstorage.api.SdkAlertsQuery.resource_id_query:type_name -> openstorage.api.SdkAlertsResourceIdQuery - 100, // 123: openstorage.api.SdkAlertsQuery.opts:type_name -> openstorage.api.SdkAlertsOption - 104, // 124: openstorage.api.SdkAlertsEnumerateWithFiltersRequest.queries:type_name -> openstorage.api.SdkAlertsQuery - 97, // 125: openstorage.api.SdkAlertsEnumerateWithFiltersResponse.alerts:type_name -> openstorage.api.Alert - 104, // 126: openstorage.api.SdkAlertsDeleteRequest.queries:type_name -> openstorage.api.SdkAlertsQuery - 97, // 127: openstorage.api.Alerts.alert:type_name -> openstorage.api.Alert - 62, // 128: openstorage.api.VolumeCreateRequest.locator:type_name -> openstorage.api.VolumeLocator - 64, // 129: openstorage.api.VolumeCreateRequest.source:type_name -> openstorage.api.Source - 83, // 130: openstorage.api.VolumeCreateRequest.spec:type_name -> openstorage.api.VolumeSpec - 112, // 131: openstorage.api.VolumeCreateResponse.volume_response:type_name -> openstorage.api.VolumeResponse - 7, // 132: openstorage.api.VolumeStateAction.attach:type_name -> openstorage.api.VolumeActionParam - 7, // 133: openstorage.api.VolumeStateAction.mount:type_name -> openstorage.api.VolumeActionParam - 62, // 134: openstorage.api.VolumeSetRequest.locator:type_name -> openstorage.api.VolumeLocator - 83, // 135: openstorage.api.VolumeSetRequest.spec:type_name -> openstorage.api.VolumeSpec - 114, // 136: openstorage.api.VolumeSetRequest.action:type_name -> openstorage.api.VolumeStateAction - 439, // 137: openstorage.api.VolumeSetRequest.options:type_name -> openstorage.api.VolumeSetRequest.OptionsEntry - 89, // 138: openstorage.api.VolumeSetResponse.volume:type_name -> openstorage.api.Volume - 112, // 139: openstorage.api.VolumeSetResponse.volume_response:type_name -> openstorage.api.VolumeResponse - 62, // 140: openstorage.api.SnapCreateRequest.locator:type_name -> openstorage.api.VolumeLocator - 113, // 141: openstorage.api.SnapCreateResponse.volume_create_response:type_name -> openstorage.api.VolumeCreateResponse - 83, // 142: openstorage.api.VolumeInfo.storage:type_name -> openstorage.api.VolumeSpec - 440, // 143: openstorage.api.VolumeServiceRequest.srv_cmd_params:type_name -> openstorage.api.VolumeServiceRequest.SrvCmdParamsEntry - 441, // 144: openstorage.api.VolumeServiceInstanceResponse.status:type_name -> openstorage.api.VolumeServiceInstanceResponse.StatusEntry - 122, // 145: openstorage.api.VolumeServiceResponse.vol_srv_rsp:type_name -> openstorage.api.VolumeServiceInstanceResponse - 3, // 146: openstorage.api.GraphDriverChanges.kind:type_name -> openstorage.api.GraphDriverChangeType - 442, // 147: openstorage.api.ActiveRequest.ReqestKV:type_name -> openstorage.api.ActiveRequest.ReqestKVEntry - 126, // 148: openstorage.api.ActiveRequests.ActiveRequest:type_name -> openstorage.api.ActiveRequest - 443, // 149: openstorage.api.GroupSnapCreateRequest.Labels:type_name -> openstorage.api.GroupSnapCreateRequest.LabelsEntry - 444, // 150: openstorage.api.GroupSnapCreateResponse.snapshots:type_name -> openstorage.api.GroupSnapCreateResponse.SnapshotsEntry - 0, // 151: openstorage.api.StorageNode.status:type_name -> openstorage.api.Status - 445, // 152: openstorage.api.StorageNode.disks:type_name -> openstorage.api.StorageNode.DisksEntry - 58, // 153: openstorage.api.StorageNode.pools:type_name -> openstorage.api.StoragePool - 446, // 154: openstorage.api.StorageNode.node_labels:type_name -> openstorage.api.StorageNode.NodeLabelsEntry - 16, // 155: openstorage.api.StorageNode.HWType:type_name -> openstorage.api.HardwareType - 37, // 156: openstorage.api.StorageNode.security_status:type_name -> openstorage.api.StorageNode.SecurityStatus - 59, // 157: openstorage.api.StorageNode.scheduler_topology:type_name -> openstorage.api.SchedulerTopology - 0, // 158: openstorage.api.StorageCluster.status:type_name -> openstorage.api.Status - 21, // 159: openstorage.api.BucketCreateRequest.anonymousBucketAccessMode:type_name -> openstorage.api.AnonymousBucketAccessMode - 140, // 160: openstorage.api.BucketGrantAccessResponse.credentials:type_name -> openstorage.api.BucketAccessCredentials - 96, // 161: openstorage.api.SdkOpenStoragePolicyCreateRequest.storage_policy:type_name -> openstorage.api.SdkStoragePolicy - 96, // 162: openstorage.api.SdkOpenStoragePolicyEnumerateResponse.storage_policies:type_name -> openstorage.api.SdkStoragePolicy - 96, // 163: openstorage.api.SdkOpenStoragePolicyInspectResponse.storage_policy:type_name -> openstorage.api.SdkStoragePolicy - 96, // 164: openstorage.api.SdkOpenStoragePolicyUpdateRequest.storage_policy:type_name -> openstorage.api.SdkStoragePolicy - 96, // 165: openstorage.api.SdkOpenStoragePolicyDefaultInspectResponse.storage_policy:type_name -> openstorage.api.SdkStoragePolicy - 172, // 166: openstorage.api.SdkSchedulePolicyCreateRequest.schedule_policy:type_name -> openstorage.api.SdkSchedulePolicy - 172, // 167: openstorage.api.SdkSchedulePolicyUpdateRequest.schedule_policy:type_name -> openstorage.api.SdkSchedulePolicy - 172, // 168: openstorage.api.SdkSchedulePolicyEnumerateResponse.policies:type_name -> openstorage.api.SdkSchedulePolicy - 172, // 169: openstorage.api.SdkSchedulePolicyInspectResponse.policy:type_name -> openstorage.api.SdkSchedulePolicy - 22, // 170: openstorage.api.SdkSchedulePolicyIntervalWeekly.day:type_name -> openstorage.api.SdkTimeWeekday - 167, // 171: openstorage.api.SdkSchedulePolicyInterval.daily:type_name -> openstorage.api.SdkSchedulePolicyIntervalDaily - 168, // 172: openstorage.api.SdkSchedulePolicyInterval.weekly:type_name -> openstorage.api.SdkSchedulePolicyIntervalWeekly - 169, // 173: openstorage.api.SdkSchedulePolicyInterval.monthly:type_name -> openstorage.api.SdkSchedulePolicyIntervalMonthly - 170, // 174: openstorage.api.SdkSchedulePolicyInterval.periodic:type_name -> openstorage.api.SdkSchedulePolicyIntervalPeriodic - 171, // 175: openstorage.api.SdkSchedulePolicy.schedules:type_name -> openstorage.api.SdkSchedulePolicyInterval - 88, // 176: openstorage.api.SdkCredentialCreateRequest.ownership:type_name -> openstorage.api.Ownership - 177, // 177: openstorage.api.SdkCredentialCreateRequest.aws_credential:type_name -> openstorage.api.SdkAwsCredentialRequest - 178, // 178: openstorage.api.SdkCredentialCreateRequest.azure_credential:type_name -> openstorage.api.SdkAzureCredentialRequest - 179, // 179: openstorage.api.SdkCredentialCreateRequest.google_credential:type_name -> openstorage.api.SdkGoogleCredentialRequest - 173, // 180: openstorage.api.SdkCredentialUpdateRequest.update_req:type_name -> openstorage.api.SdkCredentialCreateRequest - 88, // 181: openstorage.api.SdkCredentialInspectResponse.ownership:type_name -> openstorage.api.Ownership - 180, // 182: openstorage.api.SdkCredentialInspectResponse.aws_credential:type_name -> openstorage.api.SdkAwsCredentialResponse - 181, // 183: openstorage.api.SdkCredentialInspectResponse.azure_credential:type_name -> openstorage.api.SdkAzureCredentialResponse - 182, // 184: openstorage.api.SdkCredentialInspectResponse.google_credential:type_name -> openstorage.api.SdkGoogleCredentialResponse - 193, // 185: openstorage.api.SdkVolumeMountRequest.options:type_name -> openstorage.api.SdkVolumeAttachOptions - 447, // 186: openstorage.api.SdkVolumeMountRequest.driver_options:type_name -> openstorage.api.SdkVolumeMountRequest.DriverOptionsEntry - 196, // 187: openstorage.api.SdkVolumeUnmountRequest.options:type_name -> openstorage.api.SdkVolumeUnmountOptions - 448, // 188: openstorage.api.SdkVolumeUnmountRequest.driver_options:type_name -> openstorage.api.SdkVolumeUnmountRequest.DriverOptionsEntry - 193, // 189: openstorage.api.SdkVolumeAttachRequest.options:type_name -> openstorage.api.SdkVolumeAttachOptions - 449, // 190: openstorage.api.SdkVolumeAttachRequest.driver_options:type_name -> openstorage.api.SdkVolumeAttachRequest.DriverOptionsEntry - 201, // 191: openstorage.api.SdkVolumeDetachRequest.options:type_name -> openstorage.api.SdkVolumeDetachOptions - 450, // 192: openstorage.api.SdkVolumeDetachRequest.driver_options:type_name -> openstorage.api.SdkVolumeDetachRequest.DriverOptionsEntry - 83, // 193: openstorage.api.SdkVolumeCreateRequest.spec:type_name -> openstorage.api.VolumeSpec - 451, // 194: openstorage.api.SdkVolumeCreateRequest.labels:type_name -> openstorage.api.SdkVolumeCreateRequest.LabelsEntry - 63, // 195: openstorage.api.SdkVolumeInspectRequest.options:type_name -> openstorage.api.VolumeInspectOptions - 89, // 196: openstorage.api.SdkVolumeInspectResponse.volume:type_name -> openstorage.api.Volume - 452, // 197: openstorage.api.SdkVolumeInspectResponse.labels:type_name -> openstorage.api.SdkVolumeInspectResponse.LabelsEntry - 453, // 198: openstorage.api.SdkVolumeInspectWithFiltersRequest.labels:type_name -> openstorage.api.SdkVolumeInspectWithFiltersRequest.LabelsEntry - 88, // 199: openstorage.api.SdkVolumeInspectWithFiltersRequest.ownership:type_name -> openstorage.api.Ownership - 65, // 200: openstorage.api.SdkVolumeInspectWithFiltersRequest.group:type_name -> openstorage.api.Group - 63, // 201: openstorage.api.SdkVolumeInspectWithFiltersRequest.options:type_name -> openstorage.api.VolumeInspectOptions - 211, // 202: openstorage.api.SdkVolumeInspectWithFiltersResponse.volumes:type_name -> openstorage.api.SdkVolumeInspectResponse - 454, // 203: openstorage.api.SdkVolumeUpdateRequest.labels:type_name -> openstorage.api.SdkVolumeUpdateRequest.LabelsEntry - 84, // 204: openstorage.api.SdkVolumeUpdateRequest.spec:type_name -> openstorage.api.VolumeSpecUpdate - 90, // 205: openstorage.api.SdkVolumeStatsResponse.stats:type_name -> openstorage.api.Stats - 91, // 206: openstorage.api.SdkVolumeCapacityUsageResponse.capacity_usage_info:type_name -> openstorage.api.CapacityUsageInfo - 455, // 207: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.labels:type_name -> openstorage.api.SdkVolumeEnumerateWithFiltersRequest.LabelsEntry - 88, // 208: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.ownership:type_name -> openstorage.api.Ownership - 65, // 209: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.group:type_name -> openstorage.api.Group - 456, // 210: openstorage.api.SdkVolumeSnapshotCreateRequest.labels:type_name -> openstorage.api.SdkVolumeSnapshotCreateRequest.LabelsEntry - 457, // 211: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest.labels:type_name -> openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest.LabelsEntry - 93, // 212: openstorage.api.SdkNodeVolumeUsageByNodeResponse.volume_usage_info:type_name -> openstorage.api.VolumeUsageByNode - 95, // 213: openstorage.api.SdkNodeRelaxedReclaimPurgeResponse.status:type_name -> openstorage.api.RelaxedReclaimPurge - 131, // 214: openstorage.api.SdkClusterInspectCurrentResponse.cluster:type_name -> openstorage.api.StorageCluster - 39, // 215: openstorage.api.Job.state:type_name -> openstorage.api.Job.State - 38, // 216: openstorage.api.Job.type:type_name -> openstorage.api.Job.Type - 253, // 217: openstorage.api.Job.drain_attachments:type_name -> openstorage.api.NodeDrainAttachmentsJob - 254, // 218: openstorage.api.Job.clouddrive_transfer:type_name -> openstorage.api.CloudDriveTransferJob - 255, // 219: openstorage.api.Job.collect_diags:type_name -> openstorage.api.CollectDiagsJob - 478, // 220: openstorage.api.Job.create_time:type_name -> google.protobuf.Timestamp - 478, // 221: openstorage.api.Job.last_update_time:type_name -> google.protobuf.Timestamp - 249, // 222: openstorage.api.SdkJobResponse.job:type_name -> openstorage.api.Job - 419, // 223: openstorage.api.SdkNodeDrainAttachmentsRequest.selector:type_name -> openstorage.api.LabelSelectorRequirement - 252, // 224: openstorage.api.NodeDrainAttachmentsJob.parameters:type_name -> openstorage.api.SdkNodeDrainAttachmentsRequest - 478, // 225: openstorage.api.NodeDrainAttachmentsJob.create_time:type_name -> google.protobuf.Timestamp - 478, // 226: openstorage.api.NodeDrainAttachmentsJob.last_update_time:type_name -> google.protobuf.Timestamp - 257, // 227: openstorage.api.CollectDiagsJob.request:type_name -> openstorage.api.SdkDiagsCollectRequest - 256, // 228: openstorage.api.CollectDiagsJob.statuses:type_name -> openstorage.api.DiagsCollectionStatus - 40, // 229: openstorage.api.DiagsCollectionStatus.state:type_name -> openstorage.api.DiagsCollectionStatus.State - 259, // 230: openstorage.api.SdkDiagsCollectRequest.node:type_name -> openstorage.api.DiagsNodeSelector - 260, // 231: openstorage.api.SdkDiagsCollectRequest.volume:type_name -> openstorage.api.DiagsVolumeSelector - 249, // 232: openstorage.api.SdkDiagsCollectResponse.job:type_name -> openstorage.api.Job - 419, // 233: openstorage.api.DiagsNodeSelector.node_label_selector:type_name -> openstorage.api.LabelSelectorRequirement - 419, // 234: openstorage.api.DiagsVolumeSelector.volume_label_selector:type_name -> openstorage.api.LabelSelectorRequirement - 38, // 235: openstorage.api.SdkEnumerateJobsRequest.type:type_name -> openstorage.api.Job.Type - 249, // 236: openstorage.api.SdkEnumerateJobsResponse.jobs:type_name -> openstorage.api.Job - 38, // 237: openstorage.api.SdkUpdateJobRequest.type:type_name -> openstorage.api.Job.Type - 39, // 238: openstorage.api.SdkUpdateJobRequest.state:type_name -> openstorage.api.Job.State - 38, // 239: openstorage.api.SdkGetJobStatusRequest.type:type_name -> openstorage.api.Job.Type - 267, // 240: openstorage.api.JobAudit.summary:type_name -> openstorage.api.JobWorkSummary - 270, // 241: openstorage.api.JobWorkSummary.drain_attachments_summary:type_name -> openstorage.api.DrainAttachmentsSummary - 267, // 242: openstorage.api.JobSummary.work_summaries:type_name -> openstorage.api.JobWorkSummary - 249, // 243: openstorage.api.SdkGetJobStatusResponse.job:type_name -> openstorage.api.Job - 268, // 244: openstorage.api.SdkGetJobStatusResponse.summary:type_name -> openstorage.api.JobSummary - 47, // 245: openstorage.api.SdkStoragePoolResizeRequest.operation_type:type_name -> openstorage.api.SdkStoragePool.ResizeOperationType - 41, // 246: openstorage.api.StorageRebalanceTriggerThreshold.type:type_name -> openstorage.api.StorageRebalanceTriggerThreshold.Type - 42, // 247: openstorage.api.StorageRebalanceTriggerThreshold.metric:type_name -> openstorage.api.StorageRebalanceTriggerThreshold.Metric - 276, // 248: openstorage.api.SdkStorageRebalanceRequest.trigger_thresholds:type_name -> openstorage.api.StorageRebalanceTriggerThreshold - 419, // 249: openstorage.api.SdkStorageRebalanceRequest.source_pool_selector:type_name -> openstorage.api.LabelSelectorRequirement - 419, // 250: openstorage.api.SdkStorageRebalanceRequest.target_pool_selector:type_name -> openstorage.api.LabelSelectorRequirement - 279, // 251: openstorage.api.SdkStorageRebalanceResponse.job:type_name -> openstorage.api.StorageRebalanceJob - 280, // 252: openstorage.api.SdkStorageRebalanceResponse.summary:type_name -> openstorage.api.StorageRebalanceSummary - 282, // 253: openstorage.api.SdkStorageRebalanceResponse.actions:type_name -> openstorage.api.StorageRebalanceAudit - 23, // 254: openstorage.api.StorageRebalanceJob.state:type_name -> openstorage.api.StorageRebalanceJobState - 277, // 255: openstorage.api.StorageRebalanceJob.parameters:type_name -> openstorage.api.SdkStorageRebalanceRequest - 478, // 256: openstorage.api.StorageRebalanceJob.create_time:type_name -> google.protobuf.Timestamp - 478, // 257: openstorage.api.StorageRebalanceJob.last_update_time:type_name -> google.protobuf.Timestamp - 281, // 258: openstorage.api.StorageRebalanceSummary.work_summary:type_name -> openstorage.api.StorageRebalanceWorkSummary - 43, // 259: openstorage.api.StorageRebalanceWorkSummary.type:type_name -> openstorage.api.StorageRebalanceWorkSummary.Type - 44, // 260: openstorage.api.StorageRebalanceAudit.action:type_name -> openstorage.api.StorageRebalanceAudit.StorageRebalanceAction - 478, // 261: openstorage.api.StorageRebalanceAudit.start_time:type_name -> google.protobuf.Timestamp - 478, // 262: openstorage.api.StorageRebalanceAudit.end_time:type_name -> google.protobuf.Timestamp - 281, // 263: openstorage.api.StorageRebalanceAudit.work_summary:type_name -> openstorage.api.StorageRebalanceWorkSummary - 23, // 264: openstorage.api.StorageRebalanceAudit.state:type_name -> openstorage.api.StorageRebalanceJobState - 23, // 265: openstorage.api.SdkUpdateRebalanceJobRequest.state:type_name -> openstorage.api.StorageRebalanceJobState - 279, // 266: openstorage.api.SdkGetRebalanceJobStatusResponse.job:type_name -> openstorage.api.StorageRebalanceJob - 280, // 267: openstorage.api.SdkGetRebalanceJobStatusResponse.summary:type_name -> openstorage.api.StorageRebalanceSummary - 282, // 268: openstorage.api.SdkGetRebalanceJobStatusResponse.actions:type_name -> openstorage.api.StorageRebalanceAudit - 279, // 269: openstorage.api.SdkEnumerateRebalanceJobsResponse.jobs:type_name -> openstorage.api.StorageRebalanceJob - 130, // 270: openstorage.api.SdkNodeInspectResponse.node:type_name -> openstorage.api.StorageNode - 130, // 271: openstorage.api.SdkNodeInspectCurrentResponse.node:type_name -> openstorage.api.StorageNode - 130, // 272: openstorage.api.SdkNodeEnumerateWithFiltersResponse.nodes:type_name -> openstorage.api.StorageNode - 110, // 273: openstorage.api.SdkObjectstoreInspectResponse.objectstore_status:type_name -> openstorage.api.ObjectstoreInfo - 110, // 274: openstorage.api.SdkObjectstoreCreateResponse.objectstore_status:type_name -> openstorage.api.ObjectstoreInfo - 458, // 275: openstorage.api.SdkCloudBackupCreateRequest.labels:type_name -> openstorage.api.SdkCloudBackupCreateRequest.LabelsEntry - 459, // 276: openstorage.api.SdkCloudBackupGroupCreateRequest.labels:type_name -> openstorage.api.SdkCloudBackupGroupCreateRequest.LabelsEntry - 422, // 277: openstorage.api.SdkCloudBackupRestoreRequest.spec:type_name -> openstorage.api.RestoreVolumeSpec - 62, // 278: openstorage.api.SdkCloudBackupRestoreRequest.locator:type_name -> openstorage.api.VolumeLocator - 26, // 279: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.status_filter:type_name -> openstorage.api.SdkCloudBackupStatusType - 460, // 280: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.metadata_filter:type_name -> openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.MetadataFilterEntry - 478, // 281: openstorage.api.SdkCloudBackupInfo.timestamp:type_name -> google.protobuf.Timestamp - 461, // 282: openstorage.api.SdkCloudBackupInfo.metadata:type_name -> openstorage.api.SdkCloudBackupInfo.MetadataEntry - 26, // 283: openstorage.api.SdkCloudBackupInfo.status:type_name -> openstorage.api.SdkCloudBackupStatusType - 24, // 284: openstorage.api.SdkCloudBackupInfo.cluster_type:type_name -> openstorage.api.SdkCloudBackupClusterType - 317, // 285: openstorage.api.SdkCloudBackupEnumerateWithFiltersResponse.backups:type_name -> openstorage.api.SdkCloudBackupInfo - 25, // 286: openstorage.api.SdkCloudBackupStatus.optype:type_name -> openstorage.api.SdkCloudBackupOpType - 26, // 287: openstorage.api.SdkCloudBackupStatus.status:type_name -> openstorage.api.SdkCloudBackupStatusType - 478, // 288: openstorage.api.SdkCloudBackupStatus.start_time:type_name -> google.protobuf.Timestamp - 478, // 289: openstorage.api.SdkCloudBackupStatus.completed_time:type_name -> google.protobuf.Timestamp - 462, // 290: openstorage.api.SdkCloudBackupStatusResponse.statuses:type_name -> openstorage.api.SdkCloudBackupStatusResponse.StatusesEntry - 478, // 291: openstorage.api.SdkCloudBackupHistoryItem.timestamp:type_name -> google.protobuf.Timestamp - 26, // 292: openstorage.api.SdkCloudBackupHistoryItem.status:type_name -> openstorage.api.SdkCloudBackupStatusType - 324, // 293: openstorage.api.SdkCloudBackupHistoryResponse.history_list:type_name -> openstorage.api.SdkCloudBackupHistoryItem - 27, // 294: openstorage.api.SdkCloudBackupStateChangeRequest.requested_state:type_name -> openstorage.api.SdkCloudBackupRequestedState - 171, // 295: openstorage.api.SdkCloudBackupScheduleInfo.schedules:type_name -> openstorage.api.SdkSchedulePolicyInterval - 463, // 296: openstorage.api.SdkCloudBackupScheduleInfo.labels:type_name -> openstorage.api.SdkCloudBackupScheduleInfo.LabelsEntry - 329, // 297: openstorage.api.SdkCloudBackupSchedCreateRequest.cloud_sched_info:type_name -> openstorage.api.SdkCloudBackupScheduleInfo - 329, // 298: openstorage.api.SdkCloudBackupSchedUpdateRequest.cloud_sched_info:type_name -> openstorage.api.SdkCloudBackupScheduleInfo - 464, // 299: openstorage.api.SdkCloudBackupSchedEnumerateResponse.cloud_sched_list:type_name -> openstorage.api.SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry - 340, // 300: openstorage.api.SdkRole.rules:type_name -> openstorage.api.SdkRule - 341, // 301: openstorage.api.SdkRoleCreateRequest.role:type_name -> openstorage.api.SdkRole - 341, // 302: openstorage.api.SdkRoleCreateResponse.role:type_name -> openstorage.api.SdkRole - 341, // 303: openstorage.api.SdkRoleInspectResponse.role:type_name -> openstorage.api.SdkRole - 341, // 304: openstorage.api.SdkRoleUpdateRequest.role:type_name -> openstorage.api.SdkRole - 341, // 305: openstorage.api.SdkRoleUpdateResponse.role:type_name -> openstorage.api.SdkRole - 48, // 306: openstorage.api.SdkFilesystemTrimStartResponse.status:type_name -> openstorage.api.FilesystemTrim.FilesystemTrimStatus - 48, // 307: openstorage.api.SdkFilesystemTrimStatusResponse.status:type_name -> openstorage.api.FilesystemTrim.FilesystemTrimStatus - 465, // 308: openstorage.api.SdkAutoFSTrimStatusResponse.trim_status:type_name -> openstorage.api.SdkAutoFSTrimStatusResponse.TrimStatusEntry - 466, // 309: openstorage.api.SdkAutoFSTrimUsageResponse.usage:type_name -> openstorage.api.SdkAutoFSTrimUsageResponse.UsageEntry - 49, // 310: openstorage.api.SdkFilesystemCheckStartResponse.status:type_name -> openstorage.api.FilesystemCheck.FilesystemCheckStatus - 49, // 311: openstorage.api.SdkFilesystemCheckStatusResponse.status:type_name -> openstorage.api.FilesystemCheck.FilesystemCheckStatus - 12, // 312: openstorage.api.SdkFilesystemCheckStatusResponse.health_status:type_name -> openstorage.api.FilesystemHealthStatus - 374, // 313: openstorage.api.SdkIdentityCapabilitiesResponse.capabilities:type_name -> openstorage.api.SdkServiceCapability - 375, // 314: openstorage.api.SdkIdentityVersionResponse.sdk_version:type_name -> openstorage.api.SdkVersion - 376, // 315: openstorage.api.SdkIdentityVersionResponse.version:type_name -> openstorage.api.StorageVersion - 467, // 316: openstorage.api.SdkServiceCapability.service:type_name -> openstorage.api.SdkServiceCapability.OpenStorageService - 468, // 317: openstorage.api.StorageVersion.details:type_name -> openstorage.api.StorageVersion.DetailsEntry - 52, // 318: openstorage.api.CloudMigrateStartRequest.operation:type_name -> openstorage.api.CloudMigrate.OperationType - 469, // 319: openstorage.api.SdkCloudMigrateStartRequest.volume:type_name -> openstorage.api.SdkCloudMigrateStartRequest.MigrateVolume - 470, // 320: openstorage.api.SdkCloudMigrateStartRequest.volume_group:type_name -> openstorage.api.SdkCloudMigrateStartRequest.MigrateVolumeGroup - 471, // 321: openstorage.api.SdkCloudMigrateStartRequest.all_volumes:type_name -> openstorage.api.SdkCloudMigrateStartRequest.MigrateAllVolumes - 380, // 322: openstorage.api.SdkCloudMigrateStartResponse.result:type_name -> openstorage.api.CloudMigrateStartResponse - 382, // 323: openstorage.api.SdkCloudMigrateCancelRequest.request:type_name -> openstorage.api.CloudMigrateCancelRequest - 53, // 324: openstorage.api.CloudMigrateInfo.current_stage:type_name -> openstorage.api.CloudMigrate.Stage - 54, // 325: openstorage.api.CloudMigrateInfo.status:type_name -> openstorage.api.CloudMigrate.Status - 478, // 326: openstorage.api.CloudMigrateInfo.last_update:type_name -> google.protobuf.Timestamp - 478, // 327: openstorage.api.CloudMigrateInfo.start_time:type_name -> google.protobuf.Timestamp - 478, // 328: openstorage.api.CloudMigrateInfo.completed_time:type_name -> google.protobuf.Timestamp - 385, // 329: openstorage.api.CloudMigrateInfoList.list:type_name -> openstorage.api.CloudMigrateInfo - 388, // 330: openstorage.api.SdkCloudMigrateStatusRequest.request:type_name -> openstorage.api.CloudMigrateStatusRequest - 472, // 331: openstorage.api.CloudMigrateStatusResponse.info:type_name -> openstorage.api.CloudMigrateStatusResponse.InfoEntry - 389, // 332: openstorage.api.SdkCloudMigrateStatusResponse.result:type_name -> openstorage.api.CloudMigrateStatusResponse - 55, // 333: openstorage.api.ClusterPairCreateRequest.mode:type_name -> openstorage.api.ClusterPairMode.Mode - 392, // 334: openstorage.api.SdkClusterPairCreateRequest.request:type_name -> openstorage.api.ClusterPairCreateRequest - 393, // 335: openstorage.api.SdkClusterPairCreateResponse.result:type_name -> openstorage.api.ClusterPairCreateResponse - 55, // 336: openstorage.api.ClusterPairProcessRequest.mode:type_name -> openstorage.api.ClusterPairMode.Mode - 473, // 337: openstorage.api.ClusterPairProcessResponse.options:type_name -> openstorage.api.ClusterPairProcessResponse.OptionsEntry - 400, // 338: openstorage.api.SdkClusterPairGetTokenResponse.result:type_name -> openstorage.api.ClusterPairTokenGetResponse - 400, // 339: openstorage.api.SdkClusterPairResetTokenResponse.result:type_name -> openstorage.api.ClusterPairTokenGetResponse - 474, // 340: openstorage.api.ClusterPairInfo.options:type_name -> openstorage.api.ClusterPairInfo.OptionsEntry - 55, // 341: openstorage.api.ClusterPairInfo.mode:type_name -> openstorage.api.ClusterPairMode.Mode - 405, // 342: openstorage.api.ClusterPairGetResponse.pair_info:type_name -> openstorage.api.ClusterPairInfo - 407, // 343: openstorage.api.SdkClusterPairInspectResponse.result:type_name -> openstorage.api.ClusterPairGetResponse - 475, // 344: openstorage.api.ClusterPairsEnumerateResponse.pairs:type_name -> openstorage.api.ClusterPairsEnumerateResponse.PairsEntry - 410, // 345: openstorage.api.SdkClusterPairEnumerateResponse.result:type_name -> openstorage.api.ClusterPairsEnumerateResponse - 478, // 346: openstorage.api.Catalog.LastModified:type_name -> google.protobuf.Timestamp - 412, // 347: openstorage.api.Catalog.children:type_name -> openstorage.api.Catalog - 412, // 348: openstorage.api.CatalogResponse.root:type_name -> openstorage.api.Catalog - 413, // 349: openstorage.api.CatalogResponse.report:type_name -> openstorage.api.Report - 476, // 350: openstorage.api.LocateResponse.mounts:type_name -> openstorage.api.LocateResponse.MountsEntry - 477, // 351: openstorage.api.LocateResponse.dockerids:type_name -> openstorage.api.LocateResponse.DockeridsEntry - 417, // 352: openstorage.api.VolumePlacementStrategy.replica_affinity:type_name -> openstorage.api.ReplicaPlacementSpec - 417, // 353: openstorage.api.VolumePlacementStrategy.replica_anti_affinity:type_name -> openstorage.api.ReplicaPlacementSpec - 418, // 354: openstorage.api.VolumePlacementStrategy.volume_affinity:type_name -> openstorage.api.VolumePlacementSpec - 418, // 355: openstorage.api.VolumePlacementStrategy.volume_anti_affinity:type_name -> openstorage.api.VolumePlacementSpec - 28, // 356: openstorage.api.ReplicaPlacementSpec.enforcement:type_name -> openstorage.api.EnforcementType - 419, // 357: openstorage.api.ReplicaPlacementSpec.match_expressions:type_name -> openstorage.api.LabelSelectorRequirement - 28, // 358: openstorage.api.VolumePlacementSpec.enforcement:type_name -> openstorage.api.EnforcementType - 419, // 359: openstorage.api.VolumePlacementSpec.match_expressions:type_name -> openstorage.api.LabelSelectorRequirement - 56, // 360: openstorage.api.LabelSelectorRequirement.operator:type_name -> openstorage.api.LabelSelectorRequirement.Operator - 8, // 361: openstorage.api.RestoreVolumeSpec.cos:type_name -> openstorage.api.CosType - 9, // 362: openstorage.api.RestoreVolumeSpec.io_profile:type_name -> openstorage.api.IoProfile - 29, // 363: openstorage.api.RestoreVolumeSpec.shared:type_name -> openstorage.api.RestoreParamBoolType - 86, // 364: openstorage.api.RestoreVolumeSpec.replica_set:type_name -> openstorage.api.ReplicaSet - 420, // 365: openstorage.api.RestoreVolumeSpec.snapshot_schedule:type_name -> openstorage.api.RestoreVolSnashotSchedule - 29, // 366: openstorage.api.RestoreVolumeSpec.sticky:type_name -> openstorage.api.RestoreParamBoolType - 65, // 367: openstorage.api.RestoreVolumeSpec.group:type_name -> openstorage.api.Group - 29, // 368: openstorage.api.RestoreVolumeSpec.journal:type_name -> openstorage.api.RestoreParamBoolType - 29, // 369: openstorage.api.RestoreVolumeSpec.sharedv4:type_name -> openstorage.api.RestoreParamBoolType - 29, // 370: openstorage.api.RestoreVolumeSpec.nodiscard:type_name -> openstorage.api.RestoreParamBoolType - 66, // 371: openstorage.api.RestoreVolumeSpec.io_strategy:type_name -> openstorage.api.IoStrategy - 416, // 372: openstorage.api.RestoreVolumeSpec.placement_strategy:type_name -> openstorage.api.VolumePlacementStrategy - 421, // 373: openstorage.api.RestoreVolumeSpec.storage_policy:type_name -> openstorage.api.RestoreVolStoragePolicy - 88, // 374: openstorage.api.RestoreVolumeSpec.ownership:type_name -> openstorage.api.Ownership - 68, // 375: openstorage.api.RestoreVolumeSpec.export_spec:type_name -> openstorage.api.ExportSpec - 29, // 376: openstorage.api.RestoreVolumeSpec.fp_preference:type_name -> openstorage.api.RestoreParamBoolType - 78, // 377: openstorage.api.RestoreVolumeSpec.mount_options:type_name -> openstorage.api.MountOptions - 78, // 378: openstorage.api.RestoreVolumeSpec.sharedv4_mount_options:type_name -> openstorage.api.MountOptions - 29, // 379: openstorage.api.RestoreVolumeSpec.proxy_write:type_name -> openstorage.api.RestoreParamBoolType - 74, // 380: openstorage.api.RestoreVolumeSpec.proxy_spec:type_name -> openstorage.api.ProxySpec - 75, // 381: openstorage.api.RestoreVolumeSpec.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec - 77, // 382: openstorage.api.RestoreVolumeSpec.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec - 29, // 383: openstorage.api.RestoreVolumeSpec.auto_fstrim:type_name -> openstorage.api.RestoreParamBoolType - 82, // 384: openstorage.api.RestoreVolumeSpec.io_throttle:type_name -> openstorage.api.IoThrottle - 29, // 385: openstorage.api.RestoreVolumeSpec.readahead:type_name -> openstorage.api.RestoreParamBoolType - 414, // 386: openstorage.api.SdkVolumeCatalogResponse.catalog:type_name -> openstorage.api.CatalogResponse - 36, // 387: openstorage.api.Ownership.PublicAccessControl.type:type_name -> openstorage.api.Ownership.AccessType - 436, // 388: openstorage.api.Ownership.AccessControl.groups:type_name -> openstorage.api.Ownership.AccessControl.GroupsEntry - 437, // 389: openstorage.api.Ownership.AccessControl.collaborators:type_name -> openstorage.api.Ownership.AccessControl.CollaboratorsEntry - 434, // 390: openstorage.api.Ownership.AccessControl.public:type_name -> openstorage.api.Ownership.PublicAccessControl - 36, // 391: openstorage.api.Ownership.AccessControl.GroupsEntry.value:type_name -> openstorage.api.Ownership.AccessType - 36, // 392: openstorage.api.Ownership.AccessControl.CollaboratorsEntry.value:type_name -> openstorage.api.Ownership.AccessType - 118, // 393: openstorage.api.GroupSnapCreateResponse.SnapshotsEntry.value:type_name -> openstorage.api.SnapCreateResponse - 57, // 394: openstorage.api.StorageNode.DisksEntry.value:type_name -> openstorage.api.StorageResource - 319, // 395: openstorage.api.SdkCloudBackupStatusResponse.StatusesEntry.value:type_name -> openstorage.api.SdkCloudBackupStatus - 329, // 396: openstorage.api.SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry.value:type_name -> openstorage.api.SdkCloudBackupScheduleInfo - 48, // 397: openstorage.api.SdkAutoFSTrimStatusResponse.TrimStatusEntry.value:type_name -> openstorage.api.FilesystemTrim.FilesystemTrimStatus - 94, // 398: openstorage.api.SdkAutoFSTrimUsageResponse.UsageEntry.value:type_name -> openstorage.api.FstrimVolumeUsageInfo - 50, // 399: openstorage.api.SdkServiceCapability.OpenStorageService.type:type_name -> openstorage.api.SdkServiceCapability.OpenStorageService.Type - 386, // 400: openstorage.api.CloudMigrateStatusResponse.InfoEntry.value:type_name -> openstorage.api.CloudMigrateInfoList - 405, // 401: openstorage.api.ClusterPairsEnumerateResponse.PairsEntry.value:type_name -> openstorage.api.ClusterPairInfo - 105, // 402: openstorage.api.OpenStorageAlerts.EnumerateWithFilters:input_type -> openstorage.api.SdkAlertsEnumerateWithFiltersRequest - 107, // 403: openstorage.api.OpenStorageAlerts.Delete:input_type -> openstorage.api.SdkAlertsDeleteRequest - 342, // 404: openstorage.api.OpenStorageRole.Create:input_type -> openstorage.api.SdkRoleCreateRequest - 344, // 405: openstorage.api.OpenStorageRole.Enumerate:input_type -> openstorage.api.SdkRoleEnumerateRequest - 346, // 406: openstorage.api.OpenStorageRole.Inspect:input_type -> openstorage.api.SdkRoleInspectRequest - 348, // 407: openstorage.api.OpenStorageRole.Delete:input_type -> openstorage.api.SdkRoleDeleteRequest - 350, // 408: openstorage.api.OpenStorageRole.Update:input_type -> openstorage.api.SdkRoleUpdateRequest - 353, // 409: openstorage.api.OpenStorageFilesystemTrim.Start:input_type -> openstorage.api.SdkFilesystemTrimStartRequest - 355, // 410: openstorage.api.OpenStorageFilesystemTrim.Status:input_type -> openstorage.api.SdkFilesystemTrimStatusRequest - 357, // 411: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimStatus:input_type -> openstorage.api.SdkAutoFSTrimStatusRequest - 359, // 412: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimUsage:input_type -> openstorage.api.SdkAutoFSTrimUsageRequest - 361, // 413: openstorage.api.OpenStorageFilesystemTrim.Stop:input_type -> openstorage.api.SdkFilesystemTrimStopRequest - 364, // 414: openstorage.api.OpenStorageFilesystemCheck.Start:input_type -> openstorage.api.SdkFilesystemCheckStartRequest - 366, // 415: openstorage.api.OpenStorageFilesystemCheck.Status:input_type -> openstorage.api.SdkFilesystemCheckStatusRequest - 368, // 416: openstorage.api.OpenStorageFilesystemCheck.Stop:input_type -> openstorage.api.SdkFilesystemCheckStopRequest - 370, // 417: openstorage.api.OpenStorageIdentity.Capabilities:input_type -> openstorage.api.SdkIdentityCapabilitiesRequest - 372, // 418: openstorage.api.OpenStorageIdentity.Version:input_type -> openstorage.api.SdkIdentityVersionRequest - 246, // 419: openstorage.api.OpenStorageCluster.InspectCurrent:input_type -> openstorage.api.SdkClusterInspectCurrentRequest - 394, // 420: openstorage.api.OpenStorageClusterPair.Create:input_type -> openstorage.api.SdkClusterPairCreateRequest - 406, // 421: openstorage.api.OpenStorageClusterPair.Inspect:input_type -> openstorage.api.SdkClusterPairInspectRequest - 409, // 422: openstorage.api.OpenStorageClusterPair.Enumerate:input_type -> openstorage.api.SdkClusterPairEnumerateRequest - 401, // 423: openstorage.api.OpenStorageClusterPair.GetToken:input_type -> openstorage.api.SdkClusterPairGetTokenRequest - 403, // 424: openstorage.api.OpenStorageClusterPair.ResetToken:input_type -> openstorage.api.SdkClusterPairResetTokenRequest - 398, // 425: openstorage.api.OpenStorageClusterPair.Delete:input_type -> openstorage.api.SdkClusterPairDeleteRequest - 238, // 426: openstorage.api.OpenStorageClusterDomains.Enumerate:input_type -> openstorage.api.SdkClusterDomainsEnumerateRequest - 240, // 427: openstorage.api.OpenStorageClusterDomains.Inspect:input_type -> openstorage.api.SdkClusterDomainInspectRequest - 242, // 428: openstorage.api.OpenStorageClusterDomains.Activate:input_type -> openstorage.api.SdkClusterDomainActivateRequest - 244, // 429: openstorage.api.OpenStorageClusterDomains.Deactivate:input_type -> openstorage.api.SdkClusterDomainDeactivateRequest - 275, // 430: openstorage.api.OpenStoragePool.Resize:input_type -> openstorage.api.SdkStoragePoolResizeRequest - 277, // 431: openstorage.api.OpenStoragePool.Rebalance:input_type -> openstorage.api.SdkStorageRebalanceRequest - 283, // 432: openstorage.api.OpenStoragePool.UpdateRebalanceJobState:input_type -> openstorage.api.SdkUpdateRebalanceJobRequest - 285, // 433: openstorage.api.OpenStoragePool.GetRebalanceJobStatus:input_type -> openstorage.api.SdkGetRebalanceJobStatusRequest - 287, // 434: openstorage.api.OpenStoragePool.EnumerateRebalanceJobs:input_type -> openstorage.api.SdkEnumerateRebalanceJobsRequest - 257, // 435: openstorage.api.OpenStorageDiags.Collect:input_type -> openstorage.api.SdkDiagsCollectRequest - 263, // 436: openstorage.api.OpenStorageJob.Update:input_type -> openstorage.api.SdkUpdateJobRequest - 265, // 437: openstorage.api.OpenStorageJob.GetStatus:input_type -> openstorage.api.SdkGetJobStatusRequest - 261, // 438: openstorage.api.OpenStorageJob.Enumerate:input_type -> openstorage.api.SdkEnumerateJobsRequest - 248, // 439: openstorage.api.OpenStorageNode.Inspect:input_type -> openstorage.api.SdkNodeInspectRequest - 292, // 440: openstorage.api.OpenStorageNode.InspectCurrent:input_type -> openstorage.api.SdkNodeInspectCurrentRequest - 294, // 441: openstorage.api.OpenStorageNode.Enumerate:input_type -> openstorage.api.SdkNodeEnumerateRequest - 296, // 442: openstorage.api.OpenStorageNode.EnumerateWithFilters:input_type -> openstorage.api.SdkNodeEnumerateWithFiltersRequest - 234, // 443: openstorage.api.OpenStorageNode.VolumeUsageByNode:input_type -> openstorage.api.SdkNodeVolumeUsageByNodeRequest - 236, // 444: openstorage.api.OpenStorageNode.RelaxedReclaimPurge:input_type -> openstorage.api.SdkNodeRelaxedReclaimPurgeRequest - 252, // 445: openstorage.api.OpenStorageNode.DrainAttachments:input_type -> openstorage.api.SdkNodeDrainAttachmentsRequest - 271, // 446: openstorage.api.OpenStorageNode.CordonAttachments:input_type -> openstorage.api.SdkNodeCordonAttachmentsRequest - 273, // 447: openstorage.api.OpenStorageNode.UncordonAttachments:input_type -> openstorage.api.SdkNodeUncordonAttachmentsRequest - 132, // 448: openstorage.api.OpenStorageBucket.Create:input_type -> openstorage.api.BucketCreateRequest - 134, // 449: openstorage.api.OpenStorageBucket.Delete:input_type -> openstorage.api.BucketDeleteRequest - 136, // 450: openstorage.api.OpenStorageBucket.GrantAccess:input_type -> openstorage.api.BucketGrantAccessRequest - 138, // 451: openstorage.api.OpenStorageBucket.RevokeAccess:input_type -> openstorage.api.BucketRevokeAccessRequest - 204, // 452: openstorage.api.OpenStorageVolume.Create:input_type -> openstorage.api.SdkVolumeCreateRequest - 206, // 453: openstorage.api.OpenStorageVolume.Clone:input_type -> openstorage.api.SdkVolumeCloneRequest - 208, // 454: openstorage.api.OpenStorageVolume.Delete:input_type -> openstorage.api.SdkVolumeDeleteRequest - 210, // 455: openstorage.api.OpenStorageVolume.Inspect:input_type -> openstorage.api.SdkVolumeInspectRequest - 212, // 456: openstorage.api.OpenStorageVolume.InspectWithFilters:input_type -> openstorage.api.SdkVolumeInspectWithFiltersRequest - 214, // 457: openstorage.api.OpenStorageVolume.Update:input_type -> openstorage.api.SdkVolumeUpdateRequest - 216, // 458: openstorage.api.OpenStorageVolume.Stats:input_type -> openstorage.api.SdkVolumeStatsRequest - 218, // 459: openstorage.api.OpenStorageVolume.CapacityUsage:input_type -> openstorage.api.SdkVolumeCapacityUsageRequest - 220, // 460: openstorage.api.OpenStorageVolume.Enumerate:input_type -> openstorage.api.SdkVolumeEnumerateRequest - 222, // 461: openstorage.api.OpenStorageVolume.EnumerateWithFilters:input_type -> openstorage.api.SdkVolumeEnumerateWithFiltersRequest - 224, // 462: openstorage.api.OpenStorageVolume.SnapshotCreate:input_type -> openstorage.api.SdkVolumeSnapshotCreateRequest - 226, // 463: openstorage.api.OpenStorageVolume.SnapshotRestore:input_type -> openstorage.api.SdkVolumeSnapshotRestoreRequest - 228, // 464: openstorage.api.OpenStorageVolume.SnapshotEnumerate:input_type -> openstorage.api.SdkVolumeSnapshotEnumerateRequest - 230, // 465: openstorage.api.OpenStorageVolume.SnapshotEnumerateWithFilters:input_type -> openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest - 232, // 466: openstorage.api.OpenStorageVolume.SnapshotScheduleUpdate:input_type -> openstorage.api.SdkVolumeSnapshotScheduleUpdateRequest - 423, // 467: openstorage.api.OpenStorageVolume.VolumeCatalog:input_type -> openstorage.api.SdkVolumeCatalogRequest - 199, // 468: openstorage.api.OpenStorageMountAttach.Attach:input_type -> openstorage.api.SdkVolumeAttachRequest - 202, // 469: openstorage.api.OpenStorageMountAttach.Detach:input_type -> openstorage.api.SdkVolumeDetachRequest - 194, // 470: openstorage.api.OpenStorageMountAttach.Mount:input_type -> openstorage.api.SdkVolumeMountRequest - 197, // 471: openstorage.api.OpenStorageMountAttach.Unmount:input_type -> openstorage.api.SdkVolumeUnmountRequest - 379, // 472: openstorage.api.OpenStorageMigrate.Start:input_type -> openstorage.api.SdkCloudMigrateStartRequest - 383, // 473: openstorage.api.OpenStorageMigrate.Cancel:input_type -> openstorage.api.SdkCloudMigrateCancelRequest - 387, // 474: openstorage.api.OpenStorageMigrate.Status:input_type -> openstorage.api.SdkCloudMigrateStatusRequest - 298, // 475: openstorage.api.OpenStorageObjectstore.Inspect:input_type -> openstorage.api.SdkObjectstoreInspectRequest - 300, // 476: openstorage.api.OpenStorageObjectstore.Create:input_type -> openstorage.api.SdkObjectstoreCreateRequest - 302, // 477: openstorage.api.OpenStorageObjectstore.Delete:input_type -> openstorage.api.SdkObjectstoreDeleteRequest - 304, // 478: openstorage.api.OpenStorageObjectstore.Update:input_type -> openstorage.api.SdkObjectstoreUpdateRequest - 173, // 479: openstorage.api.OpenStorageCredentials.Create:input_type -> openstorage.api.SdkCredentialCreateRequest - 175, // 480: openstorage.api.OpenStorageCredentials.Update:input_type -> openstorage.api.SdkCredentialUpdateRequest - 183, // 481: openstorage.api.OpenStorageCredentials.Enumerate:input_type -> openstorage.api.SdkCredentialEnumerateRequest - 185, // 482: openstorage.api.OpenStorageCredentials.Inspect:input_type -> openstorage.api.SdkCredentialInspectRequest - 187, // 483: openstorage.api.OpenStorageCredentials.Delete:input_type -> openstorage.api.SdkCredentialDeleteRequest - 189, // 484: openstorage.api.OpenStorageCredentials.Validate:input_type -> openstorage.api.SdkCredentialValidateRequest - 191, // 485: openstorage.api.OpenStorageCredentials.DeleteReferences:input_type -> openstorage.api.SdkCredentialDeleteReferencesRequest - 157, // 486: openstorage.api.OpenStorageSchedulePolicy.Create:input_type -> openstorage.api.SdkSchedulePolicyCreateRequest - 159, // 487: openstorage.api.OpenStorageSchedulePolicy.Update:input_type -> openstorage.api.SdkSchedulePolicyUpdateRequest - 161, // 488: openstorage.api.OpenStorageSchedulePolicy.Enumerate:input_type -> openstorage.api.SdkSchedulePolicyEnumerateRequest - 163, // 489: openstorage.api.OpenStorageSchedulePolicy.Inspect:input_type -> openstorage.api.SdkSchedulePolicyInspectRequest - 165, // 490: openstorage.api.OpenStorageSchedulePolicy.Delete:input_type -> openstorage.api.SdkSchedulePolicyDeleteRequest - 306, // 491: openstorage.api.OpenStorageCloudBackup.Create:input_type -> openstorage.api.SdkCloudBackupCreateRequest - 308, // 492: openstorage.api.OpenStorageCloudBackup.GroupCreate:input_type -> openstorage.api.SdkCloudBackupGroupCreateRequest - 310, // 493: openstorage.api.OpenStorageCloudBackup.Restore:input_type -> openstorage.api.SdkCloudBackupRestoreRequest - 312, // 494: openstorage.api.OpenStorageCloudBackup.Delete:input_type -> openstorage.api.SdkCloudBackupDeleteRequest - 314, // 495: openstorage.api.OpenStorageCloudBackup.DeleteAll:input_type -> openstorage.api.SdkCloudBackupDeleteAllRequest - 316, // 496: openstorage.api.OpenStorageCloudBackup.EnumerateWithFilters:input_type -> openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest - 320, // 497: openstorage.api.OpenStorageCloudBackup.Status:input_type -> openstorage.api.SdkCloudBackupStatusRequest - 322, // 498: openstorage.api.OpenStorageCloudBackup.Catalog:input_type -> openstorage.api.SdkCloudBackupCatalogRequest - 325, // 499: openstorage.api.OpenStorageCloudBackup.History:input_type -> openstorage.api.SdkCloudBackupHistoryRequest - 327, // 500: openstorage.api.OpenStorageCloudBackup.StateChange:input_type -> openstorage.api.SdkCloudBackupStateChangeRequest - 330, // 501: openstorage.api.OpenStorageCloudBackup.SchedCreate:input_type -> openstorage.api.SdkCloudBackupSchedCreateRequest - 332, // 502: openstorage.api.OpenStorageCloudBackup.SchedUpdate:input_type -> openstorage.api.SdkCloudBackupSchedUpdateRequest - 334, // 503: openstorage.api.OpenStorageCloudBackup.SchedDelete:input_type -> openstorage.api.SdkCloudBackupSchedDeleteRequest - 336, // 504: openstorage.api.OpenStorageCloudBackup.SchedEnumerate:input_type -> openstorage.api.SdkCloudBackupSchedEnumerateRequest - 338, // 505: openstorage.api.OpenStorageCloudBackup.Size:input_type -> openstorage.api.SdkCloudBackupSizeRequest - 141, // 506: openstorage.api.OpenStoragePolicy.Create:input_type -> openstorage.api.SdkOpenStoragePolicyCreateRequest - 143, // 507: openstorage.api.OpenStoragePolicy.Enumerate:input_type -> openstorage.api.SdkOpenStoragePolicyEnumerateRequest - 145, // 508: openstorage.api.OpenStoragePolicy.Inspect:input_type -> openstorage.api.SdkOpenStoragePolicyInspectRequest - 149, // 509: openstorage.api.OpenStoragePolicy.Update:input_type -> openstorage.api.SdkOpenStoragePolicyUpdateRequest - 147, // 510: openstorage.api.OpenStoragePolicy.Delete:input_type -> openstorage.api.SdkOpenStoragePolicyDeleteRequest - 151, // 511: openstorage.api.OpenStoragePolicy.SetDefault:input_type -> openstorage.api.SdkOpenStoragePolicySetDefaultRequest - 155, // 512: openstorage.api.OpenStoragePolicy.DefaultInspect:input_type -> openstorage.api.SdkOpenStoragePolicyDefaultInspectRequest - 153, // 513: openstorage.api.OpenStoragePolicy.Release:input_type -> openstorage.api.SdkOpenStoragePolicyReleaseRequest - 106, // 514: openstorage.api.OpenStorageAlerts.EnumerateWithFilters:output_type -> openstorage.api.SdkAlertsEnumerateWithFiltersResponse - 108, // 515: openstorage.api.OpenStorageAlerts.Delete:output_type -> openstorage.api.SdkAlertsDeleteResponse - 343, // 516: openstorage.api.OpenStorageRole.Create:output_type -> openstorage.api.SdkRoleCreateResponse - 345, // 517: openstorage.api.OpenStorageRole.Enumerate:output_type -> openstorage.api.SdkRoleEnumerateResponse - 347, // 518: openstorage.api.OpenStorageRole.Inspect:output_type -> openstorage.api.SdkRoleInspectResponse - 349, // 519: openstorage.api.OpenStorageRole.Delete:output_type -> openstorage.api.SdkRoleDeleteResponse - 351, // 520: openstorage.api.OpenStorageRole.Update:output_type -> openstorage.api.SdkRoleUpdateResponse - 354, // 521: openstorage.api.OpenStorageFilesystemTrim.Start:output_type -> openstorage.api.SdkFilesystemTrimStartResponse - 356, // 522: openstorage.api.OpenStorageFilesystemTrim.Status:output_type -> openstorage.api.SdkFilesystemTrimStatusResponse - 358, // 523: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimStatus:output_type -> openstorage.api.SdkAutoFSTrimStatusResponse - 360, // 524: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimUsage:output_type -> openstorage.api.SdkAutoFSTrimUsageResponse - 362, // 525: openstorage.api.OpenStorageFilesystemTrim.Stop:output_type -> openstorage.api.SdkFilesystemTrimStopResponse - 365, // 526: openstorage.api.OpenStorageFilesystemCheck.Start:output_type -> openstorage.api.SdkFilesystemCheckStartResponse - 367, // 527: openstorage.api.OpenStorageFilesystemCheck.Status:output_type -> openstorage.api.SdkFilesystemCheckStatusResponse - 369, // 528: openstorage.api.OpenStorageFilesystemCheck.Stop:output_type -> openstorage.api.SdkFilesystemCheckStopResponse - 371, // 529: openstorage.api.OpenStorageIdentity.Capabilities:output_type -> openstorage.api.SdkIdentityCapabilitiesResponse - 373, // 530: openstorage.api.OpenStorageIdentity.Version:output_type -> openstorage.api.SdkIdentityVersionResponse - 247, // 531: openstorage.api.OpenStorageCluster.InspectCurrent:output_type -> openstorage.api.SdkClusterInspectCurrentResponse - 395, // 532: openstorage.api.OpenStorageClusterPair.Create:output_type -> openstorage.api.SdkClusterPairCreateResponse - 408, // 533: openstorage.api.OpenStorageClusterPair.Inspect:output_type -> openstorage.api.SdkClusterPairInspectResponse - 411, // 534: openstorage.api.OpenStorageClusterPair.Enumerate:output_type -> openstorage.api.SdkClusterPairEnumerateResponse - 402, // 535: openstorage.api.OpenStorageClusterPair.GetToken:output_type -> openstorage.api.SdkClusterPairGetTokenResponse - 404, // 536: openstorage.api.OpenStorageClusterPair.ResetToken:output_type -> openstorage.api.SdkClusterPairResetTokenResponse - 399, // 537: openstorage.api.OpenStorageClusterPair.Delete:output_type -> openstorage.api.SdkClusterPairDeleteResponse - 239, // 538: openstorage.api.OpenStorageClusterDomains.Enumerate:output_type -> openstorage.api.SdkClusterDomainsEnumerateResponse - 241, // 539: openstorage.api.OpenStorageClusterDomains.Inspect:output_type -> openstorage.api.SdkClusterDomainInspectResponse - 243, // 540: openstorage.api.OpenStorageClusterDomains.Activate:output_type -> openstorage.api.SdkClusterDomainActivateResponse - 245, // 541: openstorage.api.OpenStorageClusterDomains.Deactivate:output_type -> openstorage.api.SdkClusterDomainDeactivateResponse - 290, // 542: openstorage.api.OpenStoragePool.Resize:output_type -> openstorage.api.SdkStoragePoolResizeResponse - 278, // 543: openstorage.api.OpenStoragePool.Rebalance:output_type -> openstorage.api.SdkStorageRebalanceResponse - 284, // 544: openstorage.api.OpenStoragePool.UpdateRebalanceJobState:output_type -> openstorage.api.SdkUpdateRebalanceJobResponse - 286, // 545: openstorage.api.OpenStoragePool.GetRebalanceJobStatus:output_type -> openstorage.api.SdkGetRebalanceJobStatusResponse - 288, // 546: openstorage.api.OpenStoragePool.EnumerateRebalanceJobs:output_type -> openstorage.api.SdkEnumerateRebalanceJobsResponse - 258, // 547: openstorage.api.OpenStorageDiags.Collect:output_type -> openstorage.api.SdkDiagsCollectResponse - 264, // 548: openstorage.api.OpenStorageJob.Update:output_type -> openstorage.api.SdkUpdateJobResponse - 269, // 549: openstorage.api.OpenStorageJob.GetStatus:output_type -> openstorage.api.SdkGetJobStatusResponse - 262, // 550: openstorage.api.OpenStorageJob.Enumerate:output_type -> openstorage.api.SdkEnumerateJobsResponse - 291, // 551: openstorage.api.OpenStorageNode.Inspect:output_type -> openstorage.api.SdkNodeInspectResponse - 293, // 552: openstorage.api.OpenStorageNode.InspectCurrent:output_type -> openstorage.api.SdkNodeInspectCurrentResponse - 295, // 553: openstorage.api.OpenStorageNode.Enumerate:output_type -> openstorage.api.SdkNodeEnumerateResponse - 297, // 554: openstorage.api.OpenStorageNode.EnumerateWithFilters:output_type -> openstorage.api.SdkNodeEnumerateWithFiltersResponse - 235, // 555: openstorage.api.OpenStorageNode.VolumeUsageByNode:output_type -> openstorage.api.SdkNodeVolumeUsageByNodeResponse - 237, // 556: openstorage.api.OpenStorageNode.RelaxedReclaimPurge:output_type -> openstorage.api.SdkNodeRelaxedReclaimPurgeResponse - 250, // 557: openstorage.api.OpenStorageNode.DrainAttachments:output_type -> openstorage.api.SdkJobResponse - 272, // 558: openstorage.api.OpenStorageNode.CordonAttachments:output_type -> openstorage.api.SdkNodeCordonAttachmentsResponse - 274, // 559: openstorage.api.OpenStorageNode.UncordonAttachments:output_type -> openstorage.api.SdkNodeUncordonAttachmentsResponse - 133, // 560: openstorage.api.OpenStorageBucket.Create:output_type -> openstorage.api.BucketCreateResponse - 135, // 561: openstorage.api.OpenStorageBucket.Delete:output_type -> openstorage.api.BucketDeleteResponse - 137, // 562: openstorage.api.OpenStorageBucket.GrantAccess:output_type -> openstorage.api.BucketGrantAccessResponse - 139, // 563: openstorage.api.OpenStorageBucket.RevokeAccess:output_type -> openstorage.api.BucketRevokeAccessResponse - 205, // 564: openstorage.api.OpenStorageVolume.Create:output_type -> openstorage.api.SdkVolumeCreateResponse - 207, // 565: openstorage.api.OpenStorageVolume.Clone:output_type -> openstorage.api.SdkVolumeCloneResponse - 209, // 566: openstorage.api.OpenStorageVolume.Delete:output_type -> openstorage.api.SdkVolumeDeleteResponse - 211, // 567: openstorage.api.OpenStorageVolume.Inspect:output_type -> openstorage.api.SdkVolumeInspectResponse - 213, // 568: openstorage.api.OpenStorageVolume.InspectWithFilters:output_type -> openstorage.api.SdkVolumeInspectWithFiltersResponse - 215, // 569: openstorage.api.OpenStorageVolume.Update:output_type -> openstorage.api.SdkVolumeUpdateResponse - 217, // 570: openstorage.api.OpenStorageVolume.Stats:output_type -> openstorage.api.SdkVolumeStatsResponse - 219, // 571: openstorage.api.OpenStorageVolume.CapacityUsage:output_type -> openstorage.api.SdkVolumeCapacityUsageResponse - 221, // 572: openstorage.api.OpenStorageVolume.Enumerate:output_type -> openstorage.api.SdkVolumeEnumerateResponse - 223, // 573: openstorage.api.OpenStorageVolume.EnumerateWithFilters:output_type -> openstorage.api.SdkVolumeEnumerateWithFiltersResponse - 225, // 574: openstorage.api.OpenStorageVolume.SnapshotCreate:output_type -> openstorage.api.SdkVolumeSnapshotCreateResponse - 227, // 575: openstorage.api.OpenStorageVolume.SnapshotRestore:output_type -> openstorage.api.SdkVolumeSnapshotRestoreResponse - 229, // 576: openstorage.api.OpenStorageVolume.SnapshotEnumerate:output_type -> openstorage.api.SdkVolumeSnapshotEnumerateResponse - 231, // 577: openstorage.api.OpenStorageVolume.SnapshotEnumerateWithFilters:output_type -> openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersResponse - 233, // 578: openstorage.api.OpenStorageVolume.SnapshotScheduleUpdate:output_type -> openstorage.api.SdkVolumeSnapshotScheduleUpdateResponse - 424, // 579: openstorage.api.OpenStorageVolume.VolumeCatalog:output_type -> openstorage.api.SdkVolumeCatalogResponse - 200, // 580: openstorage.api.OpenStorageMountAttach.Attach:output_type -> openstorage.api.SdkVolumeAttachResponse - 203, // 581: openstorage.api.OpenStorageMountAttach.Detach:output_type -> openstorage.api.SdkVolumeDetachResponse - 195, // 582: openstorage.api.OpenStorageMountAttach.Mount:output_type -> openstorage.api.SdkVolumeMountResponse - 198, // 583: openstorage.api.OpenStorageMountAttach.Unmount:output_type -> openstorage.api.SdkVolumeUnmountResponse - 381, // 584: openstorage.api.OpenStorageMigrate.Start:output_type -> openstorage.api.SdkCloudMigrateStartResponse - 384, // 585: openstorage.api.OpenStorageMigrate.Cancel:output_type -> openstorage.api.SdkCloudMigrateCancelResponse - 390, // 586: openstorage.api.OpenStorageMigrate.Status:output_type -> openstorage.api.SdkCloudMigrateStatusResponse - 299, // 587: openstorage.api.OpenStorageObjectstore.Inspect:output_type -> openstorage.api.SdkObjectstoreInspectResponse - 301, // 588: openstorage.api.OpenStorageObjectstore.Create:output_type -> openstorage.api.SdkObjectstoreCreateResponse - 303, // 589: openstorage.api.OpenStorageObjectstore.Delete:output_type -> openstorage.api.SdkObjectstoreDeleteResponse - 305, // 590: openstorage.api.OpenStorageObjectstore.Update:output_type -> openstorage.api.SdkObjectstoreUpdateResponse - 174, // 591: openstorage.api.OpenStorageCredentials.Create:output_type -> openstorage.api.SdkCredentialCreateResponse - 176, // 592: openstorage.api.OpenStorageCredentials.Update:output_type -> openstorage.api.SdkCredentialUpdateResponse - 184, // 593: openstorage.api.OpenStorageCredentials.Enumerate:output_type -> openstorage.api.SdkCredentialEnumerateResponse - 186, // 594: openstorage.api.OpenStorageCredentials.Inspect:output_type -> openstorage.api.SdkCredentialInspectResponse - 188, // 595: openstorage.api.OpenStorageCredentials.Delete:output_type -> openstorage.api.SdkCredentialDeleteResponse - 190, // 596: openstorage.api.OpenStorageCredentials.Validate:output_type -> openstorage.api.SdkCredentialValidateResponse - 192, // 597: openstorage.api.OpenStorageCredentials.DeleteReferences:output_type -> openstorage.api.SdkCredentialDeleteReferencesResponse - 158, // 598: openstorage.api.OpenStorageSchedulePolicy.Create:output_type -> openstorage.api.SdkSchedulePolicyCreateResponse - 160, // 599: openstorage.api.OpenStorageSchedulePolicy.Update:output_type -> openstorage.api.SdkSchedulePolicyUpdateResponse - 162, // 600: openstorage.api.OpenStorageSchedulePolicy.Enumerate:output_type -> openstorage.api.SdkSchedulePolicyEnumerateResponse - 164, // 601: openstorage.api.OpenStorageSchedulePolicy.Inspect:output_type -> openstorage.api.SdkSchedulePolicyInspectResponse - 166, // 602: openstorage.api.OpenStorageSchedulePolicy.Delete:output_type -> openstorage.api.SdkSchedulePolicyDeleteResponse - 307, // 603: openstorage.api.OpenStorageCloudBackup.Create:output_type -> openstorage.api.SdkCloudBackupCreateResponse - 309, // 604: openstorage.api.OpenStorageCloudBackup.GroupCreate:output_type -> openstorage.api.SdkCloudBackupGroupCreateResponse - 311, // 605: openstorage.api.OpenStorageCloudBackup.Restore:output_type -> openstorage.api.SdkCloudBackupRestoreResponse - 313, // 606: openstorage.api.OpenStorageCloudBackup.Delete:output_type -> openstorage.api.SdkCloudBackupDeleteResponse - 315, // 607: openstorage.api.OpenStorageCloudBackup.DeleteAll:output_type -> openstorage.api.SdkCloudBackupDeleteAllResponse - 318, // 608: openstorage.api.OpenStorageCloudBackup.EnumerateWithFilters:output_type -> openstorage.api.SdkCloudBackupEnumerateWithFiltersResponse - 321, // 609: openstorage.api.OpenStorageCloudBackup.Status:output_type -> openstorage.api.SdkCloudBackupStatusResponse - 323, // 610: openstorage.api.OpenStorageCloudBackup.Catalog:output_type -> openstorage.api.SdkCloudBackupCatalogResponse - 326, // 611: openstorage.api.OpenStorageCloudBackup.History:output_type -> openstorage.api.SdkCloudBackupHistoryResponse - 328, // 612: openstorage.api.OpenStorageCloudBackup.StateChange:output_type -> openstorage.api.SdkCloudBackupStateChangeResponse - 331, // 613: openstorage.api.OpenStorageCloudBackup.SchedCreate:output_type -> openstorage.api.SdkCloudBackupSchedCreateResponse - 333, // 614: openstorage.api.OpenStorageCloudBackup.SchedUpdate:output_type -> openstorage.api.SdkCloudBackupSchedUpdateResponse - 335, // 615: openstorage.api.OpenStorageCloudBackup.SchedDelete:output_type -> openstorage.api.SdkCloudBackupSchedDeleteResponse - 337, // 616: openstorage.api.OpenStorageCloudBackup.SchedEnumerate:output_type -> openstorage.api.SdkCloudBackupSchedEnumerateResponse - 339, // 617: openstorage.api.OpenStorageCloudBackup.Size:output_type -> openstorage.api.SdkCloudBackupSizeResponse - 142, // 618: openstorage.api.OpenStoragePolicy.Create:output_type -> openstorage.api.SdkOpenStoragePolicyCreateResponse - 144, // 619: openstorage.api.OpenStoragePolicy.Enumerate:output_type -> openstorage.api.SdkOpenStoragePolicyEnumerateResponse - 146, // 620: openstorage.api.OpenStoragePolicy.Inspect:output_type -> openstorage.api.SdkOpenStoragePolicyInspectResponse - 150, // 621: openstorage.api.OpenStoragePolicy.Update:output_type -> openstorage.api.SdkOpenStoragePolicyUpdateResponse - 148, // 622: openstorage.api.OpenStoragePolicy.Delete:output_type -> openstorage.api.SdkOpenStoragePolicyDeleteResponse - 152, // 623: openstorage.api.OpenStoragePolicy.SetDefault:output_type -> openstorage.api.SdkOpenStoragePolicySetDefaultResponse - 156, // 624: openstorage.api.OpenStoragePolicy.DefaultInspect:output_type -> openstorage.api.SdkOpenStoragePolicyDefaultInspectResponse - 154, // 625: openstorage.api.OpenStoragePolicy.Release:output_type -> openstorage.api.SdkOpenStoragePolicyReleaseResponse - 514, // [514:626] is the sub-list for method output_type - 402, // [402:514] is the sub-list for method input_type - 402, // [402:402] is the sub-list for extension type_name - 402, // [402:402] is the sub-list for extension extendee - 0, // [0:402] is the sub-list for field type_name + 442, // 32: openstorage.api.VolumeSpec.volume_labels:type_name -> openstorage.api.VolumeSpec.VolumeLabelsEntry + 87, // 33: openstorage.api.VolumeSpec.replica_set:type_name -> openstorage.api.ReplicaSet + 66, // 34: openstorage.api.VolumeSpec.group:type_name -> openstorage.api.Group + 67, // 35: openstorage.api.VolumeSpec.io_strategy:type_name -> openstorage.api.IoStrategy + 427, // 36: openstorage.api.VolumeSpec.placement_strategy:type_name -> openstorage.api.VolumePlacementStrategy + 89, // 37: openstorage.api.VolumeSpec.ownership:type_name -> openstorage.api.Ownership + 69, // 38: openstorage.api.VolumeSpec.export_spec:type_name -> openstorage.api.ExportSpec + 31, // 39: openstorage.api.VolumeSpec.xattr:type_name -> openstorage.api.Xattr.Value + 82, // 40: openstorage.api.VolumeSpec.scan_policy:type_name -> openstorage.api.ScanPolicy + 79, // 41: openstorage.api.VolumeSpec.mount_options:type_name -> openstorage.api.MountOptions + 79, // 42: openstorage.api.VolumeSpec.sharedv4_mount_options:type_name -> openstorage.api.MountOptions + 75, // 43: openstorage.api.VolumeSpec.proxy_spec:type_name -> openstorage.api.ProxySpec + 76, // 44: openstorage.api.VolumeSpec.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec + 78, // 45: openstorage.api.VolumeSpec.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec + 83, // 46: openstorage.api.VolumeSpec.io_throttle:type_name -> openstorage.api.IoThrottle + 62, // 47: openstorage.api.VolumeSpec.topology_requirement:type_name -> openstorage.api.TopologyRequirement + 21, // 48: openstorage.api.VolumeSpec.near_sync_replication_strategy:type_name -> openstorage.api.NearSyncReplicationStrategy + 8, // 49: openstorage.api.VolumeSpecUpdate.cos:type_name -> openstorage.api.CosType + 9, // 50: openstorage.api.VolumeSpecUpdate.io_profile:type_name -> openstorage.api.IoProfile + 87, // 51: openstorage.api.VolumeSpecUpdate.replica_set:type_name -> openstorage.api.ReplicaSet + 66, // 52: openstorage.api.VolumeSpecUpdate.group:type_name -> openstorage.api.Group + 89, // 53: openstorage.api.VolumeSpecUpdate.ownership:type_name -> openstorage.api.Ownership + 67, // 54: openstorage.api.VolumeSpecUpdate.io_strategy:type_name -> openstorage.api.IoStrategy + 69, // 55: openstorage.api.VolumeSpecUpdate.export_spec:type_name -> openstorage.api.ExportSpec + 31, // 56: openstorage.api.VolumeSpecUpdate.xattr:type_name -> openstorage.api.Xattr.Value + 82, // 57: openstorage.api.VolumeSpecUpdate.scan_policy:type_name -> openstorage.api.ScanPolicy + 79, // 58: openstorage.api.VolumeSpecUpdate.mount_opt_spec:type_name -> openstorage.api.MountOptions + 79, // 59: openstorage.api.VolumeSpecUpdate.sharedv4_mount_opt_spec:type_name -> openstorage.api.MountOptions + 75, // 60: openstorage.api.VolumeSpecUpdate.proxy_spec:type_name -> openstorage.api.ProxySpec + 76, // 61: openstorage.api.VolumeSpecUpdate.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec + 78, // 62: openstorage.api.VolumeSpecUpdate.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec + 83, // 63: openstorage.api.VolumeSpecUpdate.io_throttle:type_name -> openstorage.api.IoThrottle + 21, // 64: openstorage.api.VolumeSpecUpdate.near_sync_replication_strategy:type_name -> openstorage.api.NearSyncReplicationStrategy + 8, // 65: openstorage.api.VolumeSpecPolicy.cos:type_name -> openstorage.api.CosType + 9, // 66: openstorage.api.VolumeSpecPolicy.io_profile:type_name -> openstorage.api.IoProfile + 443, // 67: openstorage.api.VolumeSpecPolicy.volume_labels:type_name -> openstorage.api.VolumeSpecPolicy.VolumeLabelsEntry + 87, // 68: openstorage.api.VolumeSpecPolicy.replica_set:type_name -> openstorage.api.ReplicaSet + 66, // 69: openstorage.api.VolumeSpecPolicy.group:type_name -> openstorage.api.Group + 36, // 70: openstorage.api.VolumeSpecPolicy.size_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp + 36, // 71: openstorage.api.VolumeSpecPolicy.ha_level_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp + 36, // 72: openstorage.api.VolumeSpecPolicy.scale_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp + 36, // 73: openstorage.api.VolumeSpecPolicy.snapshot_interval_operator:type_name -> openstorage.api.VolumeSpecPolicy.PolicyOp + 67, // 74: openstorage.api.VolumeSpecPolicy.io_strategy:type_name -> openstorage.api.IoStrategy + 69, // 75: openstorage.api.VolumeSpecPolicy.export_spec:type_name -> openstorage.api.ExportSpec + 82, // 76: openstorage.api.VolumeSpecPolicy.scan_policy:type_name -> openstorage.api.ScanPolicy + 79, // 77: openstorage.api.VolumeSpecPolicy.mount_opt_spec:type_name -> openstorage.api.MountOptions + 79, // 78: openstorage.api.VolumeSpecPolicy.sharedv4_mount_opt_spec:type_name -> openstorage.api.MountOptions + 75, // 79: openstorage.api.VolumeSpecPolicy.proxy_spec:type_name -> openstorage.api.ProxySpec + 76, // 80: openstorage.api.VolumeSpecPolicy.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec + 78, // 81: openstorage.api.VolumeSpecPolicy.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec + 83, // 82: openstorage.api.VolumeSpecPolicy.io_throttle:type_name -> openstorage.api.IoThrottle + 444, // 83: openstorage.api.RuntimeStateMap.runtime_state:type_name -> openstorage.api.RuntimeStateMap.RuntimeStateEntry + 446, // 84: openstorage.api.Ownership.acls:type_name -> openstorage.api.Ownership.AccessControl + 65, // 85: openstorage.api.Volume.source:type_name -> openstorage.api.Source + 66, // 86: openstorage.api.Volume.group:type_name -> openstorage.api.Group + 63, // 87: openstorage.api.Volume.locator:type_name -> openstorage.api.VolumeLocator + 490, // 88: openstorage.api.Volume.ctime:type_name -> google.protobuf.Timestamp + 84, // 89: openstorage.api.Volume.spec:type_name -> openstorage.api.VolumeSpec + 490, // 90: openstorage.api.Volume.last_scan:type_name -> google.protobuf.Timestamp + 2, // 91: openstorage.api.Volume.format:type_name -> openstorage.api.FSType + 11, // 92: openstorage.api.Volume.status:type_name -> openstorage.api.VolumeStatus + 10, // 93: openstorage.api.Volume.state:type_name -> openstorage.api.VolumeState + 14, // 94: openstorage.api.Volume.attached_state:type_name -> openstorage.api.AttachState + 449, // 95: openstorage.api.Volume.attach_info:type_name -> openstorage.api.Volume.AttachInfoEntry + 87, // 96: openstorage.api.Volume.replica_sets:type_name -> openstorage.api.ReplicaSet + 88, // 97: openstorage.api.Volume.runtime_state:type_name -> openstorage.api.RuntimeStateMap + 123, // 98: openstorage.api.Volume.volume_consumers:type_name -> openstorage.api.VolumeConsumer + 490, // 99: openstorage.api.Volume.attach_time:type_name -> google.protobuf.Timestamp + 490, // 100: openstorage.api.Volume.detach_time:type_name -> google.protobuf.Timestamp + 81, // 101: openstorage.api.Volume.fpConfig:type_name -> openstorage.api.FastpathConfig + 490, // 102: openstorage.api.Volume.last_scan_fix:type_name -> google.protobuf.Timestamp + 12, // 103: openstorage.api.Volume.last_scan_status:type_name -> openstorage.api.FilesystemHealthStatus + 79, // 104: openstorage.api.Volume.mount_options:type_name -> openstorage.api.MountOptions + 79, // 105: openstorage.api.Volume.sharedv4_mount_options:type_name -> openstorage.api.MountOptions + 9, // 106: openstorage.api.Volume.derived_io_profile:type_name -> openstorage.api.IoProfile + 93, // 107: openstorage.api.VolumeUsageByNode.volume_usage:type_name -> openstorage.api.VolumeUsage + 95, // 108: openstorage.api.VolumeBytesUsedByNode.vol_usage:type_name -> openstorage.api.VolumeBytesUsed + 86, // 109: openstorage.api.SdkStoragePolicy.policy:type_name -> openstorage.api.VolumeSpecPolicy + 89, // 110: openstorage.api.SdkStoragePolicy.ownership:type_name -> openstorage.api.Ownership + 4, // 111: openstorage.api.Alert.severity:type_name -> openstorage.api.SeverityType + 490, // 112: openstorage.api.Alert.timestamp:type_name -> google.protobuf.Timestamp + 5, // 113: openstorage.api.Alert.resource:type_name -> openstorage.api.ResourceType + 490, // 114: openstorage.api.Alert.first_seen:type_name -> google.protobuf.Timestamp + 490, // 115: openstorage.api.SdkAlertsTimeSpan.start_time:type_name -> google.protobuf.Timestamp + 490, // 116: openstorage.api.SdkAlertsTimeSpan.end_time:type_name -> google.protobuf.Timestamp + 4, // 117: openstorage.api.SdkAlertsOption.min_severity_type:type_name -> openstorage.api.SeverityType + 101, // 118: openstorage.api.SdkAlertsOption.time_span:type_name -> openstorage.api.SdkAlertsTimeSpan + 102, // 119: openstorage.api.SdkAlertsOption.count_span:type_name -> openstorage.api.SdkAlertsCountSpan + 5, // 120: openstorage.api.SdkAlertsResourceTypeQuery.resource_type:type_name -> openstorage.api.ResourceType + 5, // 121: openstorage.api.SdkAlertsAlertTypeQuery.resource_type:type_name -> openstorage.api.ResourceType + 5, // 122: openstorage.api.SdkAlertsResourceIdQuery.resource_type:type_name -> openstorage.api.ResourceType + 104, // 123: openstorage.api.SdkAlertsQuery.resource_type_query:type_name -> openstorage.api.SdkAlertsResourceTypeQuery + 105, // 124: openstorage.api.SdkAlertsQuery.alert_type_query:type_name -> openstorage.api.SdkAlertsAlertTypeQuery + 106, // 125: openstorage.api.SdkAlertsQuery.resource_id_query:type_name -> openstorage.api.SdkAlertsResourceIdQuery + 103, // 126: openstorage.api.SdkAlertsQuery.opts:type_name -> openstorage.api.SdkAlertsOption + 107, // 127: openstorage.api.SdkAlertsEnumerateWithFiltersRequest.queries:type_name -> openstorage.api.SdkAlertsQuery + 100, // 128: openstorage.api.SdkAlertsEnumerateWithFiltersResponse.alerts:type_name -> openstorage.api.Alert + 107, // 129: openstorage.api.SdkAlertsDeleteRequest.queries:type_name -> openstorage.api.SdkAlertsQuery + 100, // 130: openstorage.api.Alerts.alert:type_name -> openstorage.api.Alert + 63, // 131: openstorage.api.VolumeCreateRequest.locator:type_name -> openstorage.api.VolumeLocator + 65, // 132: openstorage.api.VolumeCreateRequest.source:type_name -> openstorage.api.Source + 84, // 133: openstorage.api.VolumeCreateRequest.spec:type_name -> openstorage.api.VolumeSpec + 115, // 134: openstorage.api.VolumeCreateResponse.volume_response:type_name -> openstorage.api.VolumeResponse + 7, // 135: openstorage.api.VolumeStateAction.attach:type_name -> openstorage.api.VolumeActionParam + 7, // 136: openstorage.api.VolumeStateAction.mount:type_name -> openstorage.api.VolumeActionParam + 63, // 137: openstorage.api.VolumeSetRequest.locator:type_name -> openstorage.api.VolumeLocator + 84, // 138: openstorage.api.VolumeSetRequest.spec:type_name -> openstorage.api.VolumeSpec + 117, // 139: openstorage.api.VolumeSetRequest.action:type_name -> openstorage.api.VolumeStateAction + 450, // 140: openstorage.api.VolumeSetRequest.options:type_name -> openstorage.api.VolumeSetRequest.OptionsEntry + 90, // 141: openstorage.api.VolumeSetResponse.volume:type_name -> openstorage.api.Volume + 115, // 142: openstorage.api.VolumeSetResponse.volume_response:type_name -> openstorage.api.VolumeResponse + 63, // 143: openstorage.api.SnapCreateRequest.locator:type_name -> openstorage.api.VolumeLocator + 116, // 144: openstorage.api.SnapCreateResponse.volume_create_response:type_name -> openstorage.api.VolumeCreateResponse + 84, // 145: openstorage.api.VolumeInfo.storage:type_name -> openstorage.api.VolumeSpec + 451, // 146: openstorage.api.VolumeServiceRequest.srv_cmd_params:type_name -> openstorage.api.VolumeServiceRequest.SrvCmdParamsEntry + 452, // 147: openstorage.api.VolumeServiceInstanceResponse.status:type_name -> openstorage.api.VolumeServiceInstanceResponse.StatusEntry + 125, // 148: openstorage.api.VolumeServiceResponse.vol_srv_rsp:type_name -> openstorage.api.VolumeServiceInstanceResponse + 3, // 149: openstorage.api.GraphDriverChanges.kind:type_name -> openstorage.api.GraphDriverChangeType + 453, // 150: openstorage.api.ActiveRequest.ReqestKV:type_name -> openstorage.api.ActiveRequest.ReqestKVEntry + 129, // 151: openstorage.api.ActiveRequests.ActiveRequest:type_name -> openstorage.api.ActiveRequest + 454, // 152: openstorage.api.GroupSnapCreateRequest.Labels:type_name -> openstorage.api.GroupSnapCreateRequest.LabelsEntry + 455, // 153: openstorage.api.GroupSnapCreateResponse.snapshots:type_name -> openstorage.api.GroupSnapCreateResponse.SnapshotsEntry + 0, // 154: openstorage.api.StorageNode.status:type_name -> openstorage.api.Status + 456, // 155: openstorage.api.StorageNode.disks:type_name -> openstorage.api.StorageNode.DisksEntry + 59, // 156: openstorage.api.StorageNode.pools:type_name -> openstorage.api.StoragePool + 457, // 157: openstorage.api.StorageNode.node_labels:type_name -> openstorage.api.StorageNode.NodeLabelsEntry + 16, // 158: openstorage.api.StorageNode.HWType:type_name -> openstorage.api.HardwareType + 38, // 159: openstorage.api.StorageNode.security_status:type_name -> openstorage.api.StorageNode.SecurityStatus + 60, // 160: openstorage.api.StorageNode.scheduler_topology:type_name -> openstorage.api.SchedulerTopology + 0, // 161: openstorage.api.StorageCluster.status:type_name -> openstorage.api.Status + 22, // 162: openstorage.api.BucketCreateRequest.anonymousBucketAccessMode:type_name -> openstorage.api.AnonymousBucketAccessMode + 143, // 163: openstorage.api.BucketGrantAccessResponse.credentials:type_name -> openstorage.api.BucketAccessCredentials + 99, // 164: openstorage.api.SdkOpenStoragePolicyCreateRequest.storage_policy:type_name -> openstorage.api.SdkStoragePolicy + 99, // 165: openstorage.api.SdkOpenStoragePolicyEnumerateResponse.storage_policies:type_name -> openstorage.api.SdkStoragePolicy + 99, // 166: openstorage.api.SdkOpenStoragePolicyInspectResponse.storage_policy:type_name -> openstorage.api.SdkStoragePolicy + 99, // 167: openstorage.api.SdkOpenStoragePolicyUpdateRequest.storage_policy:type_name -> openstorage.api.SdkStoragePolicy + 99, // 168: openstorage.api.SdkOpenStoragePolicyDefaultInspectResponse.storage_policy:type_name -> openstorage.api.SdkStoragePolicy + 175, // 169: openstorage.api.SdkSchedulePolicyCreateRequest.schedule_policy:type_name -> openstorage.api.SdkSchedulePolicy + 175, // 170: openstorage.api.SdkSchedulePolicyUpdateRequest.schedule_policy:type_name -> openstorage.api.SdkSchedulePolicy + 175, // 171: openstorage.api.SdkSchedulePolicyEnumerateResponse.policies:type_name -> openstorage.api.SdkSchedulePolicy + 175, // 172: openstorage.api.SdkSchedulePolicyInspectResponse.policy:type_name -> openstorage.api.SdkSchedulePolicy + 23, // 173: openstorage.api.SdkSchedulePolicyIntervalWeekly.day:type_name -> openstorage.api.SdkTimeWeekday + 170, // 174: openstorage.api.SdkSchedulePolicyInterval.daily:type_name -> openstorage.api.SdkSchedulePolicyIntervalDaily + 171, // 175: openstorage.api.SdkSchedulePolicyInterval.weekly:type_name -> openstorage.api.SdkSchedulePolicyIntervalWeekly + 172, // 176: openstorage.api.SdkSchedulePolicyInterval.monthly:type_name -> openstorage.api.SdkSchedulePolicyIntervalMonthly + 173, // 177: openstorage.api.SdkSchedulePolicyInterval.periodic:type_name -> openstorage.api.SdkSchedulePolicyIntervalPeriodic + 174, // 178: openstorage.api.SdkSchedulePolicy.schedules:type_name -> openstorage.api.SdkSchedulePolicyInterval + 89, // 179: openstorage.api.SdkCredentialCreateRequest.ownership:type_name -> openstorage.api.Ownership + 180, // 180: openstorage.api.SdkCredentialCreateRequest.aws_credential:type_name -> openstorage.api.SdkAwsCredentialRequest + 181, // 181: openstorage.api.SdkCredentialCreateRequest.azure_credential:type_name -> openstorage.api.SdkAzureCredentialRequest + 182, // 182: openstorage.api.SdkCredentialCreateRequest.google_credential:type_name -> openstorage.api.SdkGoogleCredentialRequest + 183, // 183: openstorage.api.SdkCredentialCreateRequest.nfs_credential:type_name -> openstorage.api.SdkNfsCredentialRequest + 176, // 184: openstorage.api.SdkCredentialUpdateRequest.update_req:type_name -> openstorage.api.SdkCredentialCreateRequest + 89, // 185: openstorage.api.SdkCredentialInspectResponse.ownership:type_name -> openstorage.api.Ownership + 184, // 186: openstorage.api.SdkCredentialInspectResponse.aws_credential:type_name -> openstorage.api.SdkAwsCredentialResponse + 185, // 187: openstorage.api.SdkCredentialInspectResponse.azure_credential:type_name -> openstorage.api.SdkAzureCredentialResponse + 186, // 188: openstorage.api.SdkCredentialInspectResponse.google_credential:type_name -> openstorage.api.SdkGoogleCredentialResponse + 187, // 189: openstorage.api.SdkCredentialInspectResponse.nfs_credential:type_name -> openstorage.api.SdkNfsCredentialResponse + 198, // 190: openstorage.api.SdkVolumeMountRequest.options:type_name -> openstorage.api.SdkVolumeAttachOptions + 458, // 191: openstorage.api.SdkVolumeMountRequest.driver_options:type_name -> openstorage.api.SdkVolumeMountRequest.DriverOptionsEntry + 201, // 192: openstorage.api.SdkVolumeUnmountRequest.options:type_name -> openstorage.api.SdkVolumeUnmountOptions + 459, // 193: openstorage.api.SdkVolumeUnmountRequest.driver_options:type_name -> openstorage.api.SdkVolumeUnmountRequest.DriverOptionsEntry + 198, // 194: openstorage.api.SdkVolumeAttachRequest.options:type_name -> openstorage.api.SdkVolumeAttachOptions + 460, // 195: openstorage.api.SdkVolumeAttachRequest.driver_options:type_name -> openstorage.api.SdkVolumeAttachRequest.DriverOptionsEntry + 206, // 196: openstorage.api.SdkVolumeDetachRequest.options:type_name -> openstorage.api.SdkVolumeDetachOptions + 461, // 197: openstorage.api.SdkVolumeDetachRequest.driver_options:type_name -> openstorage.api.SdkVolumeDetachRequest.DriverOptionsEntry + 84, // 198: openstorage.api.SdkVolumeCreateRequest.spec:type_name -> openstorage.api.VolumeSpec + 462, // 199: openstorage.api.SdkVolumeCreateRequest.labels:type_name -> openstorage.api.SdkVolumeCreateRequest.LabelsEntry + 463, // 200: openstorage.api.SdkVolumeCloneRequest.additional_labels:type_name -> openstorage.api.SdkVolumeCloneRequest.AdditionalLabelsEntry + 64, // 201: openstorage.api.SdkVolumeInspectRequest.options:type_name -> openstorage.api.VolumeInspectOptions + 90, // 202: openstorage.api.SdkVolumeInspectResponse.volume:type_name -> openstorage.api.Volume + 464, // 203: openstorage.api.SdkVolumeInspectResponse.labels:type_name -> openstorage.api.SdkVolumeInspectResponse.LabelsEntry + 465, // 204: openstorage.api.SdkVolumeInspectWithFiltersRequest.labels:type_name -> openstorage.api.SdkVolumeInspectWithFiltersRequest.LabelsEntry + 89, // 205: openstorage.api.SdkVolumeInspectWithFiltersRequest.ownership:type_name -> openstorage.api.Ownership + 66, // 206: openstorage.api.SdkVolumeInspectWithFiltersRequest.group:type_name -> openstorage.api.Group + 64, // 207: openstorage.api.SdkVolumeInspectWithFiltersRequest.options:type_name -> openstorage.api.VolumeInspectOptions + 216, // 208: openstorage.api.SdkVolumeInspectWithFiltersResponse.volumes:type_name -> openstorage.api.SdkVolumeInspectResponse + 466, // 209: openstorage.api.SdkVolumeUpdateRequest.labels:type_name -> openstorage.api.SdkVolumeUpdateRequest.LabelsEntry + 85, // 210: openstorage.api.SdkVolumeUpdateRequest.spec:type_name -> openstorage.api.VolumeSpecUpdate + 91, // 211: openstorage.api.SdkVolumeStatsResponse.stats:type_name -> openstorage.api.Stats + 92, // 212: openstorage.api.SdkVolumeCapacityUsageResponse.capacity_usage_info:type_name -> openstorage.api.CapacityUsageInfo + 467, // 213: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.labels:type_name -> openstorage.api.SdkVolumeEnumerateWithFiltersRequest.LabelsEntry + 89, // 214: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.ownership:type_name -> openstorage.api.Ownership + 66, // 215: openstorage.api.SdkVolumeEnumerateWithFiltersRequest.group:type_name -> openstorage.api.Group + 468, // 216: openstorage.api.SdkVolumeSnapshotCreateRequest.labels:type_name -> openstorage.api.SdkVolumeSnapshotCreateRequest.LabelsEntry + 469, // 217: openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest.labels:type_name -> openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest.LabelsEntry + 94, // 218: openstorage.api.SdkNodeVolumeUsageByNodeResponse.volume_usage_info:type_name -> openstorage.api.VolumeUsageByNode + 98, // 219: openstorage.api.SdkNodeRelaxedReclaimPurgeResponse.status:type_name -> openstorage.api.RelaxedReclaimPurge + 134, // 220: openstorage.api.SdkClusterInspectCurrentResponse.cluster:type_name -> openstorage.api.StorageCluster + 40, // 221: openstorage.api.Job.state:type_name -> openstorage.api.Job.State + 39, // 222: openstorage.api.Job.type:type_name -> openstorage.api.Job.Type + 258, // 223: openstorage.api.Job.drain_attachments:type_name -> openstorage.api.NodeDrainAttachmentsJob + 259, // 224: openstorage.api.Job.clouddrive_transfer:type_name -> openstorage.api.CloudDriveTransferJob + 260, // 225: openstorage.api.Job.collect_diags:type_name -> openstorage.api.CollectDiagsJob + 490, // 226: openstorage.api.Job.create_time:type_name -> google.protobuf.Timestamp + 490, // 227: openstorage.api.Job.last_update_time:type_name -> google.protobuf.Timestamp + 254, // 228: openstorage.api.SdkJobResponse.job:type_name -> openstorage.api.Job + 430, // 229: openstorage.api.SdkNodeDrainAttachmentsRequest.selector:type_name -> openstorage.api.LabelSelectorRequirement + 257, // 230: openstorage.api.NodeDrainAttachmentsJob.parameters:type_name -> openstorage.api.SdkNodeDrainAttachmentsRequest + 490, // 231: openstorage.api.NodeDrainAttachmentsJob.create_time:type_name -> google.protobuf.Timestamp + 490, // 232: openstorage.api.NodeDrainAttachmentsJob.last_update_time:type_name -> google.protobuf.Timestamp + 262, // 233: openstorage.api.CollectDiagsJob.request:type_name -> openstorage.api.SdkDiagsCollectRequest + 261, // 234: openstorage.api.CollectDiagsJob.statuses:type_name -> openstorage.api.DiagsCollectionStatus + 41, // 235: openstorage.api.DiagsCollectionStatus.state:type_name -> openstorage.api.DiagsCollectionStatus.State + 264, // 236: openstorage.api.SdkDiagsCollectRequest.node:type_name -> openstorage.api.DiagsNodeSelector + 265, // 237: openstorage.api.SdkDiagsCollectRequest.volume:type_name -> openstorage.api.DiagsVolumeSelector + 254, // 238: openstorage.api.SdkDiagsCollectResponse.job:type_name -> openstorage.api.Job + 430, // 239: openstorage.api.DiagsNodeSelector.node_label_selector:type_name -> openstorage.api.LabelSelectorRequirement + 430, // 240: openstorage.api.DiagsVolumeSelector.volume_label_selector:type_name -> openstorage.api.LabelSelectorRequirement + 39, // 241: openstorage.api.SdkEnumerateJobsRequest.type:type_name -> openstorage.api.Job.Type + 254, // 242: openstorage.api.SdkEnumerateJobsResponse.jobs:type_name -> openstorage.api.Job + 39, // 243: openstorage.api.SdkUpdateJobRequest.type:type_name -> openstorage.api.Job.Type + 40, // 244: openstorage.api.SdkUpdateJobRequest.state:type_name -> openstorage.api.Job.State + 39, // 245: openstorage.api.SdkGetJobStatusRequest.type:type_name -> openstorage.api.Job.Type + 272, // 246: openstorage.api.JobAudit.summary:type_name -> openstorage.api.JobWorkSummary + 275, // 247: openstorage.api.JobWorkSummary.drain_attachments_summary:type_name -> openstorage.api.DrainAttachmentsSummary + 272, // 248: openstorage.api.JobSummary.work_summaries:type_name -> openstorage.api.JobWorkSummary + 254, // 249: openstorage.api.SdkGetJobStatusResponse.job:type_name -> openstorage.api.Job + 273, // 250: openstorage.api.SdkGetJobStatusResponse.summary:type_name -> openstorage.api.JobSummary + 48, // 251: openstorage.api.SdkStoragePoolResizeRequest.operation_type:type_name -> openstorage.api.SdkStoragePool.ResizeOperationType + 42, // 252: openstorage.api.StorageRebalanceTriggerThreshold.type:type_name -> openstorage.api.StorageRebalanceTriggerThreshold.Type + 43, // 253: openstorage.api.StorageRebalanceTriggerThreshold.metric:type_name -> openstorage.api.StorageRebalanceTriggerThreshold.Metric + 281, // 254: openstorage.api.SdkStorageRebalanceRequest.trigger_thresholds:type_name -> openstorage.api.StorageRebalanceTriggerThreshold + 430, // 255: openstorage.api.SdkStorageRebalanceRequest.source_pool_selector:type_name -> openstorage.api.LabelSelectorRequirement + 430, // 256: openstorage.api.SdkStorageRebalanceRequest.target_pool_selector:type_name -> openstorage.api.LabelSelectorRequirement + 284, // 257: openstorage.api.SdkStorageRebalanceResponse.job:type_name -> openstorage.api.StorageRebalanceJob + 285, // 258: openstorage.api.SdkStorageRebalanceResponse.summary:type_name -> openstorage.api.StorageRebalanceSummary + 287, // 259: openstorage.api.SdkStorageRebalanceResponse.actions:type_name -> openstorage.api.StorageRebalanceAudit + 24, // 260: openstorage.api.StorageRebalanceJob.state:type_name -> openstorage.api.StorageRebalanceJobState + 282, // 261: openstorage.api.StorageRebalanceJob.parameters:type_name -> openstorage.api.SdkStorageRebalanceRequest + 490, // 262: openstorage.api.StorageRebalanceJob.create_time:type_name -> google.protobuf.Timestamp + 490, // 263: openstorage.api.StorageRebalanceJob.last_update_time:type_name -> google.protobuf.Timestamp + 286, // 264: openstorage.api.StorageRebalanceSummary.work_summary:type_name -> openstorage.api.StorageRebalanceWorkSummary + 44, // 265: openstorage.api.StorageRebalanceWorkSummary.type:type_name -> openstorage.api.StorageRebalanceWorkSummary.Type + 45, // 266: openstorage.api.StorageRebalanceAudit.action:type_name -> openstorage.api.StorageRebalanceAudit.StorageRebalanceAction + 490, // 267: openstorage.api.StorageRebalanceAudit.start_time:type_name -> google.protobuf.Timestamp + 490, // 268: openstorage.api.StorageRebalanceAudit.end_time:type_name -> google.protobuf.Timestamp + 286, // 269: openstorage.api.StorageRebalanceAudit.work_summary:type_name -> openstorage.api.StorageRebalanceWorkSummary + 24, // 270: openstorage.api.StorageRebalanceAudit.state:type_name -> openstorage.api.StorageRebalanceJobState + 24, // 271: openstorage.api.SdkUpdateRebalanceJobRequest.state:type_name -> openstorage.api.StorageRebalanceJobState + 284, // 272: openstorage.api.SdkGetRebalanceJobStatusResponse.job:type_name -> openstorage.api.StorageRebalanceJob + 285, // 273: openstorage.api.SdkGetRebalanceJobStatusResponse.summary:type_name -> openstorage.api.StorageRebalanceSummary + 287, // 274: openstorage.api.SdkGetRebalanceJobStatusResponse.actions:type_name -> openstorage.api.StorageRebalanceAudit + 284, // 275: openstorage.api.SdkEnumerateRebalanceJobsResponse.jobs:type_name -> openstorage.api.StorageRebalanceJob + 133, // 276: openstorage.api.SdkNodeInspectResponse.node:type_name -> openstorage.api.StorageNode + 133, // 277: openstorage.api.SdkNodeInspectCurrentResponse.node:type_name -> openstorage.api.StorageNode + 133, // 278: openstorage.api.SdkNodeEnumerateWithFiltersResponse.nodes:type_name -> openstorage.api.StorageNode + 113, // 279: openstorage.api.SdkObjectstoreInspectResponse.objectstore_status:type_name -> openstorage.api.ObjectstoreInfo + 113, // 280: openstorage.api.SdkObjectstoreCreateResponse.objectstore_status:type_name -> openstorage.api.ObjectstoreInfo + 470, // 281: openstorage.api.SdkCloudBackupCreateRequest.labels:type_name -> openstorage.api.SdkCloudBackupCreateRequest.LabelsEntry + 471, // 282: openstorage.api.SdkCloudBackupGroupCreateRequest.labels:type_name -> openstorage.api.SdkCloudBackupGroupCreateRequest.LabelsEntry + 433, // 283: openstorage.api.SdkCloudBackupRestoreRequest.spec:type_name -> openstorage.api.RestoreVolumeSpec + 63, // 284: openstorage.api.SdkCloudBackupRestoreRequest.locator:type_name -> openstorage.api.VolumeLocator + 27, // 285: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.status_filter:type_name -> openstorage.api.SdkCloudBackupStatusType + 472, // 286: openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.metadata_filter:type_name -> openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest.MetadataFilterEntry + 490, // 287: openstorage.api.SdkCloudBackupInfo.timestamp:type_name -> google.protobuf.Timestamp + 473, // 288: openstorage.api.SdkCloudBackupInfo.metadata:type_name -> openstorage.api.SdkCloudBackupInfo.MetadataEntry + 27, // 289: openstorage.api.SdkCloudBackupInfo.status:type_name -> openstorage.api.SdkCloudBackupStatusType + 25, // 290: openstorage.api.SdkCloudBackupInfo.cluster_type:type_name -> openstorage.api.SdkCloudBackupClusterType + 322, // 291: openstorage.api.SdkCloudBackupEnumerateWithFiltersResponse.backups:type_name -> openstorage.api.SdkCloudBackupInfo + 26, // 292: openstorage.api.SdkCloudBackupStatus.optype:type_name -> openstorage.api.SdkCloudBackupOpType + 27, // 293: openstorage.api.SdkCloudBackupStatus.status:type_name -> openstorage.api.SdkCloudBackupStatusType + 490, // 294: openstorage.api.SdkCloudBackupStatus.start_time:type_name -> google.protobuf.Timestamp + 490, // 295: openstorage.api.SdkCloudBackupStatus.completed_time:type_name -> google.protobuf.Timestamp + 474, // 296: openstorage.api.SdkCloudBackupStatusResponse.statuses:type_name -> openstorage.api.SdkCloudBackupStatusResponse.StatusesEntry + 490, // 297: openstorage.api.SdkCloudBackupHistoryItem.timestamp:type_name -> google.protobuf.Timestamp + 27, // 298: openstorage.api.SdkCloudBackupHistoryItem.status:type_name -> openstorage.api.SdkCloudBackupStatusType + 329, // 299: openstorage.api.SdkCloudBackupHistoryResponse.history_list:type_name -> openstorage.api.SdkCloudBackupHistoryItem + 28, // 300: openstorage.api.SdkCloudBackupStateChangeRequest.requested_state:type_name -> openstorage.api.SdkCloudBackupRequestedState + 174, // 301: openstorage.api.SdkCloudBackupScheduleInfo.schedules:type_name -> openstorage.api.SdkSchedulePolicyInterval + 475, // 302: openstorage.api.SdkCloudBackupScheduleInfo.labels:type_name -> openstorage.api.SdkCloudBackupScheduleInfo.LabelsEntry + 334, // 303: openstorage.api.SdkCloudBackupSchedCreateRequest.cloud_sched_info:type_name -> openstorage.api.SdkCloudBackupScheduleInfo + 334, // 304: openstorage.api.SdkCloudBackupSchedUpdateRequest.cloud_sched_info:type_name -> openstorage.api.SdkCloudBackupScheduleInfo + 476, // 305: openstorage.api.SdkCloudBackupSchedEnumerateResponse.cloud_sched_list:type_name -> openstorage.api.SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry + 345, // 306: openstorage.api.SdkRole.rules:type_name -> openstorage.api.SdkRule + 346, // 307: openstorage.api.SdkRoleCreateRequest.role:type_name -> openstorage.api.SdkRole + 346, // 308: openstorage.api.SdkRoleCreateResponse.role:type_name -> openstorage.api.SdkRole + 346, // 309: openstorage.api.SdkRoleInspectResponse.role:type_name -> openstorage.api.SdkRole + 346, // 310: openstorage.api.SdkRoleUpdateRequest.role:type_name -> openstorage.api.SdkRole + 346, // 311: openstorage.api.SdkRoleUpdateResponse.role:type_name -> openstorage.api.SdkRole + 49, // 312: openstorage.api.SdkFilesystemTrimStartResponse.status:type_name -> openstorage.api.FilesystemTrim.FilesystemTrimStatus + 49, // 313: openstorage.api.SdkFilesystemTrimStatusResponse.status:type_name -> openstorage.api.FilesystemTrim.FilesystemTrimStatus + 477, // 314: openstorage.api.SdkAutoFSTrimStatusResponse.trim_status:type_name -> openstorage.api.SdkAutoFSTrimStatusResponse.TrimStatusEntry + 478, // 315: openstorage.api.SdkAutoFSTrimUsageResponse.usage:type_name -> openstorage.api.SdkAutoFSTrimUsageResponse.UsageEntry + 96, // 316: openstorage.api.SdkVolumeBytesUsedResponse.vol_util_info:type_name -> openstorage.api.VolumeBytesUsedByNode + 50, // 317: openstorage.api.SdkFilesystemCheckStartResponse.status:type_name -> openstorage.api.FilesystemCheck.FilesystemCheckStatus + 50, // 318: openstorage.api.SdkFilesystemCheckStatusResponse.status:type_name -> openstorage.api.FilesystemCheck.FilesystemCheckStatus + 12, // 319: openstorage.api.SdkFilesystemCheckStatusResponse.health_status:type_name -> openstorage.api.FilesystemHealthStatus + 385, // 320: openstorage.api.SdkIdentityCapabilitiesResponse.capabilities:type_name -> openstorage.api.SdkServiceCapability + 386, // 321: openstorage.api.SdkIdentityVersionResponse.sdk_version:type_name -> openstorage.api.SdkVersion + 387, // 322: openstorage.api.SdkIdentityVersionResponse.version:type_name -> openstorage.api.StorageVersion + 479, // 323: openstorage.api.SdkServiceCapability.service:type_name -> openstorage.api.SdkServiceCapability.OpenStorageService + 480, // 324: openstorage.api.StorageVersion.details:type_name -> openstorage.api.StorageVersion.DetailsEntry + 53, // 325: openstorage.api.CloudMigrateStartRequest.operation:type_name -> openstorage.api.CloudMigrate.OperationType + 481, // 326: openstorage.api.SdkCloudMigrateStartRequest.volume:type_name -> openstorage.api.SdkCloudMigrateStartRequest.MigrateVolume + 482, // 327: openstorage.api.SdkCloudMigrateStartRequest.volume_group:type_name -> openstorage.api.SdkCloudMigrateStartRequest.MigrateVolumeGroup + 483, // 328: openstorage.api.SdkCloudMigrateStartRequest.all_volumes:type_name -> openstorage.api.SdkCloudMigrateStartRequest.MigrateAllVolumes + 391, // 329: openstorage.api.SdkCloudMigrateStartResponse.result:type_name -> openstorage.api.CloudMigrateStartResponse + 393, // 330: openstorage.api.SdkCloudMigrateCancelRequest.request:type_name -> openstorage.api.CloudMigrateCancelRequest + 54, // 331: openstorage.api.CloudMigrateInfo.current_stage:type_name -> openstorage.api.CloudMigrate.Stage + 55, // 332: openstorage.api.CloudMigrateInfo.status:type_name -> openstorage.api.CloudMigrate.Status + 490, // 333: openstorage.api.CloudMigrateInfo.last_update:type_name -> google.protobuf.Timestamp + 490, // 334: openstorage.api.CloudMigrateInfo.start_time:type_name -> google.protobuf.Timestamp + 490, // 335: openstorage.api.CloudMigrateInfo.completed_time:type_name -> google.protobuf.Timestamp + 396, // 336: openstorage.api.CloudMigrateInfoList.list:type_name -> openstorage.api.CloudMigrateInfo + 399, // 337: openstorage.api.SdkCloudMigrateStatusRequest.request:type_name -> openstorage.api.CloudMigrateStatusRequest + 484, // 338: openstorage.api.CloudMigrateStatusResponse.info:type_name -> openstorage.api.CloudMigrateStatusResponse.InfoEntry + 400, // 339: openstorage.api.SdkCloudMigrateStatusResponse.result:type_name -> openstorage.api.CloudMigrateStatusResponse + 56, // 340: openstorage.api.ClusterPairCreateRequest.mode:type_name -> openstorage.api.ClusterPairMode.Mode + 403, // 341: openstorage.api.SdkClusterPairCreateRequest.request:type_name -> openstorage.api.ClusterPairCreateRequest + 404, // 342: openstorage.api.SdkClusterPairCreateResponse.result:type_name -> openstorage.api.ClusterPairCreateResponse + 56, // 343: openstorage.api.ClusterPairProcessRequest.mode:type_name -> openstorage.api.ClusterPairMode.Mode + 485, // 344: openstorage.api.ClusterPairProcessResponse.options:type_name -> openstorage.api.ClusterPairProcessResponse.OptionsEntry + 411, // 345: openstorage.api.SdkClusterPairGetTokenResponse.result:type_name -> openstorage.api.ClusterPairTokenGetResponse + 411, // 346: openstorage.api.SdkClusterPairResetTokenResponse.result:type_name -> openstorage.api.ClusterPairTokenGetResponse + 486, // 347: openstorage.api.ClusterPairInfo.options:type_name -> openstorage.api.ClusterPairInfo.OptionsEntry + 56, // 348: openstorage.api.ClusterPairInfo.mode:type_name -> openstorage.api.ClusterPairMode.Mode + 416, // 349: openstorage.api.ClusterPairGetResponse.pair_info:type_name -> openstorage.api.ClusterPairInfo + 418, // 350: openstorage.api.SdkClusterPairInspectResponse.result:type_name -> openstorage.api.ClusterPairGetResponse + 487, // 351: openstorage.api.ClusterPairsEnumerateResponse.pairs:type_name -> openstorage.api.ClusterPairsEnumerateResponse.PairsEntry + 421, // 352: openstorage.api.SdkClusterPairEnumerateResponse.result:type_name -> openstorage.api.ClusterPairsEnumerateResponse + 490, // 353: openstorage.api.Catalog.LastModified:type_name -> google.protobuf.Timestamp + 423, // 354: openstorage.api.Catalog.children:type_name -> openstorage.api.Catalog + 423, // 355: openstorage.api.CatalogResponse.root:type_name -> openstorage.api.Catalog + 424, // 356: openstorage.api.CatalogResponse.report:type_name -> openstorage.api.Report + 488, // 357: openstorage.api.LocateResponse.mounts:type_name -> openstorage.api.LocateResponse.MountsEntry + 489, // 358: openstorage.api.LocateResponse.dockerids:type_name -> openstorage.api.LocateResponse.DockeridsEntry + 428, // 359: openstorage.api.VolumePlacementStrategy.replica_affinity:type_name -> openstorage.api.ReplicaPlacementSpec + 428, // 360: openstorage.api.VolumePlacementStrategy.replica_anti_affinity:type_name -> openstorage.api.ReplicaPlacementSpec + 429, // 361: openstorage.api.VolumePlacementStrategy.volume_affinity:type_name -> openstorage.api.VolumePlacementSpec + 429, // 362: openstorage.api.VolumePlacementStrategy.volume_anti_affinity:type_name -> openstorage.api.VolumePlacementSpec + 29, // 363: openstorage.api.ReplicaPlacementSpec.enforcement:type_name -> openstorage.api.EnforcementType + 430, // 364: openstorage.api.ReplicaPlacementSpec.match_expressions:type_name -> openstorage.api.LabelSelectorRequirement + 29, // 365: openstorage.api.VolumePlacementSpec.enforcement:type_name -> openstorage.api.EnforcementType + 430, // 366: openstorage.api.VolumePlacementSpec.match_expressions:type_name -> openstorage.api.LabelSelectorRequirement + 57, // 367: openstorage.api.LabelSelectorRequirement.operator:type_name -> openstorage.api.LabelSelectorRequirement.Operator + 8, // 368: openstorage.api.RestoreVolumeSpec.cos:type_name -> openstorage.api.CosType + 9, // 369: openstorage.api.RestoreVolumeSpec.io_profile:type_name -> openstorage.api.IoProfile + 30, // 370: openstorage.api.RestoreVolumeSpec.shared:type_name -> openstorage.api.RestoreParamBoolType + 87, // 371: openstorage.api.RestoreVolumeSpec.replica_set:type_name -> openstorage.api.ReplicaSet + 431, // 372: openstorage.api.RestoreVolumeSpec.snapshot_schedule:type_name -> openstorage.api.RestoreVolSnashotSchedule + 30, // 373: openstorage.api.RestoreVolumeSpec.sticky:type_name -> openstorage.api.RestoreParamBoolType + 66, // 374: openstorage.api.RestoreVolumeSpec.group:type_name -> openstorage.api.Group + 30, // 375: openstorage.api.RestoreVolumeSpec.journal:type_name -> openstorage.api.RestoreParamBoolType + 30, // 376: openstorage.api.RestoreVolumeSpec.sharedv4:type_name -> openstorage.api.RestoreParamBoolType + 30, // 377: openstorage.api.RestoreVolumeSpec.nodiscard:type_name -> openstorage.api.RestoreParamBoolType + 67, // 378: openstorage.api.RestoreVolumeSpec.io_strategy:type_name -> openstorage.api.IoStrategy + 427, // 379: openstorage.api.RestoreVolumeSpec.placement_strategy:type_name -> openstorage.api.VolumePlacementStrategy + 432, // 380: openstorage.api.RestoreVolumeSpec.storage_policy:type_name -> openstorage.api.RestoreVolStoragePolicy + 89, // 381: openstorage.api.RestoreVolumeSpec.ownership:type_name -> openstorage.api.Ownership + 69, // 382: openstorage.api.RestoreVolumeSpec.export_spec:type_name -> openstorage.api.ExportSpec + 30, // 383: openstorage.api.RestoreVolumeSpec.fp_preference:type_name -> openstorage.api.RestoreParamBoolType + 79, // 384: openstorage.api.RestoreVolumeSpec.mount_options:type_name -> openstorage.api.MountOptions + 79, // 385: openstorage.api.RestoreVolumeSpec.sharedv4_mount_options:type_name -> openstorage.api.MountOptions + 30, // 386: openstorage.api.RestoreVolumeSpec.proxy_write:type_name -> openstorage.api.RestoreParamBoolType + 75, // 387: openstorage.api.RestoreVolumeSpec.proxy_spec:type_name -> openstorage.api.ProxySpec + 76, // 388: openstorage.api.RestoreVolumeSpec.sharedv4_service_spec:type_name -> openstorage.api.Sharedv4ServiceSpec + 78, // 389: openstorage.api.RestoreVolumeSpec.sharedv4_spec:type_name -> openstorage.api.Sharedv4Spec + 30, // 390: openstorage.api.RestoreVolumeSpec.auto_fstrim:type_name -> openstorage.api.RestoreParamBoolType + 83, // 391: openstorage.api.RestoreVolumeSpec.io_throttle:type_name -> openstorage.api.IoThrottle + 30, // 392: openstorage.api.RestoreVolumeSpec.readahead:type_name -> openstorage.api.RestoreParamBoolType + 425, // 393: openstorage.api.SdkVolumeCatalogResponse.catalog:type_name -> openstorage.api.CatalogResponse + 37, // 394: openstorage.api.Ownership.PublicAccessControl.type:type_name -> openstorage.api.Ownership.AccessType + 447, // 395: openstorage.api.Ownership.AccessControl.groups:type_name -> openstorage.api.Ownership.AccessControl.GroupsEntry + 448, // 396: openstorage.api.Ownership.AccessControl.collaborators:type_name -> openstorage.api.Ownership.AccessControl.CollaboratorsEntry + 445, // 397: openstorage.api.Ownership.AccessControl.public:type_name -> openstorage.api.Ownership.PublicAccessControl + 37, // 398: openstorage.api.Ownership.AccessControl.GroupsEntry.value:type_name -> openstorage.api.Ownership.AccessType + 37, // 399: openstorage.api.Ownership.AccessControl.CollaboratorsEntry.value:type_name -> openstorage.api.Ownership.AccessType + 121, // 400: openstorage.api.GroupSnapCreateResponse.SnapshotsEntry.value:type_name -> openstorage.api.SnapCreateResponse + 58, // 401: openstorage.api.StorageNode.DisksEntry.value:type_name -> openstorage.api.StorageResource + 324, // 402: openstorage.api.SdkCloudBackupStatusResponse.StatusesEntry.value:type_name -> openstorage.api.SdkCloudBackupStatus + 334, // 403: openstorage.api.SdkCloudBackupSchedEnumerateResponse.CloudSchedListEntry.value:type_name -> openstorage.api.SdkCloudBackupScheduleInfo + 49, // 404: openstorage.api.SdkAutoFSTrimStatusResponse.TrimStatusEntry.value:type_name -> openstorage.api.FilesystemTrim.FilesystemTrimStatus + 97, // 405: openstorage.api.SdkAutoFSTrimUsageResponse.UsageEntry.value:type_name -> openstorage.api.FstrimVolumeUsageInfo + 51, // 406: openstorage.api.SdkServiceCapability.OpenStorageService.type:type_name -> openstorage.api.SdkServiceCapability.OpenStorageService.Type + 397, // 407: openstorage.api.CloudMigrateStatusResponse.InfoEntry.value:type_name -> openstorage.api.CloudMigrateInfoList + 416, // 408: openstorage.api.ClusterPairsEnumerateResponse.PairsEntry.value:type_name -> openstorage.api.ClusterPairInfo + 108, // 409: openstorage.api.OpenStorageAlerts.EnumerateWithFilters:input_type -> openstorage.api.SdkAlertsEnumerateWithFiltersRequest + 110, // 410: openstorage.api.OpenStorageAlerts.Delete:input_type -> openstorage.api.SdkAlertsDeleteRequest + 347, // 411: openstorage.api.OpenStorageRole.Create:input_type -> openstorage.api.SdkRoleCreateRequest + 349, // 412: openstorage.api.OpenStorageRole.Enumerate:input_type -> openstorage.api.SdkRoleEnumerateRequest + 351, // 413: openstorage.api.OpenStorageRole.Inspect:input_type -> openstorage.api.SdkRoleInspectRequest + 353, // 414: openstorage.api.OpenStorageRole.Delete:input_type -> openstorage.api.SdkRoleDeleteRequest + 355, // 415: openstorage.api.OpenStorageRole.Update:input_type -> openstorage.api.SdkRoleUpdateRequest + 358, // 416: openstorage.api.OpenStorageFilesystemTrim.Start:input_type -> openstorage.api.SdkFilesystemTrimStartRequest + 360, // 417: openstorage.api.OpenStorageFilesystemTrim.Status:input_type -> openstorage.api.SdkFilesystemTrimStatusRequest + 362, // 418: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimStatus:input_type -> openstorage.api.SdkAutoFSTrimStatusRequest + 364, // 419: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimUsage:input_type -> openstorage.api.SdkAutoFSTrimUsageRequest + 366, // 420: openstorage.api.OpenStorageFilesystemTrim.Stop:input_type -> openstorage.api.SdkFilesystemTrimStopRequest + 370, // 421: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimPush:input_type -> openstorage.api.SdkAutoFSTrimPushRequest + 372, // 422: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimPop:input_type -> openstorage.api.SdkAutoFSTrimPopRequest + 375, // 423: openstorage.api.OpenStorageFilesystemCheck.Start:input_type -> openstorage.api.SdkFilesystemCheckStartRequest + 377, // 424: openstorage.api.OpenStorageFilesystemCheck.Status:input_type -> openstorage.api.SdkFilesystemCheckStatusRequest + 379, // 425: openstorage.api.OpenStorageFilesystemCheck.Stop:input_type -> openstorage.api.SdkFilesystemCheckStopRequest + 381, // 426: openstorage.api.OpenStorageIdentity.Capabilities:input_type -> openstorage.api.SdkIdentityCapabilitiesRequest + 383, // 427: openstorage.api.OpenStorageIdentity.Version:input_type -> openstorage.api.SdkIdentityVersionRequest + 251, // 428: openstorage.api.OpenStorageCluster.InspectCurrent:input_type -> openstorage.api.SdkClusterInspectCurrentRequest + 405, // 429: openstorage.api.OpenStorageClusterPair.Create:input_type -> openstorage.api.SdkClusterPairCreateRequest + 417, // 430: openstorage.api.OpenStorageClusterPair.Inspect:input_type -> openstorage.api.SdkClusterPairInspectRequest + 420, // 431: openstorage.api.OpenStorageClusterPair.Enumerate:input_type -> openstorage.api.SdkClusterPairEnumerateRequest + 412, // 432: openstorage.api.OpenStorageClusterPair.GetToken:input_type -> openstorage.api.SdkClusterPairGetTokenRequest + 414, // 433: openstorage.api.OpenStorageClusterPair.ResetToken:input_type -> openstorage.api.SdkClusterPairResetTokenRequest + 409, // 434: openstorage.api.OpenStorageClusterPair.Delete:input_type -> openstorage.api.SdkClusterPairDeleteRequest + 243, // 435: openstorage.api.OpenStorageClusterDomains.Enumerate:input_type -> openstorage.api.SdkClusterDomainsEnumerateRequest + 245, // 436: openstorage.api.OpenStorageClusterDomains.Inspect:input_type -> openstorage.api.SdkClusterDomainInspectRequest + 247, // 437: openstorage.api.OpenStorageClusterDomains.Activate:input_type -> openstorage.api.SdkClusterDomainActivateRequest + 249, // 438: openstorage.api.OpenStorageClusterDomains.Deactivate:input_type -> openstorage.api.SdkClusterDomainDeactivateRequest + 280, // 439: openstorage.api.OpenStoragePool.Resize:input_type -> openstorage.api.SdkStoragePoolResizeRequest + 282, // 440: openstorage.api.OpenStoragePool.Rebalance:input_type -> openstorage.api.SdkStorageRebalanceRequest + 288, // 441: openstorage.api.OpenStoragePool.UpdateRebalanceJobState:input_type -> openstorage.api.SdkUpdateRebalanceJobRequest + 290, // 442: openstorage.api.OpenStoragePool.GetRebalanceJobStatus:input_type -> openstorage.api.SdkGetRebalanceJobStatusRequest + 292, // 443: openstorage.api.OpenStoragePool.EnumerateRebalanceJobs:input_type -> openstorage.api.SdkEnumerateRebalanceJobsRequest + 262, // 444: openstorage.api.OpenStorageDiags.Collect:input_type -> openstorage.api.SdkDiagsCollectRequest + 268, // 445: openstorage.api.OpenStorageJob.Update:input_type -> openstorage.api.SdkUpdateJobRequest + 270, // 446: openstorage.api.OpenStorageJob.GetStatus:input_type -> openstorage.api.SdkGetJobStatusRequest + 266, // 447: openstorage.api.OpenStorageJob.Enumerate:input_type -> openstorage.api.SdkEnumerateJobsRequest + 253, // 448: openstorage.api.OpenStorageNode.Inspect:input_type -> openstorage.api.SdkNodeInspectRequest + 297, // 449: openstorage.api.OpenStorageNode.InspectCurrent:input_type -> openstorage.api.SdkNodeInspectCurrentRequest + 299, // 450: openstorage.api.OpenStorageNode.Enumerate:input_type -> openstorage.api.SdkNodeEnumerateRequest + 301, // 451: openstorage.api.OpenStorageNode.EnumerateWithFilters:input_type -> openstorage.api.SdkNodeEnumerateWithFiltersRequest + 239, // 452: openstorage.api.OpenStorageNode.VolumeUsageByNode:input_type -> openstorage.api.SdkNodeVolumeUsageByNodeRequest + 241, // 453: openstorage.api.OpenStorageNode.RelaxedReclaimPurge:input_type -> openstorage.api.SdkNodeRelaxedReclaimPurgeRequest + 257, // 454: openstorage.api.OpenStorageNode.DrainAttachments:input_type -> openstorage.api.SdkNodeDrainAttachmentsRequest + 276, // 455: openstorage.api.OpenStorageNode.CordonAttachments:input_type -> openstorage.api.SdkNodeCordonAttachmentsRequest + 278, // 456: openstorage.api.OpenStorageNode.UncordonAttachments:input_type -> openstorage.api.SdkNodeUncordonAttachmentsRequest + 368, // 457: openstorage.api.OpenStorageNode.VolumeBytesUsedByNode:input_type -> openstorage.api.SdkVolumeBytesUsedRequest + 135, // 458: openstorage.api.OpenStorageBucket.Create:input_type -> openstorage.api.BucketCreateRequest + 137, // 459: openstorage.api.OpenStorageBucket.Delete:input_type -> openstorage.api.BucketDeleteRequest + 139, // 460: openstorage.api.OpenStorageBucket.GrantAccess:input_type -> openstorage.api.BucketGrantAccessRequest + 141, // 461: openstorage.api.OpenStorageBucket.RevokeAccess:input_type -> openstorage.api.BucketRevokeAccessRequest + 209, // 462: openstorage.api.OpenStorageVolume.Create:input_type -> openstorage.api.SdkVolumeCreateRequest + 211, // 463: openstorage.api.OpenStorageVolume.Clone:input_type -> openstorage.api.SdkVolumeCloneRequest + 213, // 464: openstorage.api.OpenStorageVolume.Delete:input_type -> openstorage.api.SdkVolumeDeleteRequest + 215, // 465: openstorage.api.OpenStorageVolume.Inspect:input_type -> openstorage.api.SdkVolumeInspectRequest + 217, // 466: openstorage.api.OpenStorageVolume.InspectWithFilters:input_type -> openstorage.api.SdkVolumeInspectWithFiltersRequest + 219, // 467: openstorage.api.OpenStorageVolume.Update:input_type -> openstorage.api.SdkVolumeUpdateRequest + 221, // 468: openstorage.api.OpenStorageVolume.Stats:input_type -> openstorage.api.SdkVolumeStatsRequest + 223, // 469: openstorage.api.OpenStorageVolume.CapacityUsage:input_type -> openstorage.api.SdkVolumeCapacityUsageRequest + 225, // 470: openstorage.api.OpenStorageVolume.Enumerate:input_type -> openstorage.api.SdkVolumeEnumerateRequest + 227, // 471: openstorage.api.OpenStorageVolume.EnumerateWithFilters:input_type -> openstorage.api.SdkVolumeEnumerateWithFiltersRequest + 229, // 472: openstorage.api.OpenStorageVolume.SnapshotCreate:input_type -> openstorage.api.SdkVolumeSnapshotCreateRequest + 231, // 473: openstorage.api.OpenStorageVolume.SnapshotRestore:input_type -> openstorage.api.SdkVolumeSnapshotRestoreRequest + 233, // 474: openstorage.api.OpenStorageVolume.SnapshotEnumerate:input_type -> openstorage.api.SdkVolumeSnapshotEnumerateRequest + 235, // 475: openstorage.api.OpenStorageVolume.SnapshotEnumerateWithFilters:input_type -> openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersRequest + 237, // 476: openstorage.api.OpenStorageVolume.SnapshotScheduleUpdate:input_type -> openstorage.api.SdkVolumeSnapshotScheduleUpdateRequest + 434, // 477: openstorage.api.OpenStorageVolume.VolumeCatalog:input_type -> openstorage.api.SdkVolumeCatalogRequest + 204, // 478: openstorage.api.OpenStorageMountAttach.Attach:input_type -> openstorage.api.SdkVolumeAttachRequest + 207, // 479: openstorage.api.OpenStorageMountAttach.Detach:input_type -> openstorage.api.SdkVolumeDetachRequest + 199, // 480: openstorage.api.OpenStorageMountAttach.Mount:input_type -> openstorage.api.SdkVolumeMountRequest + 202, // 481: openstorage.api.OpenStorageMountAttach.Unmount:input_type -> openstorage.api.SdkVolumeUnmountRequest + 390, // 482: openstorage.api.OpenStorageMigrate.Start:input_type -> openstorage.api.SdkCloudMigrateStartRequest + 394, // 483: openstorage.api.OpenStorageMigrate.Cancel:input_type -> openstorage.api.SdkCloudMigrateCancelRequest + 398, // 484: openstorage.api.OpenStorageMigrate.Status:input_type -> openstorage.api.SdkCloudMigrateStatusRequest + 303, // 485: openstorage.api.OpenStorageObjectstore.Inspect:input_type -> openstorage.api.SdkObjectstoreInspectRequest + 305, // 486: openstorage.api.OpenStorageObjectstore.Create:input_type -> openstorage.api.SdkObjectstoreCreateRequest + 307, // 487: openstorage.api.OpenStorageObjectstore.Delete:input_type -> openstorage.api.SdkObjectstoreDeleteRequest + 309, // 488: openstorage.api.OpenStorageObjectstore.Update:input_type -> openstorage.api.SdkObjectstoreUpdateRequest + 176, // 489: openstorage.api.OpenStorageCredentials.Create:input_type -> openstorage.api.SdkCredentialCreateRequest + 178, // 490: openstorage.api.OpenStorageCredentials.Update:input_type -> openstorage.api.SdkCredentialUpdateRequest + 188, // 491: openstorage.api.OpenStorageCredentials.Enumerate:input_type -> openstorage.api.SdkCredentialEnumerateRequest + 190, // 492: openstorage.api.OpenStorageCredentials.Inspect:input_type -> openstorage.api.SdkCredentialInspectRequest + 192, // 493: openstorage.api.OpenStorageCredentials.Delete:input_type -> openstorage.api.SdkCredentialDeleteRequest + 194, // 494: openstorage.api.OpenStorageCredentials.Validate:input_type -> openstorage.api.SdkCredentialValidateRequest + 196, // 495: openstorage.api.OpenStorageCredentials.DeleteReferences:input_type -> openstorage.api.SdkCredentialDeleteReferencesRequest + 160, // 496: openstorage.api.OpenStorageSchedulePolicy.Create:input_type -> openstorage.api.SdkSchedulePolicyCreateRequest + 162, // 497: openstorage.api.OpenStorageSchedulePolicy.Update:input_type -> openstorage.api.SdkSchedulePolicyUpdateRequest + 164, // 498: openstorage.api.OpenStorageSchedulePolicy.Enumerate:input_type -> openstorage.api.SdkSchedulePolicyEnumerateRequest + 166, // 499: openstorage.api.OpenStorageSchedulePolicy.Inspect:input_type -> openstorage.api.SdkSchedulePolicyInspectRequest + 168, // 500: openstorage.api.OpenStorageSchedulePolicy.Delete:input_type -> openstorage.api.SdkSchedulePolicyDeleteRequest + 311, // 501: openstorage.api.OpenStorageCloudBackup.Create:input_type -> openstorage.api.SdkCloudBackupCreateRequest + 313, // 502: openstorage.api.OpenStorageCloudBackup.GroupCreate:input_type -> openstorage.api.SdkCloudBackupGroupCreateRequest + 315, // 503: openstorage.api.OpenStorageCloudBackup.Restore:input_type -> openstorage.api.SdkCloudBackupRestoreRequest + 317, // 504: openstorage.api.OpenStorageCloudBackup.Delete:input_type -> openstorage.api.SdkCloudBackupDeleteRequest + 319, // 505: openstorage.api.OpenStorageCloudBackup.DeleteAll:input_type -> openstorage.api.SdkCloudBackupDeleteAllRequest + 321, // 506: openstorage.api.OpenStorageCloudBackup.EnumerateWithFilters:input_type -> openstorage.api.SdkCloudBackupEnumerateWithFiltersRequest + 325, // 507: openstorage.api.OpenStorageCloudBackup.Status:input_type -> openstorage.api.SdkCloudBackupStatusRequest + 327, // 508: openstorage.api.OpenStorageCloudBackup.Catalog:input_type -> openstorage.api.SdkCloudBackupCatalogRequest + 330, // 509: openstorage.api.OpenStorageCloudBackup.History:input_type -> openstorage.api.SdkCloudBackupHistoryRequest + 332, // 510: openstorage.api.OpenStorageCloudBackup.StateChange:input_type -> openstorage.api.SdkCloudBackupStateChangeRequest + 335, // 511: openstorage.api.OpenStorageCloudBackup.SchedCreate:input_type -> openstorage.api.SdkCloudBackupSchedCreateRequest + 337, // 512: openstorage.api.OpenStorageCloudBackup.SchedUpdate:input_type -> openstorage.api.SdkCloudBackupSchedUpdateRequest + 339, // 513: openstorage.api.OpenStorageCloudBackup.SchedDelete:input_type -> openstorage.api.SdkCloudBackupSchedDeleteRequest + 341, // 514: openstorage.api.OpenStorageCloudBackup.SchedEnumerate:input_type -> openstorage.api.SdkCloudBackupSchedEnumerateRequest + 343, // 515: openstorage.api.OpenStorageCloudBackup.Size:input_type -> openstorage.api.SdkCloudBackupSizeRequest + 144, // 516: openstorage.api.OpenStoragePolicy.Create:input_type -> openstorage.api.SdkOpenStoragePolicyCreateRequest + 146, // 517: openstorage.api.OpenStoragePolicy.Enumerate:input_type -> openstorage.api.SdkOpenStoragePolicyEnumerateRequest + 148, // 518: openstorage.api.OpenStoragePolicy.Inspect:input_type -> openstorage.api.SdkOpenStoragePolicyInspectRequest + 152, // 519: openstorage.api.OpenStoragePolicy.Update:input_type -> openstorage.api.SdkOpenStoragePolicyUpdateRequest + 150, // 520: openstorage.api.OpenStoragePolicy.Delete:input_type -> openstorage.api.SdkOpenStoragePolicyDeleteRequest + 154, // 521: openstorage.api.OpenStoragePolicy.SetDefault:input_type -> openstorage.api.SdkOpenStoragePolicySetDefaultRequest + 158, // 522: openstorage.api.OpenStoragePolicy.DefaultInspect:input_type -> openstorage.api.SdkOpenStoragePolicyDefaultInspectRequest + 156, // 523: openstorage.api.OpenStoragePolicy.Release:input_type -> openstorage.api.SdkOpenStoragePolicyReleaseRequest + 109, // 524: openstorage.api.OpenStorageAlerts.EnumerateWithFilters:output_type -> openstorage.api.SdkAlertsEnumerateWithFiltersResponse + 111, // 525: openstorage.api.OpenStorageAlerts.Delete:output_type -> openstorage.api.SdkAlertsDeleteResponse + 348, // 526: openstorage.api.OpenStorageRole.Create:output_type -> openstorage.api.SdkRoleCreateResponse + 350, // 527: openstorage.api.OpenStorageRole.Enumerate:output_type -> openstorage.api.SdkRoleEnumerateResponse + 352, // 528: openstorage.api.OpenStorageRole.Inspect:output_type -> openstorage.api.SdkRoleInspectResponse + 354, // 529: openstorage.api.OpenStorageRole.Delete:output_type -> openstorage.api.SdkRoleDeleteResponse + 356, // 530: openstorage.api.OpenStorageRole.Update:output_type -> openstorage.api.SdkRoleUpdateResponse + 359, // 531: openstorage.api.OpenStorageFilesystemTrim.Start:output_type -> openstorage.api.SdkFilesystemTrimStartResponse + 361, // 532: openstorage.api.OpenStorageFilesystemTrim.Status:output_type -> openstorage.api.SdkFilesystemTrimStatusResponse + 363, // 533: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimStatus:output_type -> openstorage.api.SdkAutoFSTrimStatusResponse + 365, // 534: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimUsage:output_type -> openstorage.api.SdkAutoFSTrimUsageResponse + 369, // 535: openstorage.api.OpenStorageFilesystemTrim.Stop:output_type -> openstorage.api.SdkFilesystemTrimStopResponse + 371, // 536: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimPush:output_type -> openstorage.api.SdkAutoFSTrimPushResponse + 373, // 537: openstorage.api.OpenStorageFilesystemTrim.AutoFSTrimPop:output_type -> openstorage.api.SdkAutoFSTrimPopResponse + 376, // 538: openstorage.api.OpenStorageFilesystemCheck.Start:output_type -> openstorage.api.SdkFilesystemCheckStartResponse + 378, // 539: openstorage.api.OpenStorageFilesystemCheck.Status:output_type -> openstorage.api.SdkFilesystemCheckStatusResponse + 380, // 540: openstorage.api.OpenStorageFilesystemCheck.Stop:output_type -> openstorage.api.SdkFilesystemCheckStopResponse + 382, // 541: openstorage.api.OpenStorageIdentity.Capabilities:output_type -> openstorage.api.SdkIdentityCapabilitiesResponse + 384, // 542: openstorage.api.OpenStorageIdentity.Version:output_type -> openstorage.api.SdkIdentityVersionResponse + 252, // 543: openstorage.api.OpenStorageCluster.InspectCurrent:output_type -> openstorage.api.SdkClusterInspectCurrentResponse + 406, // 544: openstorage.api.OpenStorageClusterPair.Create:output_type -> openstorage.api.SdkClusterPairCreateResponse + 419, // 545: openstorage.api.OpenStorageClusterPair.Inspect:output_type -> openstorage.api.SdkClusterPairInspectResponse + 422, // 546: openstorage.api.OpenStorageClusterPair.Enumerate:output_type -> openstorage.api.SdkClusterPairEnumerateResponse + 413, // 547: openstorage.api.OpenStorageClusterPair.GetToken:output_type -> openstorage.api.SdkClusterPairGetTokenResponse + 415, // 548: openstorage.api.OpenStorageClusterPair.ResetToken:output_type -> openstorage.api.SdkClusterPairResetTokenResponse + 410, // 549: openstorage.api.OpenStorageClusterPair.Delete:output_type -> openstorage.api.SdkClusterPairDeleteResponse + 244, // 550: openstorage.api.OpenStorageClusterDomains.Enumerate:output_type -> openstorage.api.SdkClusterDomainsEnumerateResponse + 246, // 551: openstorage.api.OpenStorageClusterDomains.Inspect:output_type -> openstorage.api.SdkClusterDomainInspectResponse + 248, // 552: openstorage.api.OpenStorageClusterDomains.Activate:output_type -> openstorage.api.SdkClusterDomainActivateResponse + 250, // 553: openstorage.api.OpenStorageClusterDomains.Deactivate:output_type -> openstorage.api.SdkClusterDomainDeactivateResponse + 295, // 554: openstorage.api.OpenStoragePool.Resize:output_type -> openstorage.api.SdkStoragePoolResizeResponse + 283, // 555: openstorage.api.OpenStoragePool.Rebalance:output_type -> openstorage.api.SdkStorageRebalanceResponse + 289, // 556: openstorage.api.OpenStoragePool.UpdateRebalanceJobState:output_type -> openstorage.api.SdkUpdateRebalanceJobResponse + 291, // 557: openstorage.api.OpenStoragePool.GetRebalanceJobStatus:output_type -> openstorage.api.SdkGetRebalanceJobStatusResponse + 293, // 558: openstorage.api.OpenStoragePool.EnumerateRebalanceJobs:output_type -> openstorage.api.SdkEnumerateRebalanceJobsResponse + 263, // 559: openstorage.api.OpenStorageDiags.Collect:output_type -> openstorage.api.SdkDiagsCollectResponse + 269, // 560: openstorage.api.OpenStorageJob.Update:output_type -> openstorage.api.SdkUpdateJobResponse + 274, // 561: openstorage.api.OpenStorageJob.GetStatus:output_type -> openstorage.api.SdkGetJobStatusResponse + 267, // 562: openstorage.api.OpenStorageJob.Enumerate:output_type -> openstorage.api.SdkEnumerateJobsResponse + 296, // 563: openstorage.api.OpenStorageNode.Inspect:output_type -> openstorage.api.SdkNodeInspectResponse + 298, // 564: openstorage.api.OpenStorageNode.InspectCurrent:output_type -> openstorage.api.SdkNodeInspectCurrentResponse + 300, // 565: openstorage.api.OpenStorageNode.Enumerate:output_type -> openstorage.api.SdkNodeEnumerateResponse + 302, // 566: openstorage.api.OpenStorageNode.EnumerateWithFilters:output_type -> openstorage.api.SdkNodeEnumerateWithFiltersResponse + 240, // 567: openstorage.api.OpenStorageNode.VolumeUsageByNode:output_type -> openstorage.api.SdkNodeVolumeUsageByNodeResponse + 242, // 568: openstorage.api.OpenStorageNode.RelaxedReclaimPurge:output_type -> openstorage.api.SdkNodeRelaxedReclaimPurgeResponse + 255, // 569: openstorage.api.OpenStorageNode.DrainAttachments:output_type -> openstorage.api.SdkJobResponse + 277, // 570: openstorage.api.OpenStorageNode.CordonAttachments:output_type -> openstorage.api.SdkNodeCordonAttachmentsResponse + 279, // 571: openstorage.api.OpenStorageNode.UncordonAttachments:output_type -> openstorage.api.SdkNodeUncordonAttachmentsResponse + 367, // 572: openstorage.api.OpenStorageNode.VolumeBytesUsedByNode:output_type -> openstorage.api.SdkVolumeBytesUsedResponse + 136, // 573: openstorage.api.OpenStorageBucket.Create:output_type -> openstorage.api.BucketCreateResponse + 138, // 574: openstorage.api.OpenStorageBucket.Delete:output_type -> openstorage.api.BucketDeleteResponse + 140, // 575: openstorage.api.OpenStorageBucket.GrantAccess:output_type -> openstorage.api.BucketGrantAccessResponse + 142, // 576: openstorage.api.OpenStorageBucket.RevokeAccess:output_type -> openstorage.api.BucketRevokeAccessResponse + 210, // 577: openstorage.api.OpenStorageVolume.Create:output_type -> openstorage.api.SdkVolumeCreateResponse + 212, // 578: openstorage.api.OpenStorageVolume.Clone:output_type -> openstorage.api.SdkVolumeCloneResponse + 214, // 579: openstorage.api.OpenStorageVolume.Delete:output_type -> openstorage.api.SdkVolumeDeleteResponse + 216, // 580: openstorage.api.OpenStorageVolume.Inspect:output_type -> openstorage.api.SdkVolumeInspectResponse + 218, // 581: openstorage.api.OpenStorageVolume.InspectWithFilters:output_type -> openstorage.api.SdkVolumeInspectWithFiltersResponse + 220, // 582: openstorage.api.OpenStorageVolume.Update:output_type -> openstorage.api.SdkVolumeUpdateResponse + 222, // 583: openstorage.api.OpenStorageVolume.Stats:output_type -> openstorage.api.SdkVolumeStatsResponse + 224, // 584: openstorage.api.OpenStorageVolume.CapacityUsage:output_type -> openstorage.api.SdkVolumeCapacityUsageResponse + 226, // 585: openstorage.api.OpenStorageVolume.Enumerate:output_type -> openstorage.api.SdkVolumeEnumerateResponse + 228, // 586: openstorage.api.OpenStorageVolume.EnumerateWithFilters:output_type -> openstorage.api.SdkVolumeEnumerateWithFiltersResponse + 230, // 587: openstorage.api.OpenStorageVolume.SnapshotCreate:output_type -> openstorage.api.SdkVolumeSnapshotCreateResponse + 232, // 588: openstorage.api.OpenStorageVolume.SnapshotRestore:output_type -> openstorage.api.SdkVolumeSnapshotRestoreResponse + 234, // 589: openstorage.api.OpenStorageVolume.SnapshotEnumerate:output_type -> openstorage.api.SdkVolumeSnapshotEnumerateResponse + 236, // 590: openstorage.api.OpenStorageVolume.SnapshotEnumerateWithFilters:output_type -> openstorage.api.SdkVolumeSnapshotEnumerateWithFiltersResponse + 238, // 591: openstorage.api.OpenStorageVolume.SnapshotScheduleUpdate:output_type -> openstorage.api.SdkVolumeSnapshotScheduleUpdateResponse + 435, // 592: openstorage.api.OpenStorageVolume.VolumeCatalog:output_type -> openstorage.api.SdkVolumeCatalogResponse + 205, // 593: openstorage.api.OpenStorageMountAttach.Attach:output_type -> openstorage.api.SdkVolumeAttachResponse + 208, // 594: openstorage.api.OpenStorageMountAttach.Detach:output_type -> openstorage.api.SdkVolumeDetachResponse + 200, // 595: openstorage.api.OpenStorageMountAttach.Mount:output_type -> openstorage.api.SdkVolumeMountResponse + 203, // 596: openstorage.api.OpenStorageMountAttach.Unmount:output_type -> openstorage.api.SdkVolumeUnmountResponse + 392, // 597: openstorage.api.OpenStorageMigrate.Start:output_type -> openstorage.api.SdkCloudMigrateStartResponse + 395, // 598: openstorage.api.OpenStorageMigrate.Cancel:output_type -> openstorage.api.SdkCloudMigrateCancelResponse + 401, // 599: openstorage.api.OpenStorageMigrate.Status:output_type -> openstorage.api.SdkCloudMigrateStatusResponse + 304, // 600: openstorage.api.OpenStorageObjectstore.Inspect:output_type -> openstorage.api.SdkObjectstoreInspectResponse + 306, // 601: openstorage.api.OpenStorageObjectstore.Create:output_type -> openstorage.api.SdkObjectstoreCreateResponse + 308, // 602: openstorage.api.OpenStorageObjectstore.Delete:output_type -> openstorage.api.SdkObjectstoreDeleteResponse + 310, // 603: openstorage.api.OpenStorageObjectstore.Update:output_type -> openstorage.api.SdkObjectstoreUpdateResponse + 177, // 604: openstorage.api.OpenStorageCredentials.Create:output_type -> openstorage.api.SdkCredentialCreateResponse + 179, // 605: openstorage.api.OpenStorageCredentials.Update:output_type -> openstorage.api.SdkCredentialUpdateResponse + 189, // 606: openstorage.api.OpenStorageCredentials.Enumerate:output_type -> openstorage.api.SdkCredentialEnumerateResponse + 191, // 607: openstorage.api.OpenStorageCredentials.Inspect:output_type -> openstorage.api.SdkCredentialInspectResponse + 193, // 608: openstorage.api.OpenStorageCredentials.Delete:output_type -> openstorage.api.SdkCredentialDeleteResponse + 195, // 609: openstorage.api.OpenStorageCredentials.Validate:output_type -> openstorage.api.SdkCredentialValidateResponse + 197, // 610: openstorage.api.OpenStorageCredentials.DeleteReferences:output_type -> openstorage.api.SdkCredentialDeleteReferencesResponse + 161, // 611: openstorage.api.OpenStorageSchedulePolicy.Create:output_type -> openstorage.api.SdkSchedulePolicyCreateResponse + 163, // 612: openstorage.api.OpenStorageSchedulePolicy.Update:output_type -> openstorage.api.SdkSchedulePolicyUpdateResponse + 165, // 613: openstorage.api.OpenStorageSchedulePolicy.Enumerate:output_type -> openstorage.api.SdkSchedulePolicyEnumerateResponse + 167, // 614: openstorage.api.OpenStorageSchedulePolicy.Inspect:output_type -> openstorage.api.SdkSchedulePolicyInspectResponse + 169, // 615: openstorage.api.OpenStorageSchedulePolicy.Delete:output_type -> openstorage.api.SdkSchedulePolicyDeleteResponse + 312, // 616: openstorage.api.OpenStorageCloudBackup.Create:output_type -> openstorage.api.SdkCloudBackupCreateResponse + 314, // 617: openstorage.api.OpenStorageCloudBackup.GroupCreate:output_type -> openstorage.api.SdkCloudBackupGroupCreateResponse + 316, // 618: openstorage.api.OpenStorageCloudBackup.Restore:output_type -> openstorage.api.SdkCloudBackupRestoreResponse + 318, // 619: openstorage.api.OpenStorageCloudBackup.Delete:output_type -> openstorage.api.SdkCloudBackupDeleteResponse + 320, // 620: openstorage.api.OpenStorageCloudBackup.DeleteAll:output_type -> openstorage.api.SdkCloudBackupDeleteAllResponse + 323, // 621: openstorage.api.OpenStorageCloudBackup.EnumerateWithFilters:output_type -> openstorage.api.SdkCloudBackupEnumerateWithFiltersResponse + 326, // 622: openstorage.api.OpenStorageCloudBackup.Status:output_type -> openstorage.api.SdkCloudBackupStatusResponse + 328, // 623: openstorage.api.OpenStorageCloudBackup.Catalog:output_type -> openstorage.api.SdkCloudBackupCatalogResponse + 331, // 624: openstorage.api.OpenStorageCloudBackup.History:output_type -> openstorage.api.SdkCloudBackupHistoryResponse + 333, // 625: openstorage.api.OpenStorageCloudBackup.StateChange:output_type -> openstorage.api.SdkCloudBackupStateChangeResponse + 336, // 626: openstorage.api.OpenStorageCloudBackup.SchedCreate:output_type -> openstorage.api.SdkCloudBackupSchedCreateResponse + 338, // 627: openstorage.api.OpenStorageCloudBackup.SchedUpdate:output_type -> openstorage.api.SdkCloudBackupSchedUpdateResponse + 340, // 628: openstorage.api.OpenStorageCloudBackup.SchedDelete:output_type -> openstorage.api.SdkCloudBackupSchedDeleteResponse + 342, // 629: openstorage.api.OpenStorageCloudBackup.SchedEnumerate:output_type -> openstorage.api.SdkCloudBackupSchedEnumerateResponse + 344, // 630: openstorage.api.OpenStorageCloudBackup.Size:output_type -> openstorage.api.SdkCloudBackupSizeResponse + 145, // 631: openstorage.api.OpenStoragePolicy.Create:output_type -> openstorage.api.SdkOpenStoragePolicyCreateResponse + 147, // 632: openstorage.api.OpenStoragePolicy.Enumerate:output_type -> openstorage.api.SdkOpenStoragePolicyEnumerateResponse + 149, // 633: openstorage.api.OpenStoragePolicy.Inspect:output_type -> openstorage.api.SdkOpenStoragePolicyInspectResponse + 153, // 634: openstorage.api.OpenStoragePolicy.Update:output_type -> openstorage.api.SdkOpenStoragePolicyUpdateResponse + 151, // 635: openstorage.api.OpenStoragePolicy.Delete:output_type -> openstorage.api.SdkOpenStoragePolicyDeleteResponse + 155, // 636: openstorage.api.OpenStoragePolicy.SetDefault:output_type -> openstorage.api.SdkOpenStoragePolicySetDefaultResponse + 159, // 637: openstorage.api.OpenStoragePolicy.DefaultInspect:output_type -> openstorage.api.SdkOpenStoragePolicyDefaultInspectResponse + 157, // 638: openstorage.api.OpenStoragePolicy.Release:output_type -> openstorage.api.SdkOpenStoragePolicyReleaseResponse + 524, // [524:639] is the sub-list for method output_type + 409, // [409:524] is the sub-list for method input_type + 409, // [409:409] is the sub-list for extension type_name + 409, // [409:409] is the sub-list for extension extendee + 0, // [0:409] is the sub-list for field type_name } func init() { file_api_api_proto_init() } @@ -35601,7 +36642,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FstrimVolumeUsageInfo); i { + switch v := v.(*VolumeBytesUsed); i { case 0: return &v.state case 1: @@ -35613,7 +36654,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelaxedReclaimPurge); i { + switch v := v.(*VolumeBytesUsedByNode); i { case 0: return &v.state case 1: @@ -35625,7 +36666,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkStoragePolicy); i { + switch v := v.(*FstrimVolumeUsageInfo); i { case 0: return &v.state case 1: @@ -35637,7 +36678,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Alert); i { + switch v := v.(*RelaxedReclaimPurge); i { case 0: return &v.state case 1: @@ -35649,7 +36690,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsTimeSpan); i { + switch v := v.(*SdkStoragePolicy); i { case 0: return &v.state case 1: @@ -35661,7 +36702,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsCountSpan); i { + switch v := v.(*Alert); i { case 0: return &v.state case 1: @@ -35673,7 +36714,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsOption); i { + switch v := v.(*SdkAlertsTimeSpan); i { case 0: return &v.state case 1: @@ -35685,7 +36726,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsResourceTypeQuery); i { + switch v := v.(*SdkAlertsCountSpan); i { case 0: return &v.state case 1: @@ -35697,7 +36738,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsAlertTypeQuery); i { + switch v := v.(*SdkAlertsOption); i { case 0: return &v.state case 1: @@ -35709,7 +36750,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsResourceIdQuery); i { + switch v := v.(*SdkAlertsResourceTypeQuery); i { case 0: return &v.state case 1: @@ -35721,7 +36762,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsQuery); i { + switch v := v.(*SdkAlertsAlertTypeQuery); i { case 0: return &v.state case 1: @@ -35733,7 +36774,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsEnumerateWithFiltersRequest); i { + switch v := v.(*SdkAlertsResourceIdQuery); i { case 0: return &v.state case 1: @@ -35745,7 +36786,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsEnumerateWithFiltersResponse); i { + switch v := v.(*SdkAlertsQuery); i { case 0: return &v.state case 1: @@ -35757,7 +36798,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsDeleteRequest); i { + switch v := v.(*SdkAlertsEnumerateWithFiltersRequest); i { case 0: return &v.state case 1: @@ -35769,7 +36810,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAlertsDeleteResponse); i { + switch v := v.(*SdkAlertsEnumerateWithFiltersResponse); i { case 0: return &v.state case 1: @@ -35781,7 +36822,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Alerts); i { + switch v := v.(*SdkAlertsDeleteRequest); i { case 0: return &v.state case 1: @@ -35793,7 +36834,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ObjectstoreInfo); i { + switch v := v.(*SdkAlertsDeleteResponse); i { case 0: return &v.state case 1: @@ -35805,7 +36846,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeCreateRequest); i { + switch v := v.(*Alerts); i { case 0: return &v.state case 1: @@ -35817,7 +36858,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeResponse); i { + switch v := v.(*ObjectstoreInfo); i { case 0: return &v.state case 1: @@ -35829,7 +36870,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeCreateResponse); i { + switch v := v.(*VolumeCreateRequest); i { case 0: return &v.state case 1: @@ -35841,7 +36882,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeStateAction); i { + switch v := v.(*VolumeResponse); i { case 0: return &v.state case 1: @@ -35853,7 +36894,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeSetRequest); i { + switch v := v.(*VolumeCreateResponse); i { case 0: return &v.state case 1: @@ -35865,7 +36906,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeSetResponse); i { + switch v := v.(*VolumeStateAction); i { case 0: return &v.state case 1: @@ -35877,7 +36918,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SnapCreateRequest); i { + switch v := v.(*VolumeSetRequest); i { case 0: return &v.state case 1: @@ -35889,7 +36930,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SnapCreateResponse); i { + switch v := v.(*VolumeSetResponse); i { case 0: return &v.state case 1: @@ -35901,7 +36942,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeInfo); i { + switch v := v.(*SnapCreateRequest); i { case 0: return &v.state case 1: @@ -35913,7 +36954,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeConsumer); i { + switch v := v.(*SnapCreateResponse); i { case 0: return &v.state case 1: @@ -35925,7 +36966,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeServiceRequest); i { + switch v := v.(*VolumeInfo); i { case 0: return &v.state case 1: @@ -35937,7 +36978,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeServiceInstanceResponse); i { + switch v := v.(*VolumeConsumer); i { case 0: return &v.state case 1: @@ -35949,7 +36990,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeServiceResponse); i { + switch v := v.(*VolumeServiceRequest); i { case 0: return &v.state case 1: @@ -35961,7 +37002,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GraphDriverChanges); i { + switch v := v.(*VolumeServiceInstanceResponse); i { case 0: return &v.state case 1: @@ -35973,7 +37014,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterResponse); i { + switch v := v.(*VolumeServiceResponse); i { case 0: return &v.state case 1: @@ -35985,7 +37026,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActiveRequest); i { + switch v := v.(*GraphDriverChanges); i { case 0: return &v.state case 1: @@ -35997,7 +37038,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActiveRequests); i { + switch v := v.(*ClusterResponse); i { case 0: return &v.state case 1: @@ -36009,7 +37050,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupSnapCreateRequest); i { + switch v := v.(*ActiveRequest); i { case 0: return &v.state case 1: @@ -36021,7 +37062,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupSnapCreateResponse); i { + switch v := v.(*ActiveRequests); i { case 0: return &v.state case 1: @@ -36033,7 +37074,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageNode); i { + switch v := v.(*GroupSnapCreateRequest); i { case 0: return &v.state case 1: @@ -36045,7 +37086,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageCluster); i { + switch v := v.(*GroupSnapCreateResponse); i { case 0: return &v.state case 1: @@ -36057,7 +37098,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketCreateRequest); i { + switch v := v.(*StorageNode); i { case 0: return &v.state case 1: @@ -36069,7 +37110,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketCreateResponse); i { + switch v := v.(*StorageCluster); i { case 0: return &v.state case 1: @@ -36081,7 +37122,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketDeleteRequest); i { + switch v := v.(*BucketCreateRequest); i { case 0: return &v.state case 1: @@ -36093,7 +37134,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketDeleteResponse); i { + switch v := v.(*BucketCreateResponse); i { case 0: return &v.state case 1: @@ -36105,7 +37146,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketGrantAccessRequest); i { + switch v := v.(*BucketDeleteRequest); i { case 0: return &v.state case 1: @@ -36117,7 +37158,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketGrantAccessResponse); i { + switch v := v.(*BucketDeleteResponse); i { case 0: return &v.state case 1: @@ -36129,7 +37170,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketRevokeAccessRequest); i { + switch v := v.(*BucketGrantAccessRequest); i { case 0: return &v.state case 1: @@ -36141,7 +37182,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketRevokeAccessResponse); i { + switch v := v.(*BucketGrantAccessResponse); i { case 0: return &v.state case 1: @@ -36153,7 +37194,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BucketAccessCredentials); i { + switch v := v.(*BucketRevokeAccessRequest); i { case 0: return &v.state case 1: @@ -36165,7 +37206,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyCreateRequest); i { + switch v := v.(*BucketRevokeAccessResponse); i { case 0: return &v.state case 1: @@ -36177,7 +37218,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyCreateResponse); i { + switch v := v.(*BucketAccessCredentials); i { case 0: return &v.state case 1: @@ -36189,7 +37230,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyEnumerateRequest); i { + switch v := v.(*SdkOpenStoragePolicyCreateRequest); i { case 0: return &v.state case 1: @@ -36201,7 +37242,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyEnumerateResponse); i { + switch v := v.(*SdkOpenStoragePolicyCreateResponse); i { case 0: return &v.state case 1: @@ -36213,7 +37254,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyInspectRequest); i { + switch v := v.(*SdkOpenStoragePolicyEnumerateRequest); i { case 0: return &v.state case 1: @@ -36225,7 +37266,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyInspectResponse); i { + switch v := v.(*SdkOpenStoragePolicyEnumerateResponse); i { case 0: return &v.state case 1: @@ -36237,7 +37278,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyDeleteRequest); i { + switch v := v.(*SdkOpenStoragePolicyInspectRequest); i { case 0: return &v.state case 1: @@ -36249,7 +37290,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyDeleteResponse); i { + switch v := v.(*SdkOpenStoragePolicyInspectResponse); i { case 0: return &v.state case 1: @@ -36261,7 +37302,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyUpdateRequest); i { + switch v := v.(*SdkOpenStoragePolicyDeleteRequest); i { case 0: return &v.state case 1: @@ -36273,7 +37314,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyUpdateResponse); i { + switch v := v.(*SdkOpenStoragePolicyDeleteResponse); i { case 0: return &v.state case 1: @@ -36285,7 +37326,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicySetDefaultRequest); i { + switch v := v.(*SdkOpenStoragePolicyUpdateRequest); i { case 0: return &v.state case 1: @@ -36297,7 +37338,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicySetDefaultResponse); i { + switch v := v.(*SdkOpenStoragePolicyUpdateResponse); i { case 0: return &v.state case 1: @@ -36309,7 +37350,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyReleaseRequest); i { + switch v := v.(*SdkOpenStoragePolicySetDefaultRequest); i { case 0: return &v.state case 1: @@ -36321,7 +37362,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyReleaseResponse); i { + switch v := v.(*SdkOpenStoragePolicySetDefaultResponse); i { case 0: return &v.state case 1: @@ -36333,7 +37374,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyDefaultInspectRequest); i { + switch v := v.(*SdkOpenStoragePolicyReleaseRequest); i { case 0: return &v.state case 1: @@ -36345,7 +37386,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkOpenStoragePolicyDefaultInspectResponse); i { + switch v := v.(*SdkOpenStoragePolicyReleaseResponse); i { case 0: return &v.state case 1: @@ -36357,7 +37398,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyCreateRequest); i { + switch v := v.(*SdkOpenStoragePolicyDefaultInspectRequest); i { case 0: return &v.state case 1: @@ -36369,7 +37410,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyCreateResponse); i { + switch v := v.(*SdkOpenStoragePolicyDefaultInspectResponse); i { case 0: return &v.state case 1: @@ -36381,7 +37422,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyUpdateRequest); i { + switch v := v.(*SdkSchedulePolicyCreateRequest); i { case 0: return &v.state case 1: @@ -36393,7 +37434,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyUpdateResponse); i { + switch v := v.(*SdkSchedulePolicyCreateResponse); i { case 0: return &v.state case 1: @@ -36405,7 +37446,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyEnumerateRequest); i { + switch v := v.(*SdkSchedulePolicyUpdateRequest); i { case 0: return &v.state case 1: @@ -36417,7 +37458,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyEnumerateResponse); i { + switch v := v.(*SdkSchedulePolicyUpdateResponse); i { case 0: return &v.state case 1: @@ -36429,7 +37470,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyInspectRequest); i { + switch v := v.(*SdkSchedulePolicyEnumerateRequest); i { case 0: return &v.state case 1: @@ -36441,7 +37482,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyInspectResponse); i { + switch v := v.(*SdkSchedulePolicyEnumerateResponse); i { case 0: return &v.state case 1: @@ -36453,7 +37494,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyDeleteRequest); i { + switch v := v.(*SdkSchedulePolicyInspectRequest); i { case 0: return &v.state case 1: @@ -36465,7 +37506,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyDeleteResponse); i { + switch v := v.(*SdkSchedulePolicyInspectResponse); i { case 0: return &v.state case 1: @@ -36477,7 +37518,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyIntervalDaily); i { + switch v := v.(*SdkSchedulePolicyDeleteRequest); i { case 0: return &v.state case 1: @@ -36489,7 +37530,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyIntervalWeekly); i { + switch v := v.(*SdkSchedulePolicyDeleteResponse); i { case 0: return &v.state case 1: @@ -36501,7 +37542,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyIntervalMonthly); i { + switch v := v.(*SdkSchedulePolicyIntervalDaily); i { case 0: return &v.state case 1: @@ -36513,7 +37554,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyIntervalPeriodic); i { + switch v := v.(*SdkSchedulePolicyIntervalWeekly); i { case 0: return &v.state case 1: @@ -36525,7 +37566,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicyInterval); i { + switch v := v.(*SdkSchedulePolicyIntervalMonthly); i { case 0: return &v.state case 1: @@ -36537,7 +37578,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkSchedulePolicy); i { + switch v := v.(*SdkSchedulePolicyIntervalPeriodic); i { case 0: return &v.state case 1: @@ -36549,7 +37590,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialCreateRequest); i { + switch v := v.(*SdkSchedulePolicyInterval); i { case 0: return &v.state case 1: @@ -36561,7 +37602,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialCreateResponse); i { + switch v := v.(*SdkSchedulePolicy); i { case 0: return &v.state case 1: @@ -36573,7 +37614,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialUpdateRequest); i { + switch v := v.(*SdkCredentialCreateRequest); i { case 0: return &v.state case 1: @@ -36585,7 +37626,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialUpdateResponse); i { + switch v := v.(*SdkCredentialCreateResponse); i { case 0: return &v.state case 1: @@ -36597,7 +37638,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAwsCredentialRequest); i { + switch v := v.(*SdkCredentialUpdateRequest); i { case 0: return &v.state case 1: @@ -36609,7 +37650,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAzureCredentialRequest); i { + switch v := v.(*SdkCredentialUpdateResponse); i { case 0: return &v.state case 1: @@ -36621,7 +37662,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkGoogleCredentialRequest); i { + switch v := v.(*SdkAwsCredentialRequest); i { case 0: return &v.state case 1: @@ -36633,7 +37674,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAwsCredentialResponse); i { + switch v := v.(*SdkAzureCredentialRequest); i { case 0: return &v.state case 1: @@ -36645,7 +37686,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkAzureCredentialResponse); i { + switch v := v.(*SdkGoogleCredentialRequest); i { case 0: return &v.state case 1: @@ -36657,7 +37698,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkGoogleCredentialResponse); i { + switch v := v.(*SdkNfsCredentialRequest); i { case 0: return &v.state case 1: @@ -36669,7 +37710,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialEnumerateRequest); i { + switch v := v.(*SdkAwsCredentialResponse); i { case 0: return &v.state case 1: @@ -36681,7 +37722,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialEnumerateResponse); i { + switch v := v.(*SdkAzureCredentialResponse); i { case 0: return &v.state case 1: @@ -36693,7 +37734,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialInspectRequest); i { + switch v := v.(*SdkGoogleCredentialResponse); i { case 0: return &v.state case 1: @@ -36705,7 +37746,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialInspectResponse); i { + switch v := v.(*SdkNfsCredentialResponse); i { case 0: return &v.state case 1: @@ -36717,7 +37758,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialDeleteRequest); i { + switch v := v.(*SdkCredentialEnumerateRequest); i { case 0: return &v.state case 1: @@ -36729,7 +37770,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialDeleteResponse); i { + switch v := v.(*SdkCredentialEnumerateResponse); i { case 0: return &v.state case 1: @@ -36741,7 +37782,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialValidateRequest); i { + switch v := v.(*SdkCredentialInspectRequest); i { case 0: return &v.state case 1: @@ -36753,7 +37794,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialValidateResponse); i { + switch v := v.(*SdkCredentialInspectResponse); i { case 0: return &v.state case 1: @@ -36765,7 +37806,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialDeleteReferencesRequest); i { + switch v := v.(*SdkCredentialDeleteRequest); i { case 0: return &v.state case 1: @@ -36777,7 +37818,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkCredentialDeleteReferencesResponse); i { + switch v := v.(*SdkCredentialDeleteResponse); i { case 0: return &v.state case 1: @@ -36789,7 +37830,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeAttachOptions); i { + switch v := v.(*SdkCredentialValidateRequest); i { case 0: return &v.state case 1: @@ -36801,7 +37842,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeMountRequest); i { + switch v := v.(*SdkCredentialValidateResponse); i { case 0: return &v.state case 1: @@ -36813,7 +37854,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeMountResponse); i { + switch v := v.(*SdkCredentialDeleteReferencesRequest); i { case 0: return &v.state case 1: @@ -36825,7 +37866,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeUnmountOptions); i { + switch v := v.(*SdkCredentialDeleteReferencesResponse); i { case 0: return &v.state case 1: @@ -36837,7 +37878,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeUnmountRequest); i { + switch v := v.(*SdkVolumeAttachOptions); i { case 0: return &v.state case 1: @@ -36849,7 +37890,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeUnmountResponse); i { + switch v := v.(*SdkVolumeMountRequest); i { case 0: return &v.state case 1: @@ -36861,7 +37902,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeAttachRequest); i { + switch v := v.(*SdkVolumeMountResponse); i { case 0: return &v.state case 1: @@ -36873,7 +37914,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeAttachResponse); i { + switch v := v.(*SdkVolumeUnmountOptions); i { case 0: return &v.state case 1: @@ -36885,7 +37926,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeDetachOptions); i { + switch v := v.(*SdkVolumeUnmountRequest); i { case 0: return &v.state case 1: @@ -36897,7 +37938,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeDetachRequest); i { + switch v := v.(*SdkVolumeUnmountResponse); i { case 0: return &v.state case 1: @@ -36909,7 +37950,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeDetachResponse); i { + switch v := v.(*SdkVolumeAttachRequest); i { case 0: return &v.state case 1: @@ -36921,7 +37962,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeCreateRequest); i { + switch v := v.(*SdkVolumeAttachResponse); i { case 0: return &v.state case 1: @@ -36933,7 +37974,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeCreateResponse); i { + switch v := v.(*SdkVolumeDetachOptions); i { case 0: return &v.state case 1: @@ -36945,7 +37986,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeCloneRequest); i { + switch v := v.(*SdkVolumeDetachRequest); i { case 0: return &v.state case 1: @@ -36957,7 +37998,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeCloneResponse); i { + switch v := v.(*SdkVolumeDetachResponse); i { case 0: return &v.state case 1: @@ -36969,7 +38010,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeDeleteRequest); i { + switch v := v.(*SdkVolumeCreateRequest); i { case 0: return &v.state case 1: @@ -36981,7 +38022,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeDeleteResponse); i { + switch v := v.(*SdkVolumeCreateResponse); i { case 0: return &v.state case 1: @@ -36993,7 +38034,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeInspectRequest); i { + switch v := v.(*SdkVolumeCloneRequest); i { case 0: return &v.state case 1: @@ -37005,7 +38046,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeInspectResponse); i { + switch v := v.(*SdkVolumeCloneResponse); i { case 0: return &v.state case 1: @@ -37017,7 +38058,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeInspectWithFiltersRequest); i { + switch v := v.(*SdkVolumeDeleteRequest); i { case 0: return &v.state case 1: @@ -37029,7 +38070,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeInspectWithFiltersResponse); i { + switch v := v.(*SdkVolumeDeleteResponse); i { case 0: return &v.state case 1: @@ -37041,7 +38082,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeUpdateRequest); i { + switch v := v.(*SdkVolumeInspectRequest); i { case 0: return &v.state case 1: @@ -37053,7 +38094,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeUpdateResponse); i { + switch v := v.(*SdkVolumeInspectResponse); i { case 0: return &v.state case 1: @@ -37065,7 +38106,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeStatsRequest); i { + switch v := v.(*SdkVolumeInspectWithFiltersRequest); i { case 0: return &v.state case 1: @@ -37077,7 +38118,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeStatsResponse); i { + switch v := v.(*SdkVolumeInspectWithFiltersResponse); i { case 0: return &v.state case 1: @@ -37089,7 +38130,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeCapacityUsageRequest); i { + switch v := v.(*SdkVolumeUpdateRequest); i { case 0: return &v.state case 1: @@ -37101,7 +38142,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeCapacityUsageResponse); i { + switch v := v.(*SdkVolumeUpdateResponse); i { case 0: return &v.state case 1: @@ -37113,7 +38154,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeEnumerateRequest); i { + switch v := v.(*SdkVolumeStatsRequest); i { case 0: return &v.state case 1: @@ -37125,7 +38166,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeEnumerateResponse); i { + switch v := v.(*SdkVolumeStatsResponse); i { case 0: return &v.state case 1: @@ -37137,7 +38178,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeEnumerateWithFiltersRequest); i { + switch v := v.(*SdkVolumeCapacityUsageRequest); i { case 0: return &v.state case 1: @@ -37149,7 +38190,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeEnumerateWithFiltersResponse); i { + switch v := v.(*SdkVolumeCapacityUsageResponse); i { case 0: return &v.state case 1: @@ -37161,7 +38202,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotCreateRequest); i { + switch v := v.(*SdkVolumeEnumerateRequest); i { case 0: return &v.state case 1: @@ -37173,7 +38214,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotCreateResponse); i { + switch v := v.(*SdkVolumeEnumerateResponse); i { case 0: return &v.state case 1: @@ -37185,7 +38226,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotRestoreRequest); i { + switch v := v.(*SdkVolumeEnumerateWithFiltersRequest); i { case 0: return &v.state case 1: @@ -37197,7 +38238,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotRestoreResponse); i { + switch v := v.(*SdkVolumeEnumerateWithFiltersResponse); i { case 0: return &v.state case 1: @@ -37209,7 +38250,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotEnumerateRequest); i { + switch v := v.(*SdkVolumeSnapshotCreateRequest); i { case 0: return &v.state case 1: @@ -37221,7 +38262,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotEnumerateResponse); i { + switch v := v.(*SdkVolumeSnapshotCreateResponse); i { case 0: return &v.state case 1: @@ -37233,7 +38274,7 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SdkVolumeSnapshotEnumerateWithFiltersRequest); i { + switch v := v.(*SdkVolumeSnapshotRestoreRequest); i { case 0: return &v.state case 1: @@ -37245,6 +38286,54 @@ func file_api_api_proto_init() { } } file_api_api_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkVolumeSnapshotRestoreResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkVolumeSnapshotEnumerateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkVolumeSnapshotEnumerateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkVolumeSnapshotEnumerateWithFiltersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkVolumeSnapshotEnumerateWithFiltersResponse); i { case 0: return &v.state @@ -37256,7 +38345,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkVolumeSnapshotScheduleUpdateRequest); i { case 0: return &v.state @@ -37268,7 +38357,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkVolumeSnapshotScheduleUpdateResponse); i { case 0: return &v.state @@ -37280,7 +38369,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeVolumeUsageByNodeRequest); i { case 0: return &v.state @@ -37292,7 +38381,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeVolumeUsageByNodeResponse); i { case 0: return &v.state @@ -37304,7 +38393,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeRelaxedReclaimPurgeRequest); i { case 0: return &v.state @@ -37316,7 +38405,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeRelaxedReclaimPurgeResponse); i { case 0: return &v.state @@ -37328,7 +38417,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainsEnumerateRequest); i { case 0: return &v.state @@ -37340,7 +38429,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainsEnumerateResponse); i { case 0: return &v.state @@ -37352,7 +38441,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainInspectRequest); i { case 0: return &v.state @@ -37364,7 +38453,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainInspectResponse); i { case 0: return &v.state @@ -37376,7 +38465,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainActivateRequest); i { case 0: return &v.state @@ -37388,7 +38477,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainActivateResponse); i { case 0: return &v.state @@ -37400,7 +38489,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainDeactivateRequest); i { case 0: return &v.state @@ -37412,7 +38501,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterDomainDeactivateResponse); i { case 0: return &v.state @@ -37424,7 +38513,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterInspectCurrentRequest); i { case 0: return &v.state @@ -37436,7 +38525,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterInspectCurrentResponse); i { case 0: return &v.state @@ -37448,7 +38537,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeInspectRequest); i { case 0: return &v.state @@ -37460,7 +38549,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Job); i { case 0: return &v.state @@ -37472,7 +38561,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkJobResponse); i { case 0: return &v.state @@ -37484,7 +38573,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeDrainAttachmentOptions); i { case 0: return &v.state @@ -37496,7 +38585,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeDrainAttachmentsRequest); i { case 0: return &v.state @@ -37508,7 +38597,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeDrainAttachmentsJob); i { case 0: return &v.state @@ -37520,7 +38609,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudDriveTransferJob); i { case 0: return &v.state @@ -37532,7 +38621,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CollectDiagsJob); i { case 0: return &v.state @@ -37544,7 +38633,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiagsCollectionStatus); i { case 0: return &v.state @@ -37556,7 +38645,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkDiagsCollectRequest); i { case 0: return &v.state @@ -37568,7 +38657,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkDiagsCollectResponse); i { case 0: return &v.state @@ -37580,7 +38669,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiagsNodeSelector); i { case 0: return &v.state @@ -37592,7 +38681,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiagsVolumeSelector); i { case 0: return &v.state @@ -37604,7 +38693,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkEnumerateJobsRequest); i { case 0: return &v.state @@ -37616,7 +38705,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkEnumerateJobsResponse); i { case 0: return &v.state @@ -37628,7 +38717,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkUpdateJobRequest); i { case 0: return &v.state @@ -37640,7 +38729,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkUpdateJobResponse); i { case 0: return &v.state @@ -37652,7 +38741,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkGetJobStatusRequest); i { case 0: return &v.state @@ -37664,7 +38753,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobAudit); i { case 0: return &v.state @@ -37676,7 +38765,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobWorkSummary); i { case 0: return &v.state @@ -37688,7 +38777,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSummary); i { case 0: return &v.state @@ -37700,7 +38789,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkGetJobStatusResponse); i { case 0: return &v.state @@ -37712,7 +38801,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DrainAttachmentsSummary); i { case 0: return &v.state @@ -37724,7 +38813,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeCordonAttachmentsRequest); i { case 0: return &v.state @@ -37736,7 +38825,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeCordonAttachmentsResponse); i { case 0: return &v.state @@ -37748,7 +38837,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeUncordonAttachmentsRequest); i { case 0: return &v.state @@ -37760,7 +38849,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeUncordonAttachmentsResponse); i { case 0: return &v.state @@ -37772,7 +38861,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkStoragePoolResizeRequest); i { case 0: return &v.state @@ -37784,7 +38873,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageRebalanceTriggerThreshold); i { case 0: return &v.state @@ -37796,7 +38885,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkStorageRebalanceRequest); i { case 0: return &v.state @@ -37808,7 +38897,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkStorageRebalanceResponse); i { case 0: return &v.state @@ -37820,7 +38909,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageRebalanceJob); i { case 0: return &v.state @@ -37832,7 +38921,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageRebalanceSummary); i { case 0: return &v.state @@ -37844,7 +38933,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageRebalanceWorkSummary); i { case 0: return &v.state @@ -37856,7 +38945,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageRebalanceAudit); i { case 0: return &v.state @@ -37868,7 +38957,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkUpdateRebalanceJobRequest); i { case 0: return &v.state @@ -37880,7 +38969,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkUpdateRebalanceJobResponse); i { case 0: return &v.state @@ -37892,7 +38981,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkGetRebalanceJobStatusRequest); i { case 0: return &v.state @@ -37904,7 +38993,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkGetRebalanceJobStatusResponse); i { case 0: return &v.state @@ -37916,7 +39005,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkEnumerateRebalanceJobsRequest); i { case 0: return &v.state @@ -37928,7 +39017,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkEnumerateRebalanceJobsResponse); i { case 0: return &v.state @@ -37940,7 +39029,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkStoragePool); i { case 0: return &v.state @@ -37952,7 +39041,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkStoragePoolResizeResponse); i { case 0: return &v.state @@ -37964,7 +39053,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeInspectResponse); i { case 0: return &v.state @@ -37976,7 +39065,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeInspectCurrentRequest); i { case 0: return &v.state @@ -37988,7 +39077,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeInspectCurrentResponse); i { case 0: return &v.state @@ -38000,7 +39089,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeEnumerateRequest); i { case 0: return &v.state @@ -38012,7 +39101,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeEnumerateResponse); i { case 0: return &v.state @@ -38024,7 +39113,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeEnumerateWithFiltersRequest); i { case 0: return &v.state @@ -38036,7 +39125,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkNodeEnumerateWithFiltersResponse); i { case 0: return &v.state @@ -38048,7 +39137,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreInspectRequest); i { case 0: return &v.state @@ -38060,7 +39149,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreInspectResponse); i { case 0: return &v.state @@ -38072,7 +39161,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreCreateRequest); i { case 0: return &v.state @@ -38084,7 +39173,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreCreateResponse); i { case 0: return &v.state @@ -38096,7 +39185,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreDeleteRequest); i { case 0: return &v.state @@ -38108,7 +39197,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreDeleteResponse); i { case 0: return &v.state @@ -38120,7 +39209,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreUpdateRequest); i { case 0: return &v.state @@ -38132,7 +39221,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkObjectstoreUpdateResponse); i { case 0: return &v.state @@ -38144,7 +39233,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupCreateRequest); i { case 0: return &v.state @@ -38156,7 +39245,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupCreateResponse); i { case 0: return &v.state @@ -38168,7 +39257,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupGroupCreateRequest); i { case 0: return &v.state @@ -38180,7 +39269,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupGroupCreateResponse); i { case 0: return &v.state @@ -38192,7 +39281,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupRestoreRequest); i { case 0: return &v.state @@ -38204,7 +39293,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupRestoreResponse); i { case 0: return &v.state @@ -38216,7 +39305,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupDeleteRequest); i { case 0: return &v.state @@ -38228,7 +39317,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupDeleteResponse); i { case 0: return &v.state @@ -38240,7 +39329,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupDeleteAllRequest); i { case 0: return &v.state @@ -38252,7 +39341,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupDeleteAllResponse); i { case 0: return &v.state @@ -38264,7 +39353,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupEnumerateWithFiltersRequest); i { case 0: return &v.state @@ -38276,7 +39365,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupInfo); i { case 0: return &v.state @@ -38288,7 +39377,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupEnumerateWithFiltersResponse); i { case 0: return &v.state @@ -38300,7 +39389,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupStatus); i { case 0: return &v.state @@ -38312,7 +39401,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupStatusRequest); i { case 0: return &v.state @@ -38324,7 +39413,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupStatusResponse); i { case 0: return &v.state @@ -38336,7 +39425,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupCatalogRequest); i { case 0: return &v.state @@ -38348,7 +39437,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupCatalogResponse); i { case 0: return &v.state @@ -38360,7 +39449,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupHistoryItem); i { case 0: return &v.state @@ -38372,7 +39461,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupHistoryRequest); i { case 0: return &v.state @@ -38384,7 +39473,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupHistoryResponse); i { case 0: return &v.state @@ -38396,7 +39485,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupStateChangeRequest); i { case 0: return &v.state @@ -38408,7 +39497,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupStateChangeResponse); i { case 0: return &v.state @@ -38420,7 +39509,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupScheduleInfo); i { case 0: return &v.state @@ -38432,7 +39521,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedCreateRequest); i { case 0: return &v.state @@ -38444,7 +39533,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedCreateResponse); i { case 0: return &v.state @@ -38456,7 +39545,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedUpdateRequest); i { case 0: return &v.state @@ -38468,7 +39557,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedUpdateResponse); i { case 0: return &v.state @@ -38480,7 +39569,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedDeleteRequest); i { case 0: return &v.state @@ -38492,7 +39581,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedDeleteResponse); i { case 0: return &v.state @@ -38504,7 +39593,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedEnumerateRequest); i { case 0: return &v.state @@ -38516,7 +39605,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSchedEnumerateResponse); i { case 0: return &v.state @@ -38528,7 +39617,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSizeRequest); i { case 0: return &v.state @@ -38540,7 +39629,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudBackupSizeResponse); i { case 0: return &v.state @@ -38552,7 +39641,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRule); i { case 0: return &v.state @@ -38564,7 +39653,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRole); i { case 0: return &v.state @@ -38576,7 +39665,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleCreateRequest); i { case 0: return &v.state @@ -38588,7 +39677,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleCreateResponse); i { case 0: return &v.state @@ -38600,7 +39689,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleEnumerateRequest); i { case 0: return &v.state @@ -38612,7 +39701,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleEnumerateResponse); i { case 0: return &v.state @@ -38624,7 +39713,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleInspectRequest); i { case 0: return &v.state @@ -38636,7 +39725,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleInspectResponse); i { case 0: return &v.state @@ -38648,7 +39737,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleDeleteRequest); i { case 0: return &v.state @@ -38660,7 +39749,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleDeleteResponse); i { case 0: return &v.state @@ -38672,7 +39761,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleUpdateRequest); i { case 0: return &v.state @@ -38684,7 +39773,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkRoleUpdateResponse); i { case 0: return &v.state @@ -38696,7 +39785,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilesystemTrim); i { case 0: return &v.state @@ -38708,7 +39797,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemTrimStartRequest); i { case 0: return &v.state @@ -38720,7 +39809,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemTrimStartResponse); i { case 0: return &v.state @@ -38732,7 +39821,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemTrimStatusRequest); i { case 0: return &v.state @@ -38744,7 +39833,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemTrimStatusResponse); i { case 0: return &v.state @@ -38756,7 +39845,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkAutoFSTrimStatusRequest); i { case 0: return &v.state @@ -38768,7 +39857,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkAutoFSTrimStatusResponse); i { case 0: return &v.state @@ -38780,7 +39869,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkAutoFSTrimUsageRequest); i { case 0: return &v.state @@ -38792,7 +39881,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkAutoFSTrimUsageResponse); i { case 0: return &v.state @@ -38804,7 +39893,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemTrimStopRequest); i { case 0: return &v.state @@ -38816,7 +39905,31 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkVolumeBytesUsedResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkVolumeBytesUsedRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemTrimStopResponse); i { case 0: return &v.state @@ -38828,7 +39941,55 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkAutoFSTrimPushRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkAutoFSTrimPushResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkAutoFSTrimPopRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SdkAutoFSTrimPopResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_api_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilesystemCheck); i { case 0: return &v.state @@ -38840,7 +40001,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemCheckStartRequest); i { case 0: return &v.state @@ -38852,7 +40013,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemCheckStartResponse); i { case 0: return &v.state @@ -38864,7 +40025,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemCheckStatusRequest); i { case 0: return &v.state @@ -38876,7 +40037,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemCheckStatusResponse); i { case 0: return &v.state @@ -38888,7 +40049,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemCheckStopRequest); i { case 0: return &v.state @@ -38900,7 +40061,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkFilesystemCheckStopResponse); i { case 0: return &v.state @@ -38912,7 +40073,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkIdentityCapabilitiesRequest); i { case 0: return &v.state @@ -38924,7 +40085,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkIdentityCapabilitiesResponse); i { case 0: return &v.state @@ -38936,7 +40097,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkIdentityVersionRequest); i { case 0: return &v.state @@ -38948,7 +40109,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkIdentityVersionResponse); i { case 0: return &v.state @@ -38960,7 +40121,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkServiceCapability); i { case 0: return &v.state @@ -38972,7 +40133,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkVersion); i { case 0: return &v.state @@ -38984,7 +40145,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageVersion); i { case 0: return &v.state @@ -38996,7 +40157,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrate); i { case 0: return &v.state @@ -39008,7 +40169,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateStartRequest); i { case 0: return &v.state @@ -39020,7 +40181,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStartRequest); i { case 0: return &v.state @@ -39032,7 +40193,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateStartResponse); i { case 0: return &v.state @@ -39044,7 +40205,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStartResponse); i { case 0: return &v.state @@ -39056,7 +40217,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateCancelRequest); i { case 0: return &v.state @@ -39068,7 +40229,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateCancelRequest); i { case 0: return &v.state @@ -39080,7 +40241,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateCancelResponse); i { case 0: return &v.state @@ -39092,7 +40253,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateInfo); i { case 0: return &v.state @@ -39104,7 +40265,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateInfoList); i { case 0: return &v.state @@ -39116,7 +40277,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStatusRequest); i { case 0: return &v.state @@ -39128,7 +40289,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateStatusRequest); i { case 0: return &v.state @@ -39140,7 +40301,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudMigrateStatusResponse); i { case 0: return &v.state @@ -39152,7 +40313,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStatusResponse); i { case 0: return &v.state @@ -39164,7 +40325,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairMode); i { case 0: return &v.state @@ -39176,7 +40337,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairCreateRequest); i { case 0: return &v.state @@ -39188,7 +40349,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairCreateResponse); i { case 0: return &v.state @@ -39200,7 +40361,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairCreateRequest); i { case 0: return &v.state @@ -39212,7 +40373,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairCreateResponse); i { case 0: return &v.state @@ -39224,7 +40385,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairProcessRequest); i { case 0: return &v.state @@ -39236,7 +40397,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairProcessResponse); i { case 0: return &v.state @@ -39248,7 +40409,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairDeleteRequest); i { case 0: return &v.state @@ -39260,7 +40421,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairDeleteResponse); i { case 0: return &v.state @@ -39272,7 +40433,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairTokenGetResponse); i { case 0: return &v.state @@ -39284,7 +40445,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairGetTokenRequest); i { case 0: return &v.state @@ -39296,7 +40457,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairGetTokenResponse); i { case 0: return &v.state @@ -39308,7 +40469,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairResetTokenRequest); i { case 0: return &v.state @@ -39320,7 +40481,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairResetTokenResponse); i { case 0: return &v.state @@ -39332,7 +40493,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairInfo); i { case 0: return &v.state @@ -39344,7 +40505,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairInspectRequest); i { case 0: return &v.state @@ -39356,7 +40517,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairGetResponse); i { case 0: return &v.state @@ -39368,7 +40529,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairInspectResponse); i { case 0: return &v.state @@ -39380,7 +40541,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairEnumerateRequest); i { case 0: return &v.state @@ -39392,7 +40553,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterPairsEnumerateResponse); i { case 0: return &v.state @@ -39404,7 +40565,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkClusterPairEnumerateResponse); i { case 0: return &v.state @@ -39416,7 +40577,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Catalog); i { case 0: return &v.state @@ -39428,7 +40589,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Report); i { case 0: return &v.state @@ -39440,7 +40601,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CatalogResponse); i { case 0: return &v.state @@ -39452,7 +40613,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LocateResponse); i { case 0: return &v.state @@ -39464,7 +40625,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VolumePlacementStrategy); i { case 0: return &v.state @@ -39476,7 +40637,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicaPlacementSpec); i { case 0: return &v.state @@ -39488,7 +40649,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VolumePlacementSpec); i { case 0: return &v.state @@ -39500,7 +40661,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LabelSelectorRequirement); i { case 0: return &v.state @@ -39512,7 +40673,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreVolSnashotSchedule); i { case 0: return &v.state @@ -39524,7 +40685,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreVolStoragePolicy); i { case 0: return &v.state @@ -39536,7 +40697,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreVolumeSpec); i { case 0: return &v.state @@ -39548,7 +40709,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkVolumeCatalogRequest); i { case 0: return &v.state @@ -39560,7 +40721,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkVolumeCatalogResponse); i { case 0: return &v.state @@ -39572,7 +40733,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ownership_PublicAccessControl); i { case 0: return &v.state @@ -39584,7 +40745,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ownership_AccessControl); i { case 0: return &v.state @@ -39596,7 +40757,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkServiceCapability_OpenStorageService); i { case 0: return &v.state @@ -39608,7 +40769,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStartRequest_MigrateVolume); i { case 0: return &v.state @@ -39620,7 +40781,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStartRequest_MigrateVolumeGroup); i { case 0: return &v.state @@ -39632,7 +40793,7 @@ func file_api_api_proto_init() { return nil } } - file_api_api_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { + file_api_api_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkCloudMigrateStartRequest_MigrateAllVolumes); i { case 0: return &v.state @@ -39676,6 +40837,7 @@ func file_api_api_proto_init() { (*VolumeSpecUpdate_IoThrottle)(nil), (*VolumeSpecUpdate_Readahead)(nil), (*VolumeSpecUpdate_Winshare)(nil), + (*VolumeSpecUpdate_NearSyncReplicationStrategy)(nil), } file_api_api_proto_msgTypes[28].OneofWrappers = []interface{}{ (*VolumeSpecPolicy_Size)(nil), @@ -39710,49 +40872,51 @@ func file_api_api_proto_init() { (*VolumeSpecPolicy_Readahead)(nil), (*VolumeSpecPolicy_Winshare)(nil), } - file_api_api_proto_msgTypes[43].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[45].OneofWrappers = []interface{}{ (*SdkAlertsOption_MinSeverityType)(nil), (*SdkAlertsOption_IsCleared)(nil), (*SdkAlertsOption_TimeSpan)(nil), (*SdkAlertsOption_CountSpan)(nil), } - file_api_api_proto_msgTypes[47].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[49].OneofWrappers = []interface{}{ (*SdkAlertsQuery_ResourceTypeQuery)(nil), (*SdkAlertsQuery_AlertTypeQuery)(nil), (*SdkAlertsQuery_ResourceIdQuery)(nil), } - file_api_api_proto_msgTypes[114].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[116].OneofWrappers = []interface{}{ (*SdkSchedulePolicyInterval_Daily)(nil), (*SdkSchedulePolicyInterval_Weekly)(nil), (*SdkSchedulePolicyInterval_Monthly)(nil), (*SdkSchedulePolicyInterval_Periodic)(nil), } - file_api_api_proto_msgTypes[116].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[118].OneofWrappers = []interface{}{ (*SdkCredentialCreateRequest_AwsCredential)(nil), (*SdkCredentialCreateRequest_AzureCredential)(nil), (*SdkCredentialCreateRequest_GoogleCredential)(nil), + (*SdkCredentialCreateRequest_NfsCredential)(nil), } - file_api_api_proto_msgTypes[129].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[133].OneofWrappers = []interface{}{ (*SdkCredentialInspectResponse_AwsCredential)(nil), (*SdkCredentialInspectResponse_AzureCredential)(nil), (*SdkCredentialInspectResponse_GoogleCredential)(nil), + (*SdkCredentialInspectResponse_NfsCredential)(nil), } - file_api_api_proto_msgTypes[192].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[196].OneofWrappers = []interface{}{ (*Job_DrainAttachments)(nil), (*Job_ClouddriveTransfer)(nil), (*Job_CollectDiags)(nil), } - file_api_api_proto_msgTypes[210].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[214].OneofWrappers = []interface{}{ (*JobWorkSummary_DrainAttachmentsSummary)(nil), } - file_api_api_proto_msgTypes[218].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[222].OneofWrappers = []interface{}{ (*SdkStoragePoolResizeRequest_Size)(nil), (*SdkStoragePoolResizeRequest_Percentage)(nil), } - file_api_api_proto_msgTypes[317].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[327].OneofWrappers = []interface{}{ (*SdkServiceCapability_Service)(nil), } - file_api_api_proto_msgTypes[322].OneofWrappers = []interface{}{ + file_api_api_proto_msgTypes[332].OneofWrappers = []interface{}{ (*SdkCloudMigrateStartRequest_Volume)(nil), (*SdkCloudMigrateStartRequest_VolumeGroup)(nil), (*SdkCloudMigrateStartRequest_AllVolumes)(nil), @@ -39762,8 +40926,8 @@ func file_api_api_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_api_proto_rawDesc, - NumEnums: 57, - NumMessages: 421, + NumEnums: 58, + NumMessages: 432, NumExtensions: 0, NumServices: 21, }, @@ -40243,6 +41407,10 @@ type OpenStorageFilesystemTrimClient interface { AutoFSTrimUsage(ctx context.Context, in *SdkAutoFSTrimUsageRequest, opts ...grpc.CallOption) (*SdkAutoFSTrimUsageResponse, error) // Stop a filesystem Trim background operation on a mounted volume, if any Stop(ctx context.Context, in *SdkFilesystemTrimStopRequest, opts ...grpc.CallOption) (*SdkFilesystemTrimStopResponse, error) + // Push a auto filesystem Trim job into the queue + AutoFSTrimPush(ctx context.Context, in *SdkAutoFSTrimPushRequest, opts ...grpc.CallOption) (*SdkAutoFSTrimPushResponse, error) + // Pop a auto filesystem Trim job from the queue + AutoFSTrimPop(ctx context.Context, in *SdkAutoFSTrimPopRequest, opts ...grpc.CallOption) (*SdkAutoFSTrimPopResponse, error) } type openStorageFilesystemTrimClient struct { @@ -40298,6 +41466,24 @@ func (c *openStorageFilesystemTrimClient) Stop(ctx context.Context, in *SdkFiles return out, nil } +func (c *openStorageFilesystemTrimClient) AutoFSTrimPush(ctx context.Context, in *SdkAutoFSTrimPushRequest, opts ...grpc.CallOption) (*SdkAutoFSTrimPushResponse, error) { + out := new(SdkAutoFSTrimPushResponse) + err := c.cc.Invoke(ctx, "/openstorage.api.OpenStorageFilesystemTrim/AutoFSTrimPush", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *openStorageFilesystemTrimClient) AutoFSTrimPop(ctx context.Context, in *SdkAutoFSTrimPopRequest, opts ...grpc.CallOption) (*SdkAutoFSTrimPopResponse, error) { + out := new(SdkAutoFSTrimPopResponse) + err := c.cc.Invoke(ctx, "/openstorage.api.OpenStorageFilesystemTrim/AutoFSTrimPop", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // OpenStorageFilesystemTrimServer is the server API for OpenStorageFilesystemTrim service. type OpenStorageFilesystemTrimServer interface { // Start a filesystem Trim background operation on a mounted volume @@ -40311,6 +41497,10 @@ type OpenStorageFilesystemTrimServer interface { AutoFSTrimUsage(context.Context, *SdkAutoFSTrimUsageRequest) (*SdkAutoFSTrimUsageResponse, error) // Stop a filesystem Trim background operation on a mounted volume, if any Stop(context.Context, *SdkFilesystemTrimStopRequest) (*SdkFilesystemTrimStopResponse, error) + // Push a auto filesystem Trim job into the queue + AutoFSTrimPush(context.Context, *SdkAutoFSTrimPushRequest) (*SdkAutoFSTrimPushResponse, error) + // Pop a auto filesystem Trim job from the queue + AutoFSTrimPop(context.Context, *SdkAutoFSTrimPopRequest) (*SdkAutoFSTrimPopResponse, error) } // UnimplementedOpenStorageFilesystemTrimServer can be embedded to have forward compatible implementations. @@ -40332,6 +41522,12 @@ func (*UnimplementedOpenStorageFilesystemTrimServer) AutoFSTrimUsage(context.Con func (*UnimplementedOpenStorageFilesystemTrimServer) Stop(context.Context, *SdkFilesystemTrimStopRequest) (*SdkFilesystemTrimStopResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Stop not implemented") } +func (*UnimplementedOpenStorageFilesystemTrimServer) AutoFSTrimPush(context.Context, *SdkAutoFSTrimPushRequest) (*SdkAutoFSTrimPushResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AutoFSTrimPush not implemented") +} +func (*UnimplementedOpenStorageFilesystemTrimServer) AutoFSTrimPop(context.Context, *SdkAutoFSTrimPopRequest) (*SdkAutoFSTrimPopResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AutoFSTrimPop not implemented") +} func RegisterOpenStorageFilesystemTrimServer(s *grpc.Server, srv OpenStorageFilesystemTrimServer) { s.RegisterService(&_OpenStorageFilesystemTrim_serviceDesc, srv) @@ -40427,6 +41623,42 @@ func _OpenStorageFilesystemTrim_Stop_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _OpenStorageFilesystemTrim_AutoFSTrimPush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SdkAutoFSTrimPushRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenStorageFilesystemTrimServer).AutoFSTrimPush(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openstorage.api.OpenStorageFilesystemTrim/AutoFSTrimPush", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenStorageFilesystemTrimServer).AutoFSTrimPush(ctx, req.(*SdkAutoFSTrimPushRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OpenStorageFilesystemTrim_AutoFSTrimPop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SdkAutoFSTrimPopRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenStorageFilesystemTrimServer).AutoFSTrimPop(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openstorage.api.OpenStorageFilesystemTrim/AutoFSTrimPop", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenStorageFilesystemTrimServer).AutoFSTrimPop(ctx, req.(*SdkAutoFSTrimPopRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _OpenStorageFilesystemTrim_serviceDesc = grpc.ServiceDesc{ ServiceName: "openstorage.api.OpenStorageFilesystemTrim", HandlerType: (*OpenStorageFilesystemTrimServer)(nil), @@ -40451,6 +41683,14 @@ var _OpenStorageFilesystemTrim_serviceDesc = grpc.ServiceDesc{ MethodName: "Stop", Handler: _OpenStorageFilesystemTrim_Stop_Handler, }, + { + MethodName: "AutoFSTrimPush", + Handler: _OpenStorageFilesystemTrim_AutoFSTrimPush_Handler, + }, + { + MethodName: "AutoFSTrimPop", + Handler: _OpenStorageFilesystemTrim_AutoFSTrimPop_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "api/api.proto", @@ -41785,6 +43025,8 @@ type OpenStorageNodeClient interface { // UncordonAttachments re-enables volume attachments // on the provided node in the cluster. UncordonAttachments(ctx context.Context, in *SdkNodeUncordonAttachmentsRequest, opts ...grpc.CallOption) (*SdkNodeUncordonAttachmentsResponse, error) + // Returns bytes used of multiple volumes for a give node + VolumeBytesUsedByNode(ctx context.Context, in *SdkVolumeBytesUsedRequest, opts ...grpc.CallOption) (*SdkVolumeBytesUsedResponse, error) } type openStorageNodeClient struct { @@ -41876,6 +43118,15 @@ func (c *openStorageNodeClient) UncordonAttachments(ctx context.Context, in *Sdk return out, nil } +func (c *openStorageNodeClient) VolumeBytesUsedByNode(ctx context.Context, in *SdkVolumeBytesUsedRequest, opts ...grpc.CallOption) (*SdkVolumeBytesUsedResponse, error) { + out := new(SdkVolumeBytesUsedResponse) + err := c.cc.Invoke(ctx, "/openstorage.api.OpenStorageNode/VolumeBytesUsedByNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // OpenStorageNodeServer is the server API for OpenStorageNode service. type OpenStorageNodeServer interface { // Inspect returns information about the specified node @@ -41901,6 +43152,8 @@ type OpenStorageNodeServer interface { // UncordonAttachments re-enables volume attachments // on the provided node in the cluster. UncordonAttachments(context.Context, *SdkNodeUncordonAttachmentsRequest) (*SdkNodeUncordonAttachmentsResponse, error) + // Returns bytes used of multiple volumes for a give node + VolumeBytesUsedByNode(context.Context, *SdkVolumeBytesUsedRequest) (*SdkVolumeBytesUsedResponse, error) } // UnimplementedOpenStorageNodeServer can be embedded to have forward compatible implementations. @@ -41934,6 +43187,9 @@ func (*UnimplementedOpenStorageNodeServer) CordonAttachments(context.Context, *S func (*UnimplementedOpenStorageNodeServer) UncordonAttachments(context.Context, *SdkNodeUncordonAttachmentsRequest) (*SdkNodeUncordonAttachmentsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UncordonAttachments not implemented") } +func (*UnimplementedOpenStorageNodeServer) VolumeBytesUsedByNode(context.Context, *SdkVolumeBytesUsedRequest) (*SdkVolumeBytesUsedResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method VolumeBytesUsedByNode not implemented") +} func RegisterOpenStorageNodeServer(s *grpc.Server, srv OpenStorageNodeServer) { s.RegisterService(&_OpenStorageNode_serviceDesc, srv) @@ -42101,6 +43357,24 @@ func _OpenStorageNode_UncordonAttachments_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _OpenStorageNode_VolumeBytesUsedByNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SdkVolumeBytesUsedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OpenStorageNodeServer).VolumeBytesUsedByNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openstorage.api.OpenStorageNode/VolumeBytesUsedByNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OpenStorageNodeServer).VolumeBytesUsedByNode(ctx, req.(*SdkVolumeBytesUsedRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _OpenStorageNode_serviceDesc = grpc.ServiceDesc{ ServiceName: "openstorage.api.OpenStorageNode", HandlerType: (*OpenStorageNodeServer)(nil), @@ -42141,6 +43415,10 @@ var _OpenStorageNode_serviceDesc = grpc.ServiceDesc{ MethodName: "UncordonAttachments", Handler: _OpenStorageNode_UncordonAttachments_Handler, }, + { + MethodName: "VolumeBytesUsedByNode", + Handler: _OpenStorageNode_VolumeBytesUsedByNode_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "api/api.proto", diff --git a/vendor/github.com/libopenstorage/openstorage/api/api.pb.gw.go b/vendor/github.com/libopenstorage/openstorage/api/api.pb.gw.go index 0ce8820d0..cab7c3a28 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/api.pb.gw.go +++ b/vendor/github.com/libopenstorage/openstorage/api/api.pb.gw.go @@ -426,6 +426,74 @@ func local_request_OpenStorageFilesystemTrim_Stop_0(ctx context.Context, marshal } +func request_OpenStorageFilesystemTrim_AutoFSTrimPush_0(ctx context.Context, marshaler runtime.Marshaler, client OpenStorageFilesystemTrimClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SdkAutoFSTrimPushRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.AutoFSTrimPush(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_OpenStorageFilesystemTrim_AutoFSTrimPush_0(ctx context.Context, marshaler runtime.Marshaler, server OpenStorageFilesystemTrimServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SdkAutoFSTrimPushRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.AutoFSTrimPush(ctx, &protoReq) + return msg, metadata, err + +} + +func request_OpenStorageFilesystemTrim_AutoFSTrimPop_0(ctx context.Context, marshaler runtime.Marshaler, client OpenStorageFilesystemTrimClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SdkAutoFSTrimPopRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.AutoFSTrimPop(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_OpenStorageFilesystemTrim_AutoFSTrimPop_0(ctx context.Context, marshaler runtime.Marshaler, server OpenStorageFilesystemTrimServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SdkAutoFSTrimPopRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.AutoFSTrimPop(ctx, &protoReq) + return msg, metadata, err + +} + func request_OpenStorageFilesystemCheck_Start_0(ctx context.Context, marshaler runtime.Marshaler, client OpenStorageFilesystemCheckClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq SdkFilesystemCheckStartRequest var metadata runtime.ServerMetadata @@ -1866,6 +1934,40 @@ func local_request_OpenStorageNode_UncordonAttachments_0(ctx context.Context, ma } +func request_OpenStorageNode_VolumeBytesUsedByNode_0(ctx context.Context, marshaler runtime.Marshaler, client OpenStorageNodeClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SdkVolumeBytesUsedRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.VolumeBytesUsedByNode(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_OpenStorageNode_VolumeBytesUsedByNode_0(ctx context.Context, marshaler runtime.Marshaler, server OpenStorageNodeServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SdkVolumeBytesUsedRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.VolumeBytesUsedByNode(ctx, &protoReq) + return msg, metadata, err + +} + func request_OpenStorageBucket_Create_0(ctx context.Context, marshaler runtime.Marshaler, client OpenStorageBucketClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq BucketCreateRequest var metadata runtime.ServerMetadata @@ -5024,6 +5126,52 @@ func RegisterOpenStorageFilesystemTrimHandlerServer(ctx context.Context, mux *ru }) + mux.Handle("POST", pattern_OpenStorageFilesystemTrim_AutoFSTrimPush_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_OpenStorageFilesystemTrim_AutoFSTrimPush_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OpenStorageFilesystemTrim_AutoFSTrimPush_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_OpenStorageFilesystemTrim_AutoFSTrimPop_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_OpenStorageFilesystemTrim_AutoFSTrimPop_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OpenStorageFilesystemTrim_AutoFSTrimPop_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -5887,6 +6035,29 @@ func RegisterOpenStorageNodeHandlerServer(ctx context.Context, mux *runtime.Serv }) + mux.Handle("POST", pattern_OpenStorageNode_VolumeBytesUsedByNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_OpenStorageNode_VolumeBytesUsedByNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OpenStorageNode_VolumeBytesUsedByNode_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -7885,6 +8056,46 @@ func RegisterOpenStorageFilesystemTrimHandlerClient(ctx context.Context, mux *ru }) + mux.Handle("POST", pattern_OpenStorageFilesystemTrim_AutoFSTrimPush_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_OpenStorageFilesystemTrim_AutoFSTrimPush_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OpenStorageFilesystemTrim_AutoFSTrimPush_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_OpenStorageFilesystemTrim_AutoFSTrimPop_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_OpenStorageFilesystemTrim_AutoFSTrimPop_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OpenStorageFilesystemTrim_AutoFSTrimPop_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -7898,6 +8109,10 @@ var ( pattern_OpenStorageFilesystemTrim_AutoFSTrimUsage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "filesystem-trim", "auto-fstrim-usage"}, "", runtime.AssumeColonVerbOpt(true))) pattern_OpenStorageFilesystemTrim_Stop_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "filesystem-trim", "stop"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_OpenStorageFilesystemTrim_AutoFSTrimPush_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "filesystem-trim", "auto-fstrim-push"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_OpenStorageFilesystemTrim_AutoFSTrimPop_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "filesystem-trim", "auto-fstrim-pop"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -7910,6 +8125,10 @@ var ( forward_OpenStorageFilesystemTrim_AutoFSTrimUsage_0 = runtime.ForwardResponseMessage forward_OpenStorageFilesystemTrim_Stop_0 = runtime.ForwardResponseMessage + + forward_OpenStorageFilesystemTrim_AutoFSTrimPush_0 = runtime.ForwardResponseMessage + + forward_OpenStorageFilesystemTrim_AutoFSTrimPop_0 = runtime.ForwardResponseMessage ) // RegisterOpenStorageFilesystemCheckHandlerFromEndpoint is same as RegisterOpenStorageFilesystemCheckHandler but @@ -9090,6 +9309,26 @@ func RegisterOpenStorageNodeHandlerClient(ctx context.Context, mux *runtime.Serv }) + mux.Handle("POST", pattern_OpenStorageNode_VolumeBytesUsedByNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_OpenStorageNode_VolumeBytesUsedByNode_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OpenStorageNode_VolumeBytesUsedByNode_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -9111,6 +9350,8 @@ var ( pattern_OpenStorageNode_CordonAttachments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "nodes", "attachments", "disable", "node_id"}, "", runtime.AssumeColonVerbOpt(true))) pattern_OpenStorageNode_UncordonAttachments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "nodes", "attachments", "enable", "node_id"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_OpenStorageNode_VolumeBytesUsedByNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "nodes", "bytesused"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -9131,6 +9372,8 @@ var ( forward_OpenStorageNode_CordonAttachments_0 = runtime.ForwardResponseMessage forward_OpenStorageNode_UncordonAttachments_0 = runtime.ForwardResponseMessage + + forward_OpenStorageNode_VolumeBytesUsedByNode_0 = runtime.ForwardResponseMessage ) // RegisterOpenStorageBucketHandlerFromEndpoint is same as RegisterOpenStorageBucketHandler but diff --git a/vendor/github.com/libopenstorage/openstorage/api/api.proto b/vendor/github.com/libopenstorage/openstorage/api/api.proto index 6bf8a00a9..649d5826c 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/api.proto +++ b/vendor/github.com/libopenstorage/openstorage/api/api.proto @@ -458,6 +458,8 @@ message Sharedv4ServiceSpec { // Applicable when running in cloud. In this mode the sharedv4 volume // can be accessed from outside the cluster. LOADBALANCER = 3; + // Do not use sharedv4 service feature. Use legacy sharedv4 volumes instead. + NONE = 4; } } @@ -552,6 +554,8 @@ message FastpathConfig { bool dirty = 5; // fastpath coordinator node uuid to enhance reporting string coord_uuid = 6; + // fastpath force failover, disable auto promote to fastpath + bool force_failover = 7; } // ScanPolicy defines when a filesystem check is triggered and what action to take @@ -593,6 +597,12 @@ message IoThrottle { uint32 write_bw_mbytes = 4; } +enum NearSyncReplicationStrategy { + NEAR_SYNC_STRATEGY_NONE = 0; + NEAR_SYNC_STRATEGY_AGGRESSIVE = 1; + NEAR_SYNC_STRATEGY_OPTIMIZED = 2; +} + // VolumeSpec has the properties needed to create a volume. message VolumeSpec { // Ephemeral storage @@ -692,6 +702,12 @@ message VolumeSpec { TopologyRequirement topology_requirement = 48; // winshare is true if this volume can be accessed from windows pods. bool winshare = 49; + // Filesystem create options to be honored. + string fa_create_options = 50; + // NearSync specifies the volume has a near-sync replica + bool near_sync = 51; + // NearSyncReplicationStrategy is replication strategy for near sync volumes + NearSyncReplicationStrategy near_sync_replication_strategy = 52; } // VolumeSpecUpdate provides a method to set any of the VolumeSpec of an existing volume @@ -765,6 +781,8 @@ message VolumeSpecUpdate { oneof readahead_opt { bool readahead = 41; } // winshare is true if this volume can be accessed from windows pods. oneof winshare_opt { bool winshare = 42; } + // NearSyncReplicationStrategy is replication strategy for near sync volumes + oneof near_sync_replication_strategy_opt { NearSyncReplicationStrategy near_sync_replication_strategy = 43;} } // VolumeSpecPolicy provides a method to set volume storage policy @@ -1077,6 +1095,22 @@ message VolumeUsageByNode { repeated VolumeUsage volume_usage= 1; } +// VolumeBytesUsed defines volume utilization +message VolumeBytesUsed { + // id for the volume/snapshot + string volume_id = 1; + // size in bytes by the volume/snapshot + uint64 total_bytes = 2; +} + +// VolumeBytesUsedByNode defines volume utilization for multiple volumes in a given node +message VolumeBytesUsedByNode { + // machine uuid + string node_id = 1; + // VolumeBytesUsed for each requested volume on the given node + repeated VolumeBytesUsed vol_usage = 2; +} + // FstrimVolUsageInfo message FstrimVolumeUsageInfo { // Volume name @@ -1707,63 +1741,84 @@ service OpenStorageFilesystemTrim { // Usage of a filesystem Trim background operation on all locally mounted // volume - rpc AutoFSTrimUsage(SdkAutoFSTrimUsageRequest) - returns (SdkAutoFSTrimUsageResponse){ - option(google.api.http) = { - get: "/v1/filesystem-trim/auto-fstrim-usage" - }; - } + rpc AutoFSTrimUsage(SdkAutoFSTrimUsageRequest) + returns (SdkAutoFSTrimUsageResponse) { + option (google.api.http) = { + get : "/v1/filesystem-trim/auto-fstrim-usage" + }; + } - // Stop a filesystem Trim background operation on a mounted volume, if any - rpc Stop(SdkFilesystemTrimStopRequest) - returns (SdkFilesystemTrimStopResponse){ + // Stop a filesystem Trim background operation on a mounted volume, if any + rpc Stop(SdkFilesystemTrimStopRequest) + returns (SdkFilesystemTrimStopResponse) { option(google.api.http) = { post: "/v1/filesystem-trim/stop" body: "*" }; } - } -// ## OpenStorageFilesystemCheckService -// This service provides methods to manage filesystem check operation on a -// volume. -// -// This operation is run in the background on an **unmounted volume**. -// If the volume is mounted, then these APIs return error. -// -// Once the filesystem check operation is started, in one of the available -// modes(check_health, fix_safe, fix_all), -// the clients have to poll for the status of the background operation -// using the `OpenStorageFilesystemcheck.Status()` rpc request. -// -// **Note: -// 1. Different modes of filesystem check can execute in parallel for -// the same volume. -// 2. Filesystem Check and volume Mount are mutually exclusive, meaning both -// cannot be run on a volume at the same time. -// -// A typical workflow involving filesystem check would be as follows -// 1. Attach the volume -// `OpenStorageMountAttachClient.Attach()` -// 2. Check the health of the filesystem by issuing a grpc call to -// `OpenStorageFilesystemCheckClient.Start(Mode='check_health')` -// 3. Status of the Filesystem Check operation in check_health mode, can be -// retrieved by polling for the status using -// `OpenStorageFilesystemCheck.Status()` -// 4. If the Filesystem Check Operation status reports filesystem is in unhealthy -// state, then to fix all the problems issue a grpc call to -// `OpenStorageFilesystemCheckClient.Start(Mode='fix_all')` -// 5. Status of the Filesystem Check operation in fix_all mode, can be retrieved -// by polling for the status using -// `OpenStorageFilesystemCheck.Status()` -// 6. Filesystem Check operation runs in the background, to stop the operation, -// issue a call to -// `OpenStorageFilesystemCheckClient.Stop()` -// 7. To Check and Fix errors in the filesystem that are safe to fix, issue a -// grpc call to -// `OpenStorageFilesystemCheckClient.Start(Mode='fix_safe')` -// Status of this operation can be polled in the way mentioned in step 3 -// This operation can be stopped a Stop request as mentioned in step 6 + // Push a auto filesystem Trim job into the queue + rpc AutoFSTrimPush(SdkAutoFSTrimPushRequest) + returns (SdkAutoFSTrimPushResponse) { + option (google.api.http) = { + post : "/v1/filesystem-trim/auto-fstrim-push" + body : "*" + }; + } + + // Pop a auto filesystem Trim job from the queue + rpc AutoFSTrimPop(SdkAutoFSTrimPopRequest) + returns (SdkAutoFSTrimPopResponse) { + option (google.api.http) = { + post : "/v1/filesystem-trim/auto-fstrim-pop" + body : "*" + }; + } +} + + // ## OpenStorageFilesystemCheckService + // This service provides methods to manage filesystem check operation on a + // volume. + // + // This operation is run in the background on an **unmounted volume**. + // If the volume is mounted, then these APIs return error. + // + // Once the filesystem check operation is started, in one of the available + // modes(check_health, fix_safe, fix_all), + // the clients have to poll for the status of the background operation + // using the `OpenStorageFilesystemcheck.Status()` rpc request. + // + // **Note: + // 1. Different modes of filesystem check can execute in parallel for + // the same volume. + // 2. Filesystem Check and volume Mount are mutually exclusive, meaning both + // cannot be run on a volume at the same time. + // + // A typical workflow involving filesystem check would be as follows + // 1. Attach the volume + // `OpenStorageMountAttachClient.Attach()` + // 2. Check the health of the filesystem by issuing a grpc call to + // `OpenStorageFilesystemCheckClient.Start(Mode='check_health')` + // 3. Status of the Filesystem Check operation in check_health mode, can be + // retrieved by polling for the status using + // `OpenStorageFilesystemCheck.Status()` + // 4. If the Filesystem Check Operation status reports filesystem is in + // unhealthy + // state, then to fix all the problems issue a grpc call to + // `OpenStorageFilesystemCheckClient.Start(Mode='fix_all')` + // 5. Status of the Filesystem Check operation in fix_all mode, can be + // retrieved + // by polling for the status using + // `OpenStorageFilesystemCheck.Status()` + // 6. Filesystem Check operation runs in the background, to stop the + // operation, + // issue a call to + // `OpenStorageFilesystemCheckClient.Stop()` + // 7. To Check and Fix errors in the filesystem that are safe to fix, issue a + // grpc call to + // `OpenStorageFilesystemCheckClient.Start(Mode='fix_safe')` + // Status of this operation can be polled in the way mentioned in step 3 + // This operation can be stopped a Stop request as mentioned in step 6 service OpenStorageFilesystemCheck { @@ -2116,6 +2171,15 @@ service OpenStorageNode { body: "*" }; } + + // Returns bytes used of multiple volumes for a give node + rpc VolumeBytesUsedByNode(SdkVolumeBytesUsedRequest) + returns (SdkVolumeBytesUsedResponse) { + option(google.api.http) = { + post: "/v1/nodes/bytesused" + body: "*" + }; + } } // BucketService to manage the bucket driver @@ -3179,6 +3243,8 @@ message SdkCredentialCreateRequest { SdkAzureCredentialRequest azure_credential = 201; // Credentials for Google SdkGoogleCredentialRequest google_credential = 202; + // Credentials for NFS + SdkNfsCredentialRequest nfs_credential = 203; } } @@ -3230,6 +3296,18 @@ message SdkGoogleCredentialRequest { string json_key = 2; } +// Defines credentials for NFS +message SdkNfsCredentialRequest { + // NFS Server address + string server = 1; + // NFS export path + string sub_path = 2; + // mount options for nfs mount + string mount_opts = 3; + // timeout for nfs IO in seconds + uint32 timeout_seconds = 4; +} + // Defines the response for AWS/S3 credentials message SdkAwsCredentialResponse { // Access key @@ -3258,6 +3336,18 @@ message SdkGoogleCredentialResponse { string project_id = 2; } +// Defines the response for NFS credential +message SdkNfsCredentialResponse { + // NFS Server Address + string server = 1; + // NFS export path + string sub_path = 2; + // mount options ( "," separated) + string mount_opts = 3; + // timeout in seconds + uint32 timeout_seconds = 4; +} + // Empty request message SdkCredentialEnumerateRequest { } @@ -3299,6 +3389,8 @@ message SdkCredentialInspectResponse { SdkAzureCredentialResponse azure_credential = 201; // Google credentials SdkGoogleCredentialResponse google_credential = 202; + // NFS credentials + SdkNfsCredentialResponse nfs_credential = 203; } } @@ -3462,6 +3554,10 @@ message SdkVolumeCloneRequest { string name = 1; // Parent volume id or snapshot id will create a new volume as a clone of the parent. string parent_id = 2; + // Additional labels to be appended after cloning the volume. Note that clone will + // issue a snapshot, which copies most labels except pvc and namespace. This map + // allows you to pass additional labels that are not part of the parent volume. + map additional_labels = 3; } // Defines the response when creating a clone from a volume or a snapshot @@ -4405,6 +4501,8 @@ message SdkCloudBackupCreateRequest { // DeleteLocal indicates if local snap created for backup must be deleted after // the backup is complete bool delete_local = 7; + // Indicates if this is a near sync migrate + bool near_sync_migrate = 8; } // Empty response @@ -4591,6 +4689,12 @@ enum SdkCloudBackupOpType { SdkCloudBackupOpTypeBackupOp = 1; // Restore SdkCloudBackupOpTypeRestoreOp = 2; + // NearSync clone + SdkNearSyncOpTypeCloneOp = 3; + // NearSync replication add + SdkNearSyncOpTypeReplAddOp = 4; + // NearSync restore + SdkNearSyncOpTypeRestoreOp = 5; } // CloudBackup status types @@ -4615,7 +4719,22 @@ enum SdkCloudBackupStatusType { SdkCloudBackupStatusTypeQueued = 8; // Invalid, used by enumerate, includes failed, // stopped and aborted - SdkCloudBackupStatusTypeInvalid = 9; + SdkCloudBackupStatusTypeInvalid = 9; + // Near sync + // Not started + SdkNearSyncStatusTypeNotStarted = 10; + // Done + SdkNearSyncStatusTypeDone = 11; + // Paused + SdkNearSyncStatusTypePaused = 12; + // Stopped + SdkNearSyncStatusTypeStopped = 13; + // Active + SdkNearSyncStatusTypeActive = 14; + // Failed + SdkNearSyncStatusTypeFailed = 15; + // Invalid + SdkNearSyncStatusTypeInvalid = 16; } // SdkCloudBackupStatus defines the status of a backup stored by a cloud provider @@ -4662,6 +4781,8 @@ message SdkCloudBackupStatusRequest { // TaskId of the backup/restore task, if this is specified, // volume_id is ignored. string task_id = 3; + // Indicates if this is for nearsync migration + bool near_sync_migrate = 4; } // Defines a response containing the status of the backups for a specified volume @@ -4721,6 +4842,12 @@ enum SdkCloudBackupRequestedState { SdkCloudBackupRequestedStateResume = 2; // Stop a backup or restore SdkCloudBackupRequestedStateStop = 3; + // Pause the near sync migrate + SdkNearSyncRequestedStatePause = 4; + // Resume the near sync migrate + SdkNearSyncRequestedStateResume = 5; + // Stop a near sync migrate + SdkNearSyncRequestedStateStop = 6; } // Defines a request to change the state of a backup or restore to or @@ -4820,8 +4947,14 @@ message SdkCloudBackupSizeRequest{ // Defines a response containing the size of the volume message SdkCloudBackupSizeResponse{ - // Size is the size of the volume in bytes + // Same value as total_download_bytes, will be deprecated uint64 size = 1; + // Total download size of all the backups (full & incremental) required for a restore + uint64 total_download_bytes = 2; + // Size of the compressed individual backup in object-store or NFS + uint64 compressed_object_bytes = 3; + // Used size of the volume to be restored (in bytes) + uint64 capacity_required_for_restore = 4; } // @@ -5033,10 +5166,53 @@ message SdkFilesystemTrimStopRequest { string mount_path = 2; } +// SdkVolumeBytesUsedResponse defines a response to fetch multiple volume util from a given node +message SdkVolumeBytesUsedResponse { + // Provides vol util of multiple requested volumes from a given node + VolumeBytesUsedByNode vol_util_info = 1; +} + +// SdkVolumeBytesUsedRequest defines a request for fetching per volume utilization +// from multiple volume in a given node +message SdkVolumeBytesUsedRequest { + // machine uuid of targeted node + string node_id = 1; + // volume ids to be found in usage response, can be empty + repeated uint64 ids = 2; +} + // Empty response message SdkFilesystemTrimStopResponse{ } +// SdkAutoFSTrimPushRequest defines the request to push a volume to autofstrim +// queue +message SdkAutoFSTrimPushRequest { + // Id of the volume + string volume_id = 1; +} + +// SdkAutoFSTrimPushResponse defines the response to push a volume to autofstrim +// queue +message SdkAutoFSTrimPushResponse { + // Text blob containing ASCII text providing details of the operation + string message = 1; +} + +// SdkAutoFSTrimPopRequest defines the request to pop a volume to autofstrim +// queue +message SdkAutoFSTrimPopRequest { + // Id of the volume + string volume_id = 1; +} + +// SdkAutoFSTrimPopResponse defines the response to pop a volume to autofstrim +// queue +message SdkAutoFSTrimPopResponse { + // Text blob containing ASCII text providing details of the operation + string message = 1; +} + message FilesystemCheck { // FilesystemChecktatus represents the status codes returned from // OpenStorageFilesystemCheck service APIs() @@ -5194,7 +5370,7 @@ message SdkVersion { // SDK version major value of this specification Major = 0; // SDK version minor value of this specification - Minor = 148; + Minor = 159; // SDK version patch value of this specification Patch = 0; } diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/volume/client.go b/vendor/github.com/libopenstorage/openstorage/api/client/volume/client.go index aec74a59d..1078c9016 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/client/volume/client.go +++ b/vendor/github.com/libopenstorage/openstorage/api/client/volume/client.go @@ -300,6 +300,25 @@ func (v *volumeClient) VolumeUsageByNode( } +func (v *volumeClient) VolumeBytesUsedByNode( + nodeID string, + IDs []uint64, +) (*api.VolumeBytesUsedByNode, error) { + result := &api.SdkVolumeBytesUsedResponse{} + req := &api.SdkVolumeBytesUsedRequest{NodeId: nodeID, Ids: IDs} + resp := v.c.Post().Resource(volumePath + "/bytesused").Body(req).Do() + + if resp.Error() != nil { + return nil, resp.FormatError() + } + + if err := resp.Unmarshal(result); err != nil { + return nil, err + } + + return result.VolUtilInfo, nil +} + func (v *volumeClient) RelaxedReclaimPurge( nodeID string, ) (*api.RelaxedReclaimPurge, error) { diff --git a/vendor/github.com/libopenstorage/openstorage/api/errors/errors.go b/vendor/github.com/libopenstorage/openstorage/api/errors/errors.go index 45c920dc6..f0addb7b7 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/errors/errors.go +++ b/vendor/github.com/libopenstorage/openstorage/api/errors/errors.go @@ -88,3 +88,17 @@ func (e *ErrCloudBackupServerBusy) Error() string { } return fmt.Sprintf("cloud backup server busy") } + +// ErrNearSyncServerBusy indicates server being busy with too many +// requests +type ErrNearSyncServerBusy struct { + // object ID for which server is busy + ID string +} + +func (e *ErrNearSyncServerBusy) Error() string { + if len(e.ID) > 0 { + return fmt.Sprintf("near sync server busy: concurrent near sync migrate limit for volume %v reached", e.ID) + } + return fmt.Sprintf("near sync server busy, please wait or stop current task") +} diff --git a/vendor/github.com/libopenstorage/openstorage/api/spec/spec_handler.go b/vendor/github.com/libopenstorage/openstorage/api/spec/spec_handler.go index b51fef50c..d651387a5 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/spec/spec_handler.go +++ b/vendor/github.com/libopenstorage/openstorage/api/spec/spec_handler.go @@ -131,6 +131,8 @@ var ( compressedRegex = regexp.MustCompile(api.SpecCompressed + "=([A-Za-z]+),?") snapScheduleRegex = regexp.MustCompile(api.SpecSnapshotSchedule + `=([A-Za-z0-9:;@=#]+),?`) ioProfileRegex = regexp.MustCompile(api.SpecIoProfile + "=([0-9A-Za-z_-]+),?") + nearSyncRegex = regexp.MustCompile(api.SpecNearSync + "=([A-Za-z]+),?") + nearSyncReplStrategyRegex = regexp.MustCompile(api.SpecNearSyncReplicationStrategy + "=([A-Za-z]+),?") asyncIoRegex = regexp.MustCompile(api.SpecAsyncIo + "=([A-Za-z]+),?") earlyAckRegex = regexp.MustCompile(api.SpecEarlyAck + "=([A-Za-z]+),?") forceUnsupportedFsTypeRegex = regexp.MustCompile(api.SpecForceUnsupportedFsType + "=([A-Za-z]+),?") @@ -375,6 +377,18 @@ func (d *specHandler) UpdateSpecFromOpts(opts map[string]string, spec *api.Volum } else { spec.IoProfile = ioProfile } + case api.SpecNearSync: + if nearSync, err := strconv.ParseBool(v); err != nil { + return nil, nil, nil, err + } else { + spec.NearSync = nearSync + } + case api.SpecNearSyncReplicationStrategy: + if nearSyncReplicationStrategy, err := api.NearSyncReplicationStrategySimpleValueOf(v); err != nil { + return nil, nil, nil, err + } else { + spec.NearSyncReplicationStrategy = nearSyncReplicationStrategy + } case api.SpecEarlyAck: if earlyAck, err := strconv.ParseBool(v); err != nil { return nil, nil, nil, err @@ -471,7 +485,10 @@ func (d *specHandler) UpdateSpecFromOpts(opts map[string]string, spec *api.Volum if spec.Sharedv4ServiceSpec == nil { spec.Sharedv4ServiceSpec = &api.Sharedv4ServiceSpec{} } - if v == "NodePort" || v == "nodePort" { + if v == "" { + // force sharedv4 non-service + spec.Sharedv4ServiceSpec.Type = api.Sharedv4ServiceSpec_NONE + } else if v == "NodePort" || v == "nodePort" { spec.Sharedv4ServiceSpec.Type = api.Sharedv4ServiceSpec_NODEPORT } else if v == "ClusterIP" || v == "clusterIP" { spec.Sharedv4ServiceSpec.Type = api.Sharedv4ServiceSpec_CLUSTERIP @@ -523,6 +540,8 @@ func (d *specHandler) UpdateSpecFromOpts(opts map[string]string, spec *api.Volum return nil, nil, nil, fmt.Errorf("invalid mount options format %v", v) } spec.MountOptions.Options = options + case api.SpecFaCreateOptions: + spec.FaCreateOptions = v case api.SpecSharedv4MountOptions: if spec.Sharedv4MountOptions == nil { spec.Sharedv4MountOptions = &api.MountOptions{ @@ -802,6 +821,12 @@ func (d *specHandler) SpecOptsFromString( if ok, ioProfile := d.getVal(ioProfileRegex, str); ok { opts[api.SpecIoProfile] = ioProfile } + if ok, nearSync := d.getVal(nearSyncRegex, str); ok { + opts[api.SpecNearSync] = nearSync + } + if ok, nearSyncReplStrategy := d.getVal(nearSyncReplStrategyRegex, str); ok { + opts[api.SpecNearSyncReplicationStrategy] = nearSyncReplStrategy + } if ok, asyncIo := d.getVal(asyncIoRegex, str); ok { opts[api.SpecAsyncIo] = asyncIo } diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/auth/selfsigned.go b/vendor/github.com/libopenstorage/openstorage/pkg/auth/selfsigned.go index fb1f18c01..7b4f52fb2 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/auth/selfsigned.go +++ b/vendor/github.com/libopenstorage/openstorage/pkg/auth/selfsigned.go @@ -21,7 +21,7 @@ import ( "fmt" "strings" - jwt "github.com/dgrijalva/jwt-go" + jwt "github.com/golang-jwt/jwt/v4" ) // JwtAuthConfig provides JwtAuthenticator the keys to validate the token diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/auth/signature.go b/vendor/github.com/libopenstorage/openstorage/pkg/auth/signature.go index d57dff432..445b103aa 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/auth/signature.go +++ b/vendor/github.com/libopenstorage/openstorage/pkg/auth/signature.go @@ -19,7 +19,7 @@ import ( "fmt" "io/ioutil" - jwt "github.com/dgrijalva/jwt-go" + jwt "github.com/golang-jwt/jwt/v4" ) // Signature describes the signature type using definitions from diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/auth/token.go b/vendor/github.com/libopenstorage/openstorage/pkg/auth/token.go index 75f006f5d..9d7b6ff38 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/auth/token.go +++ b/vendor/github.com/libopenstorage/openstorage/pkg/auth/token.go @@ -22,7 +22,7 @@ import ( "strings" "time" - jwt "github.com/dgrijalva/jwt-go" + jwt "github.com/golang-jwt/jwt/v4" "github.com/grpc-ecosystem/go-grpc-middleware/util/metautils" ) diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/correlation/context.go b/vendor/github.com/libopenstorage/openstorage/pkg/correlation/context.go index 04e94825e..c3fee7b95 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/correlation/context.go +++ b/vendor/github.com/libopenstorage/openstorage/pkg/correlation/context.go @@ -41,10 +41,11 @@ const ( // ContextOriginKey represents the key for the correlation origin ContextOriginKey = "correlation-context-origin" - ComponentUnknown = Component("unknown") - ComponentCSIDriver = Component("csi-driver") - ComponentSDK = Component("sdk-server") - ComponentAuth = Component("openstorage/pkg/auth") + ComponentUnknown = Component("unknown") + ComponentCSIDriver = Component("csi-driver") + ComponentSDK = Component("sdk-server") + ComponentRoundRobinBalancer = Component("round-robin-balancer") + ComponentAuth = Component("openstorage/pkg/auth") ) // RequestContext represents the context for a given a request. diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/grpcserver/creds_injector.go b/vendor/github.com/libopenstorage/openstorage/pkg/grpcserver/creds_injector.go index edd0c3cd0..7bddfb215 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/grpcserver/creds_injector.go +++ b/vendor/github.com/libopenstorage/openstorage/pkg/grpcserver/creds_injector.go @@ -22,7 +22,7 @@ import ( "sync" "time" - "github.com/dgrijalva/jwt-go" + "github.com/golang-jwt/jwt/v4" ) var minsBeforeExpiration = time.Minute * 5 diff --git a/vendor/github.com/libopenstorage/openstorage/volume/drivers/pwx/connection.go b/vendor/github.com/libopenstorage/openstorage/volume/drivers/pwx/connection.go index dbd7d0ace..fab9750ff 100644 --- a/vendor/github.com/libopenstorage/openstorage/volume/drivers/pwx/connection.go +++ b/vendor/github.com/libopenstorage/openstorage/volume/drivers/pwx/connection.go @@ -1,6 +1,7 @@ package pwx import ( + "bytes" "crypto/tls" "crypto/x509" "fmt" @@ -9,11 +10,10 @@ import ( "strconv" "strings" + "github.com/libopenstorage/openstorage/pkg/grpcserver" "github.com/portworx/sched-ops/k8s/core" "github.com/sirupsen/logrus" "google.golang.org/grpc" - - "github.com/libopenstorage/openstorage/pkg/grpcserver" ) // ConnectionParamsBuilder contains dependencies needed for building Dial options and endpoints @@ -125,7 +125,7 @@ func (cpb *ConnectionParamsBuilder) BuildClientsEndpoints() (string, string, err return "", "", fmt.Errorf("failed to get k8s service specification: %v", err) } - endpoint = fmt.Sprintf("%s.%s", svc.Name, svc.Namespace) + endpoint = fmt.Sprintf("%s.%s.svc.cluster.local", svc.Name, svc.Namespace) var restPort int var restPortSecured int @@ -145,9 +145,13 @@ func (cpb *ConnectionParamsBuilder) BuildClientsEndpoints() (string, string, err restPortSecured = int(svcPort.Port) } } - // if secured REST port (9023) is available, use it instead of legacy 9001 - if restPortSecured != 0 { + + scheme := "http" + // legacy port:9001 is never TLS secured, irrespective of the value of PX_ENABLE_TLS + // if TLS is enabled, use secured REST port:9023 instead of port:9001 + if restPortSecured != 0 && isTLSEnabled(cpb.Config.EnableTLSEnv) { finalRestPort = restPortSecured + scheme = "https" } else { finalRestPort = restPort } @@ -159,11 +163,6 @@ func (cpb *ConnectionParamsBuilder) BuildClientsEndpoints() (string, string, err return "", "", err } - scheme := "http" - var isTLSEnabled = isTLSEnabled(cpb.Config.EnableTLSEnv) - if isTLSEnabled && finalRestPort == restPortSecured { - scheme = "https" // legacy 9001 port is never TLS secured, irrespective of the value of PX_ENABLE_TLS - } pxMgmtEndpoint = fmt.Sprintf("%s://%s", scheme, net.JoinHostPort(endpoint, strconv.Itoa(finalRestPort))) sdkEndpoint = net.JoinHostPort(endpoint, strconv.Itoa(sdkPort)) @@ -182,6 +181,14 @@ func (cpb *ConnectionParamsBuilder) BuildTlsConfig() (*tls.Config, error) { if err != nil { return nil, err } + + if upd, err := cpb.appendK8sCaCertBytes(rootCA); err == nil { + logrus.Debugf("Found Kubernetes CA, adding into TLS config") + rootCA = upd + } else if !os.IsNotExist(err) { + logrus.WithError(err).Warnf("Could not append Kubernetes CA") + } + tlsCfg := &tls.Config{} setRootCA(tlsCfg, rootCA) @@ -226,6 +233,13 @@ func (cpb *ConnectionParamsBuilder) BuildDialOps() ([]grpc.DialOption, error) { return nil, err } + if upd, err := cpb.appendK8sCaCertBytes(rootCA); err == nil { + logrus.Debugf("Found Kubernetes CA, adding into gRPC dial options") + rootCA = upd + } else if !os.IsNotExist(err) { + logrus.WithError(err).Warnf("Could not append Kubernetes CA") + } + tlsDialOptions, err := grpcserver.GetTlsDialOptions(rootCA) if err != nil { return nil, fmt.Errorf("unable to build TLS gRPC connection options: %v", err) @@ -243,7 +257,7 @@ func (cpb *ConnectionParamsBuilder) getCaCertBytes() ([]byte, error) { var pxNamespace = getPxNamespace(cpb.Config.NamespaceNameEnv, cpb.Config.DefaultServiceNamespaceName) if caCertSecretName == "" { - logrus.Infof("CA cert secret name was not provided using env %s", cpb.Config.CaCertSecretEnv) + logrus.Debugf("CA cert secret name was not provided using env %s", cpb.Config.CaCertSecretEnv) return rootCA, nil } else if caCertSecretKey == "" { return nil, fmt.Errorf("failed to load CA cert from secret: %s, secret key should be defined using env %s", @@ -261,11 +275,28 @@ func (cpb *ConnectionParamsBuilder) getCaCertBytes() ([]byte, error) { return nil, fmt.Errorf("failed to load CA cert from secret: %s using key: %s", caCertSecretName, caCertSecretKey) } if len(rootCA) == 0 { - return nil, fmt.Errorf("CA cert fetchecd from secret: %s using key: %s is empty", caCertSecretName, caCertSecretKey) + return nil, fmt.Errorf("CA cert fetched from secret: %s using key: %s is empty", caCertSecretName, caCertSecretKey) } return rootCA, nil } +func (cpb *ConnectionParamsBuilder) appendK8sCaCertBytes(rootCA []byte) ([]byte, error) { + k8sCA, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/ca.crt") + if err != nil { + return nil, err + } else if len(k8sCA) <= 0 { + return rootCA, nil + } + + ca := make([]byte, 0, len(rootCA)+len(k8sCA)+1) + ca = append(ca, rootCA...) + ca = bytes.Trim(ca, "\r\n") + ca = append(ca, '\n') + ca = append(ca, k8sCA...) + + return ca, nil +} + func (cpb *ConnectionParamsBuilder) checkStaticEndpoints() (string, string, error) { if cpb.Config.StaticEndpointEnv == "" || cpb.Config.StaticRestPortEnv == "" || cpb.Config.StaticSDKPortEnv == "" { return "", "", os.ErrNotExist diff --git a/vendor/github.com/libopenstorage/openstorage/volume/volume.go b/vendor/github.com/libopenstorage/openstorage/volume/volume.go index ca1912590..c05f19950 100644 --- a/vendor/github.com/libopenstorage/openstorage/volume/volume.go +++ b/vendor/github.com/libopenstorage/openstorage/volume/volume.go @@ -150,6 +150,9 @@ type StatsDriver interface { // RelaxedReclaimPurge triggers the purge of RelaxedReclaim queue for a // given node RelaxedReclaimPurge(nodeID string) (*api.RelaxedReclaimPurge, error) + // VolumeBytesUsedByNode returns currently used volume util of multiple volumes + // on a given node + VolumeBytesUsedByNode(nodeID string, ids []uint64) (*api.VolumeBytesUsedByNode, error) } type QuiesceDriver interface { @@ -228,6 +231,10 @@ type FilesystemTrimDriver interface { // FilesystemTrimStop stops a filesystem trim background operation on // a specified volume, if any FilesystemTrimStop(request *api.SdkFilesystemTrimStopRequest) (*api.SdkFilesystemTrimStopResponse, error) + // AutoFilesystemTrimPush pushes an autofstrim job to queue + AutoFilesystemTrimPush(request *api.SdkAutoFSTrimPushRequest) (*api.SdkAutoFSTrimPushResponse, error) + // AutoFilesystemTrimPop pops an autofstrim job from queue + AutoFilesystemTrimPop(request *api.SdkAutoFSTrimPopRequest) (*api.SdkAutoFSTrimPopResponse, error) } // FilesystemCheckDriver interface exposes APIs to manage filesystem check diff --git a/vendor/github.com/libopenstorage/openstorage/volume/volume_not_supported.go b/vendor/github.com/libopenstorage/openstorage/volume/volume_not_supported.go index 320049ead..97930c36a 100644 --- a/vendor/github.com/libopenstorage/openstorage/volume/volume_not_supported.go +++ b/vendor/github.com/libopenstorage/openstorage/volume/volume_not_supported.go @@ -112,6 +112,11 @@ func (s *statsNotSupported) VolumeUsageByNode( return nil, ErrNotSupported } +func (s *statsNotSupported) VolumeBytesUsedByNode(nodeID string, + ids []uint64, +) (*api.VolumeBytesUsedByNode, error) { + return nil, ErrNotSupported +} func (v *statsNotSupported) RelaxedReclaimPurge( nodeID string, ) (*api.RelaxedReclaimPurge, error) { @@ -302,6 +307,12 @@ func (cl *filesystemTrimNotSupported) AutoFilesystemTrimUsage(request *api.SdkAu func (cl *filesystemTrimNotSupported) FilesystemTrimStop(request *api.SdkFilesystemTrimStopRequest) (*api.SdkFilesystemTrimStopResponse, error) { return nil, ErrNotSupported } +func (cl *filesystemTrimNotSupported) AutoFilesystemTrimPush(request *api.SdkAutoFSTrimPushRequest) (*api.SdkAutoFSTrimPushResponse, error) { + return nil, ErrNotSupported +} +func (cl *filesystemTrimNotSupported) AutoFilesystemTrimPop(request *api.SdkAutoFSTrimPopRequest) (*api.SdkAutoFSTrimPopResponse, error) { + return nil, ErrNotSupported +} type filesystemCheckNotSupported struct{} diff --git a/vendor/modules.txt b/vendor/modules.txt index 6408cbb14..669553f02 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -165,9 +165,6 @@ github.com/cpuguy83/go-md2man/v2/md2man # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/dgrijalva/jwt-go v3.2.1-0.20180719211823-0b96aaa70776+incompatible -## explicit -github.com/dgrijalva/jwt-go # github.com/dimchansky/utfbom v1.1.0 ## explicit github.com/dimchansky/utfbom @@ -346,8 +343,8 @@ github.com/kubernetes-sigs/aws-ebs-csi-driver/pkg/util # github.com/libopenstorage/gossip v0.0.0-20220309192431-44c895e0923e ## explicit github.com/libopenstorage/gossip/types -# github.com/libopenstorage/openstorage v9.4.47+incompatible => github.com/libopenstorage/openstorage v1.0.1-0.20220804223926-812cb10d08c4 -## explicit; go 1.15 +# github.com/libopenstorage/openstorage v9.4.47+incompatible => github.com/libopenstorage/openstorage v0.0.0-20230511212757-41751b27d69f +## explicit; go 1.17 github.com/libopenstorage/openstorage/api github.com/libopenstorage/openstorage/api/client github.com/libopenstorage/openstorage/api/client/cluster @@ -1516,7 +1513,7 @@ sigs.k8s.io/yaml # github.com/kubernetes-csi/external-snapshotter/v2 => github.com/kubernetes-csi/external-snapshotter/v2 v2.1.1 # github.com/kubernetes-incubator/external-storage => github.com/libopenstorage/external-storage v0.20.4-openstorage-rc10 # github.com/kubernetes-incubator/external-storage v0.20.4-openstorage-rc10 => github.com/libopenstorage/external-storage v0.20.4-openstorage-rc10 -# github.com/libopenstorage/openstorage => github.com/libopenstorage/openstorage v1.0.1-0.20220804223926-812cb10d08c4 +# github.com/libopenstorage/openstorage => github.com/libopenstorage/openstorage v0.0.0-20230511212757-41751b27d69f # github.com/portworx/sched-ops => github.com/portworx/sched-ops v1.20.4-rc1.0.20230302072046-553cc8ef572b # k8s.io/api => k8s.io/api v0.25.0 # k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.0 From e67e853b36c7a0ec747bb54e762fffcb47840e7e Mon Sep 17 00:00:00 2001 From: kesavan thiruvenkadasamy Date: Mon, 26 Jun 2023 18:30:36 +0530 Subject: [PATCH 10/12] modified the release tag from 1.2.6-dev to 1.2.6 Signed-off-by: kesavan thiruvenkadasamy --- .travis.yml | 2 +- Makefile | 6 +++--- pkg/version/version.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 24c4bc7dc..80a4f07d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ script: if [ -n "${TRAVIS_TAG}" ]; then export RELEASE_VER=${TRAVIS_TAG} elif [ "${TRAVIS_BRANCH}" == "1.2.6" ]; then - export DOCKER_IMAGE_TAG=1.2.6-dev + export DOCKER_IMAGE_TAG=1.2.6 else export RELEASE_VER=`git rev-parse --short HEAD` fi diff --git a/Makefile b/Makefile index f433b92d0..b36e55593 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -RELEASE_VER ?= 1.2.6-dev +RELEASE_VER ?= 1.2.6 BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ') BASE_DIR := $(shell git rev-parse --show-toplevel) GIT_SHA := $(shell git rev-parse --short HEAD) @@ -11,7 +11,7 @@ DOCKER_IMAGE_NAME?=kdmp DOCKER_IMAGE_TAG?=$(RELEASE_VER) DOCKER_KDMP_UNITTEST_IMAGE?=px-kdmp-unittest -DOCKER_KDMP_TAG?=1.2.6-dev +DOCKER_KDMP_TAG?=1.2.6 DOCKER_IMAGE=$(DOCKER_IMAGE_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG) KDMP_UNITTEST_IMG=$(DOCKER_IMAGE_REPO)/$(DOCKER_KDMP_UNITTEST_IMAGE):$(DOCKER_KDMP_TAG) @@ -30,7 +30,7 @@ export GOFLAGS = -mod=vendor MAJOR_VERSION := 1 MINOR_VERSION := 2 -PATCH_VERSION := 6-dev +PATCH_VERSION := 6 ifndef PKGS PKGS := $(shell GOFLAGS=-mod=vendor go list ./... 2>&1 | grep -v 'go: ' | grep -v 'github.com/portworx/kdmp/vendor' | grep -v versioned | grep -v 'pkg/apis/v1') diff --git a/pkg/version/version.go b/pkg/version/version.go index 69b92e509..9b8dca746 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -24,7 +24,7 @@ const ( // // These variables typically come from -ldflags settings. var ( - gitVersion = "1.2.6-dev" + gitVersion = "1.2.6" gitCommit = "" // sha1 from git, output of $(git rev-parse HEAD) buildDate = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') kbVerRegex = regexp.MustCompile(`^(v\d+\.\d+\.\d+)(.*)`) From 334225b367e6a713b809c67c1b624fdb55d517d9 Mon Sep 17 00:00:00 2001 From: shkumari-px Date: Tue, 12 Sep 2023 10:00:34 +0000 Subject: [PATCH 11/12] Upgraded go lang version to 1.20.5 --- .travis.yml | 2 +- Makefile | 16 ++++++++-------- go.mod | 2 +- pkg/executor/nfs/nfsrestorevolcreate.go | 7 ------- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index 80a4f07d3..859cc1de4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ env: global: - GO111MODULE=on go: - - 1.19.1 + - 1.20 script: - | if [ -n "${TRAVIS_TAG}" ]; then diff --git a/Makefile b/Makefile index b36e55593..3bc79b709 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ BASE_DIR := $(shell git rev-parse --show-toplevel) GIT_SHA := $(shell git rev-parse --short HEAD) BIN := $(BASE_DIR)/bin -DOCK_BUILD_CNT := golang:1.19.1 +DOCK_BUILD_CNT := golang:1.20.5 DOCKER_IMAGE_REPO?=portworx DOCKER_IMAGE_NAME?=kdmp @@ -81,7 +81,7 @@ vet: staticcheck: docker run --rm -v $(shell pwd):/go/src/github.com/portworx/kdmp $(DOCK_BUILD_CNT) \ /bin/bash -c "cd /go/src/github.com/portworx/kdmp; \ - go install honnef.co/go/tools/cmd/staticcheck@v0.3.3; \ + go install honnef.co/go/tools/cmd/staticcheck@v0.4.5; \ staticcheck $(PKGS); \ staticcheck -tags unittest $(PKGS)" @@ -127,7 +127,7 @@ build-kdmp: @echo "Build kdmp" docker run --rm -v $(shell pwd):/go/src/github.com/portworx/kdmp $(DOCK_BUILD_CNT) \ /bin/bash -c 'cd /go/src/github.com/portworx/kdmp/cmd/kdmp; \ - GOOS=linux go build -ldflags="-s -w \ + GOOS=linux go build -buildvcs=false -ldflags="-s -w \ -X github.com/portworx/kdmp/pkg/version.gitVersion=${RELEASE_VER} \ -X github.com/portworx/kdmp/pkg/version.gitCommit=${GIT_SHA} \ -X github.com/portworx/kdmp/pkg/version.buildDate=${BUILD_DATE} \ @@ -135,7 +135,7 @@ build-kdmp: -X github.com/portworx/kdmp/pkg/version.minor=${MINOR_VERSION} \ -X github.com/portworx/kdmp/pkg/version.patch=${PATCH_VERSION}" \ -o /go/src/github.com/portworx/kdmp/bin/kdmp \ - -a /go/src/github.com/portworx/kdmp/cmd/kdmp;' + -a /go/src/github.com/portworx/kdmp/cmd/kdmp;' container-kdmp: @echo "Build kdmp docker image" @@ -161,7 +161,7 @@ build-restic-executor: @echo "Build restic-executor" docker run --rm -v $(shell pwd):/go/src/github.com/portworx/kdmp $(DOCK_BUILD_CNT) \ /bin/bash -c 'cd /go/src/github.com/portworx/kdmp/cmd/executor/restic; \ - CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w \ + CGO_ENABLED=0 GOOS=linux go build -buildvcs=false -ldflags="-s -w \ -X github.com/portworx/kdmp/pkg/version.gitVersion=${RELEASE_VER} \ -X github.com/portworx/kdmp/pkg/version.gitCommit=${GIT_SHA} \ -X github.com/portworx/kdmp/pkg/version.buildDate=${BUILD_DATE}" \ @@ -172,7 +172,7 @@ build-kopia-executor: @echo "Build kopia-executor" docker run --rm -v $(shell pwd):/go/src/github.com/portworx/kdmp $(DOCK_BUILD_CNT) \ /bin/bash -c 'cd /go/src/github.com/portworx/kdmp/cmd/executor/kopia; \ - CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w \ + CGO_ENABLED=0 GOOS=linux go build -buildvcs=false -ldflags="-s -w \ -X github.com/portworx/kdmp/pkg/version.gitVersion=${RELEASE_VER} \ -X github.com/portworx/kdmp/pkg/version.gitCommit=${GIT_SHA} \ -X github.com/portworx/kdmp/pkg/version.buildDate=${BUILD_DATE}" \ @@ -183,7 +183,7 @@ build-nfs-executor: @echo "Build nfs-executor" docker run --rm -v $(shell pwd):/go/src/github.com/portworx/kdmp $(DOCK_BUILD_CNT) \ /bin/bash -c 'cd /go/src/github.com/portworx/kdmp/cmd/executor/nfs; \ - CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w \ + CGO_ENABLED=0 GOOS=linux go build -buildvcs=false -ldflags="-s -w \ -X github.com/portworx/kdmp/pkg/version.gitVersion=${RELEASE_VER} \ -X github.com/portworx/kdmp/pkg/version.gitCommit=${GIT_SHA} \ -X github.com/portworx/kdmp/pkg/version.buildDate=${BUILD_DATE}" \ @@ -219,7 +219,7 @@ build-pxc-exporter: gogenerate @echo "Build kdmp" docker run --rm -v $(shell pwd):/go/src/github.com/portworx/kdmp $(DOCK_BUILD_CNT) \ /bin/bash -c 'cd /go/src/github.com/portworx/kdmp/cmd/exporter; \ - go build -ldflags="-s -w \ + go build -buildvcs=false -ldflags="-s -w \ -X github.com/portworx/kdmp/pkg/version.gitVersion=${RELEASE_VER} \ -X github.com/portworx/kdmp/pkg/version.gitCommit=${GIT_SHA} \ -X github.com/portworx/kdmp/pkg/version.buildDate=${BUILD_DATE}" \ diff --git a/go.mod b/go.mod index dbc086b47..4712dac6e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/portworx/kdmp -go 1.19 +go 1.20 require ( github.com/aquilax/truncate v1.0.0 diff --git a/pkg/executor/nfs/nfsrestorevolcreate.go b/pkg/executor/nfs/nfsrestorevolcreate.go index 83709e3e5..55f86781d 100644 --- a/pkg/executor/nfs/nfsrestorevolcreate.go +++ b/pkg/executor/nfs/nfsrestorevolcreate.go @@ -23,7 +23,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/wait" ) const ( @@ -38,12 +37,6 @@ const ( volumeSteps = 15 ) -var volumeAPICallBackoff = wait.Backoff{ - Duration: volumeinitialDelay, - Factor: volumeFactor, - Steps: volumeSteps, -} - func newRestoreVolumeCommand() *cobra.Command { restoreCommand := &cobra.Command{ Use: "restore-vol", From c3b94dbca4fcf4522fdfa7db3d78922b6c1a03a5 Mon Sep 17 00:00:00 2001 From: shkumari-px Date: Mon, 25 Sep 2023 15:03:05 +0000 Subject: [PATCH 12/12] PB-4396 Added code to capture pod's information in case of failure --- pkg/controllers/dataexport/reconcile.go | 65 ++++++++++++++----------- pkg/executor/nfs/nfsbkpresources.go | 4 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/pkg/controllers/dataexport/reconcile.go b/pkg/controllers/dataexport/reconcile.go index 29b10468a..ea56e58cb 100644 --- a/pkg/controllers/dataexport/reconcile.go +++ b/pkg/controllers/dataexport/reconcile.go @@ -80,18 +80,18 @@ const ( ) type updateDataExportDetail struct { - stage kdmpapi.DataExportStage - status kdmpapi.DataExportStatus - transferID string - reason string - snapshotID string - size uint64 - progressPercentage int - snapshotPVCName string - snapshotPVCNamespace string - snapshotNamespace string - removeFinalizer bool - volumeSnapshot string + stage kdmpapi.DataExportStage + status kdmpapi.DataExportStatus + transferID string + reason string + snapshotID string + size uint64 + progressPercentage int + snapshotPVCName string + snapshotPVCNamespace string + snapshotNamespace string + removeFinalizer bool + volumeSnapshot string resetLocalSnapshotRestore bool } @@ -492,7 +492,7 @@ func appendPodLogToStork(jobName string, namespace string) { // Get job and check whether it has live pod attaced to it job, err := batch.Instance().GetJob(jobName, namespace) if err != nil && !k8sErrors.IsNotFound(err) { - logrus.Infof("failed in getting job %v/%v with err: %v", namespace, jobName, err) + logrus.Infof("failed in getting job %v/%v with err: %v reason: %v", namespace, jobName, err, job.Status.Conditions[0].Reason) } pods, err := core.Instance().GetPods( job.Namespace, @@ -508,6 +508,15 @@ func appendPodLogToStork(jobName string, namespace string) { podLog, err := core.Instance().GetPodLog(pod.Name, pod.Namespace, &corev1.PodLogOptions{TailLines: &numLogLines}) if err != nil { logrus.Infof("error fetching log of job-pod %s: %v", pod.Name, err) + podDescribe, errDescribe := core.Instance().GetPodByName(pod.Name, pod.Namespace) + if errDescribe != nil { + logrus.Infof("error fetching describe output of job-pod %s: %v", pod.Name, errDescribe) + } else { + logrus.Infof("start of job-pod [%s]'s description...", pod.Name) + logrus.Infof("describe...%s", podDescribe) + logrus.Infof("end of job-pod[%s]'s description...", pod.Name) + } + } else { logrus.Infof("start of job-pod [%s]'s log...", pod.Name) logrus.Infof(podLog) @@ -1044,9 +1053,9 @@ func (c *Controller) stageLocalSnapshotRestore(ctx context.Context, dataExport * } // Already done with max retries, so moving to kdmp restore anyway data := updateDataExportDetail{ - stage: kdmpapi.DataExportStageTransferScheduled, - status: kdmpapi.DataExportStatusInitial, - reason: "switching to restore from objectstore bucket as restoring from local snapshot did not happen", + stage: kdmpapi.DataExportStageTransferScheduled, + status: kdmpapi.DataExportStatusInitial, + reason: "switching to restore from objectstore bucket as restoring from local snapshot did not happen", resetLocalSnapshotRestore: true, } return false, c.updateStatus(dataExport, data) @@ -1196,10 +1205,10 @@ func (c *Controller) stageLocalSnapshotRestoreInProgress(ctx context.Context, da logrus.Errorf("cleaning up temporary resources for restoring from snapshot failed for data export %s/%s: %v", dataExport.Namespace, dataExport.Name, err) } data := updateDataExportDetail{ - stage: kdmpapi.DataExportStageTransferScheduled, - status: kdmpapi.DataExportStatusInitial, - reason: "", - transferID: "", // Resetting transfer id if it has been set with nfs backuplocation job + stage: kdmpapi.DataExportStageTransferScheduled, + status: kdmpapi.DataExportStatusInitial, + reason: "", + transferID: "", // Resetting transfer id if it has been set with nfs backuplocation job resetLocalSnapshotRestore: true, } return false, c.updateStatus(dataExport, data) @@ -1486,14 +1495,14 @@ func (c *Controller) cleanupLocalRestoredSnapshotResources(de *kdmpapi.DataExpor } // Get the Restore pvc spec. - rpvc, err := core.Instance().GetPersistentVolumeClaim(de.Status.RestorePVC.Name, de.Namespace) - if err != nil { - if k8sErrors.IsNotFound(err) { - return nil, false, nil; - } - logrus.Errorf("cleanupLocalRestoredSnapshotResources: failed to get restore pvc [%v] err: %v", de.Status.RestorePVC.Name, err) - return nil, false, err - } + rpvc, err := core.Instance().GetPersistentVolumeClaim(de.Status.RestorePVC.Name, de.Namespace) + if err != nil { + if k8sErrors.IsNotFound(err) { + return nil, false, nil + } + logrus.Errorf("cleanupLocalRestoredSnapshotResources: failed to get restore pvc [%v] err: %v", de.Status.RestorePVC.Name, err) + return nil, false, err + } if rpvc.Spec.DataSource != nil { err = snapshotDriver.DeleteSnapshot(rpvc.Spec.DataSource.Name, de.Namespace, true) if err != nil { diff --git a/pkg/executor/nfs/nfsbkpresources.go b/pkg/executor/nfs/nfsbkpresources.go index 981069d1a..3e4eafcb6 100644 --- a/pkg/executor/nfs/nfsbkpresources.go +++ b/pkg/executor/nfs/nfsbkpresources.go @@ -9,14 +9,15 @@ import ( "strings" "github.com/go-openapi/inflect" - "github.com/libopenstorage/stork/pkg/log" kSnapshotv1 "github.com/kubernetes-csi/external-snapshotter/client/v4/apis/volumesnapshot/v1" kSnapshotv1beta1 "github.com/kubernetes-csi/external-snapshotter/client/v4/apis/volumesnapshot/v1beta1" storkvolume "github.com/libopenstorage/stork/drivers/volume" "github.com/libopenstorage/stork/drivers/volume/csi" stork_api "github.com/libopenstorage/stork/pkg/apis/stork/v1alpha1" + "github.com/libopenstorage/stork/pkg/applicationmanager/controllers" "github.com/libopenstorage/stork/pkg/crypto" "github.com/libopenstorage/stork/pkg/k8sutils" + "github.com/libopenstorage/stork/pkg/log" "github.com/libopenstorage/stork/pkg/resourcecollector" "github.com/libopenstorage/stork/pkg/snapshotter" "github.com/libopenstorage/stork/pkg/utils" @@ -36,7 +37,6 @@ import ( k8s_errors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "github.com/libopenstorage/stork/pkg/applicationmanager/controllers" ) var (