From c5719b1325c560ca9bfa41f812e10dbe6b536778 Mon Sep 17 00:00:00 2001 From: Antonio Nesic Date: Wed, 18 Feb 2026 15:18:37 +0100 Subject: [PATCH 1/5] RPC for Dakr --- Makefile | 4 +- gen/api/v1/apiv1connect/k8s.connect.go | 115 + gen/api/v1/apiv1connect/operator.connect.go | 159 + .../apiv1connect/operator_health.connect.go | 132 + gen/api/v1/common.pb.go | 5023 +++++++------ gen/api/v1/k8s.pb.go | 6599 +++++++++-------- gen/api/v1/k8s_grpc.pb.go | 156 + gen/api/v1/metrics_collector.pb.go | 651 +- gen/api/v1/operator.pb.go | 1641 ++++ gen/api/v1/operator_grpc.pb.go | 183 + gen/api/v1/operator_health.pb.go | 713 ++ gen/api/v1/operator_health_grpc.pb.go | 146 + internal/controller/custom.go | 27 +- internal/health/heartbeat.go | 60 + internal/health/heartbeat_test.go | 92 + internal/transport/dakr_client.go | 30 +- internal/transport/interface.go | 3 + internal/transport/sender.go | 6 + proto/dakr_proto_descriptor.bin | Bin 315463 -> 333318 bytes 19 files changed, 10095 insertions(+), 5645 deletions(-) create mode 100644 gen/api/v1/apiv1connect/operator.connect.go create mode 100644 gen/api/v1/apiv1connect/operator_health.connect.go create mode 100644 gen/api/v1/operator.pb.go create mode 100644 gen/api/v1/operator_grpc.pb.go create mode 100644 gen/api/v1/operator_health.pb.go create mode 100644 gen/api/v1/operator_health_grpc.pb.go create mode 100644 internal/health/heartbeat.go create mode 100644 internal/health/heartbeat_test.go diff --git a/Makefile b/Makefile index 7bc08bb9..17d479e4 100644 --- a/Makefile +++ b/Makefile @@ -665,6 +665,8 @@ DAKR_MPA_PROTO_FILE ?= mpa.proto DAKR_MPA_PROTO ?= internal/proto/$(DAKR_MPA_PROTO_FILE) DAKR_CLUSTER_PROTO_FILE ?= cluster.proto DAKR_CLUSTER_PROTO ?= $(DAKR_DIR)/proto/api/v1/$(DAKR_CLUSTER_PROTO_FILE) +DAKR_OPERATOR_HEALTH_PROTO_FILE ?= operator_health.proto +DAKR_OPERATOR_HEALTH_PROTO ?= $(DAKR_DIR)/proto/api/v1/$(DAKR_OPERATOR_HEALTH_PROTO_FILE) # BUF_VERSION and BUF_BINARY_NAME are to generate a Dakr protobuf/gRPC client. BUF_VERSION := 1.31.0 @@ -692,7 +694,7 @@ generate-proto: install-buf ## Fetch latest Dakr protobuf mkdir -p "$$PROTO_DIR/api/v1"; \ cp "$(DAKR_MPA_PROTO)" "$$PROTO_DIR/api/v1"; \ find "$$PROTO_DIR" -type f -name "*.yaml" -exec perl -pi -e 's|github.com/devzero-inc/services/dakr/gen|github.com/devzero-inc/zxporter/gen|g' {} +; \ - buf build "$(DAKR_DIR)" --path "$(DAKR_METRICS_COLLECTOR_PROTO)" --path "$(DAKR_CLUSTER_PROTO)" -o "$$PROTO_DIR"/dakr_proto_descriptor.bin; \ + buf build "$(DAKR_DIR)" --path "$(DAKR_METRICS_COLLECTOR_PROTO)" --path "$(DAKR_CLUSTER_PROTO)" --path "$(DAKR_OPERATOR_HEALTH_PROTO)" -o "$$PROTO_DIR"/dakr_proto_descriptor.bin; \ buf generate --include-imports "$$PROTO_DIR"/dakr_proto_descriptor.bin; buf generate --verbose --include-imports --timeout=5m . diff --git a/gen/api/v1/apiv1connect/k8s.connect.go b/gen/api/v1/apiv1connect/k8s.connect.go index f024392d..5b14f2c0 100644 --- a/gen/api/v1/apiv1connect/k8s.connect.go +++ b/gen/api/v1/apiv1connect/k8s.connect.go @@ -52,6 +52,9 @@ const ( // K8SServiceGetAllNamespacesProcedure is the fully-qualified name of the K8SService's // GetAllNamespaces RPC. K8SServiceGetAllNamespacesProcedure = "/api.v1.K8SService/GetAllNamespaces" + // K8SServiceSearchNamespacesByClusterProcedure is the fully-qualified name of the K8SService's + // SearchNamespacesByCluster RPC. + K8SServiceSearchNamespacesByClusterProcedure = "/api.v1.K8SService/SearchNamespacesByCluster" // K8SServiceGetAllWorkloadNamesProcedure is the fully-qualified name of the K8SService's // GetAllWorkloadNames RPC. K8SServiceGetAllWorkloadNamesProcedure = "/api.v1.K8SService/GetAllWorkloadNames" @@ -136,6 +139,14 @@ const ( // K8SServiceGetWorkloadPodHistoryProcedure is the fully-qualified name of the K8SService's // GetWorkloadPodHistory RPC. K8SServiceGetWorkloadPodHistoryProcedure = "/api.v1.K8SService/GetWorkloadPodHistory" + // K8SServiceAddClusterTagsProcedure is the fully-qualified name of the K8SService's AddClusterTags + // RPC. + K8SServiceAddClusterTagsProcedure = "/api.v1.K8SService/AddClusterTags" + // K8SServiceRemoveClusterTagsProcedure is the fully-qualified name of the K8SService's + // RemoveClusterTags RPC. + K8SServiceRemoveClusterTagsProcedure = "/api.v1.K8SService/RemoveClusterTags" + // K8SServiceListTagsProcedure is the fully-qualified name of the K8SService's ListTags RPC. + K8SServiceListTagsProcedure = "/api.v1.K8SService/ListTags" // ClusterMutationServiceCreateClusterProcedure is the fully-qualified name of the // ClusterMutationService's CreateCluster RPC. ClusterMutationServiceCreateClusterProcedure = "/api.v1.ClusterMutationService/CreateCluster" @@ -176,6 +187,8 @@ type K8SServiceClient interface { GetClusterMetadata(context.Context, *connect.Request[v1.GetClusterMetadataRequest]) (*connect.Response[v1.GetClusterMetadataResponse], error) // GetAllNamespaces returns a list of all namespaces for a teamID; if cluster list is empty, returns all. GetAllNamespaces(context.Context, *connect.Request[v1.GetAllNamespacesRequest]) (*connect.Response[v1.GetAllNamespacesResponse], error) + // SearchNamespacesByCluster searches namespaces by name within a single cluster. + SearchNamespacesByCluster(context.Context, *connect.Request[v1.SearchNamespacesByClusterRequest]) (*connect.Response[v1.SearchNamespacesByClusterResponse], error) // GetAllWorkloadNames returns a list of all workload names for a team ID; if cluster list is empty, returns all. GetAllWorkloadNames(context.Context, *connect.Request[v1.GetAllWorkloadNamesRequest]) (*connect.Response[v1.GetAllWorkloadNamesResponse], error) // GetAllWorkloadLabels returns all workload labels for a team ID; if cluster list is empty, returns all. @@ -230,6 +243,12 @@ type K8SServiceClient interface { LookupNodeInstance(context.Context, *connect.Request[v1.LookupNodeInstanceRequest]) (*connect.Response[v1.LookupNodeInstanceResponse], error) // GetWorkloadPodHistory retrieves historical pods for a workload. GetWorkloadPodHistory(context.Context, *connect.Request[v1.GetWorkloadPodHistoryRequest]) (*connect.Response[v1.GetWorkloadPodHistoryResponse], error) + // AddClusterTags adds tags to a cluster. + AddClusterTags(context.Context, *connect.Request[v1.AddClusterTagsRequest]) (*connect.Response[v1.AddClusterTagsResponse], error) + // RemoveClusterTags removes tags from a cluster. + RemoveClusterTags(context.Context, *connect.Request[v1.RemoveClusterTagsRequest]) (*connect.Response[v1.RemoveClusterTagsResponse], error) + // ListTags lists all tags for a team. + ListTags(context.Context, *connect.Request[v1.ListTagsRequest]) (*connect.Response[v1.ListTagsResponse], error) } // NewK8SServiceClient constructs a client for the api.v1.K8SService service. By default, it uses @@ -272,6 +291,11 @@ func NewK8SServiceClient(httpClient connect.HTTPClient, baseURL string, opts ... baseURL+K8SServiceGetAllNamespacesProcedure, opts..., ), + searchNamespacesByCluster: connect.NewClient[v1.SearchNamespacesByClusterRequest, v1.SearchNamespacesByClusterResponse]( + httpClient, + baseURL+K8SServiceSearchNamespacesByClusterProcedure, + opts..., + ), getAllWorkloadNames: connect.NewClient[v1.GetAllWorkloadNamesRequest, v1.GetAllWorkloadNamesResponse]( httpClient, baseURL+K8SServiceGetAllWorkloadNamesProcedure, @@ -422,6 +446,21 @@ func NewK8SServiceClient(httpClient connect.HTTPClient, baseURL string, opts ... baseURL+K8SServiceGetWorkloadPodHistoryProcedure, opts..., ), + addClusterTags: connect.NewClient[v1.AddClusterTagsRequest, v1.AddClusterTagsResponse]( + httpClient, + baseURL+K8SServiceAddClusterTagsProcedure, + opts..., + ), + removeClusterTags: connect.NewClient[v1.RemoveClusterTagsRequest, v1.RemoveClusterTagsResponse]( + httpClient, + baseURL+K8SServiceRemoveClusterTagsProcedure, + opts..., + ), + listTags: connect.NewClient[v1.ListTagsRequest, v1.ListTagsResponse]( + httpClient, + baseURL+K8SServiceListTagsProcedure, + opts..., + ), } } @@ -433,6 +472,7 @@ type k8SServiceClient struct { getCluster *connect.Client[v1.GetClusterRequest, v1.GetClusterResponse] getClusterMetadata *connect.Client[v1.GetClusterMetadataRequest, v1.GetClusterMetadataResponse] getAllNamespaces *connect.Client[v1.GetAllNamespacesRequest, v1.GetAllNamespacesResponse] + searchNamespacesByCluster *connect.Client[v1.SearchNamespacesByClusterRequest, v1.SearchNamespacesByClusterResponse] getAllWorkloadNames *connect.Client[v1.GetAllWorkloadNamesRequest, v1.GetAllWorkloadNamesResponse] getAllWorkloadLabels *connect.Client[v1.GetAllWorkloadLabelsRequest, v1.GetAllWorkloadLabelsResponse] getAllNodeGroupNames *connect.Client[v1.GetAllNodeGroupNamesRequest, v1.GetAllNodeGroupNamesResponse] @@ -463,6 +503,9 @@ type k8SServiceClient struct { getRelationsForKind *connect.Client[v1.GetRelatedResourcesRequest, v1.GetRelatedResourcesResponse] lookupNodeInstance *connect.Client[v1.LookupNodeInstanceRequest, v1.LookupNodeInstanceResponse] getWorkloadPodHistory *connect.Client[v1.GetWorkloadPodHistoryRequest, v1.GetWorkloadPodHistoryResponse] + addClusterTags *connect.Client[v1.AddClusterTagsRequest, v1.AddClusterTagsResponse] + removeClusterTags *connect.Client[v1.RemoveClusterTagsRequest, v1.RemoveClusterTagsResponse] + listTags *connect.Client[v1.ListTagsRequest, v1.ListTagsResponse] } // GetWorkloadsStats calls api.v1.K8SService.GetWorkloadsStats. @@ -497,6 +540,11 @@ func (c *k8SServiceClient) GetAllNamespaces(ctx context.Context, req *connect.Re return c.getAllNamespaces.CallUnary(ctx, req) } +// SearchNamespacesByCluster calls api.v1.K8SService.SearchNamespacesByCluster. +func (c *k8SServiceClient) SearchNamespacesByCluster(ctx context.Context, req *connect.Request[v1.SearchNamespacesByClusterRequest]) (*connect.Response[v1.SearchNamespacesByClusterResponse], error) { + return c.searchNamespacesByCluster.CallUnary(ctx, req) +} + // GetAllWorkloadNames calls api.v1.K8SService.GetAllWorkloadNames. func (c *k8SServiceClient) GetAllWorkloadNames(ctx context.Context, req *connect.Request[v1.GetAllWorkloadNamesRequest]) (*connect.Response[v1.GetAllWorkloadNamesResponse], error) { return c.getAllWorkloadNames.CallUnary(ctx, req) @@ -651,6 +699,21 @@ func (c *k8SServiceClient) GetWorkloadPodHistory(ctx context.Context, req *conne return c.getWorkloadPodHistory.CallUnary(ctx, req) } +// AddClusterTags calls api.v1.K8SService.AddClusterTags. +func (c *k8SServiceClient) AddClusterTags(ctx context.Context, req *connect.Request[v1.AddClusterTagsRequest]) (*connect.Response[v1.AddClusterTagsResponse], error) { + return c.addClusterTags.CallUnary(ctx, req) +} + +// RemoveClusterTags calls api.v1.K8SService.RemoveClusterTags. +func (c *k8SServiceClient) RemoveClusterTags(ctx context.Context, req *connect.Request[v1.RemoveClusterTagsRequest]) (*connect.Response[v1.RemoveClusterTagsResponse], error) { + return c.removeClusterTags.CallUnary(ctx, req) +} + +// ListTags calls api.v1.K8SService.ListTags. +func (c *k8SServiceClient) ListTags(ctx context.Context, req *connect.Request[v1.ListTagsRequest]) (*connect.Response[v1.ListTagsResponse], error) { + return c.listTags.CallUnary(ctx, req) +} + // K8SServiceHandler is an implementation of the api.v1.K8SService service. type K8SServiceHandler interface { // GetWorkloadsStats retrieves stats for workloads in a specific cluster. @@ -668,6 +731,8 @@ type K8SServiceHandler interface { GetClusterMetadata(context.Context, *connect.Request[v1.GetClusterMetadataRequest]) (*connect.Response[v1.GetClusterMetadataResponse], error) // GetAllNamespaces returns a list of all namespaces for a teamID; if cluster list is empty, returns all. GetAllNamespaces(context.Context, *connect.Request[v1.GetAllNamespacesRequest]) (*connect.Response[v1.GetAllNamespacesResponse], error) + // SearchNamespacesByCluster searches namespaces by name within a single cluster. + SearchNamespacesByCluster(context.Context, *connect.Request[v1.SearchNamespacesByClusterRequest]) (*connect.Response[v1.SearchNamespacesByClusterResponse], error) // GetAllWorkloadNames returns a list of all workload names for a team ID; if cluster list is empty, returns all. GetAllWorkloadNames(context.Context, *connect.Request[v1.GetAllWorkloadNamesRequest]) (*connect.Response[v1.GetAllWorkloadNamesResponse], error) // GetAllWorkloadLabels returns all workload labels for a team ID; if cluster list is empty, returns all. @@ -722,6 +787,12 @@ type K8SServiceHandler interface { LookupNodeInstance(context.Context, *connect.Request[v1.LookupNodeInstanceRequest]) (*connect.Response[v1.LookupNodeInstanceResponse], error) // GetWorkloadPodHistory retrieves historical pods for a workload. GetWorkloadPodHistory(context.Context, *connect.Request[v1.GetWorkloadPodHistoryRequest]) (*connect.Response[v1.GetWorkloadPodHistoryResponse], error) + // AddClusterTags adds tags to a cluster. + AddClusterTags(context.Context, *connect.Request[v1.AddClusterTagsRequest]) (*connect.Response[v1.AddClusterTagsResponse], error) + // RemoveClusterTags removes tags from a cluster. + RemoveClusterTags(context.Context, *connect.Request[v1.RemoveClusterTagsRequest]) (*connect.Response[v1.RemoveClusterTagsResponse], error) + // ListTags lists all tags for a team. + ListTags(context.Context, *connect.Request[v1.ListTagsRequest]) (*connect.Response[v1.ListTagsResponse], error) } // NewK8SServiceHandler builds an HTTP handler from the service implementation. It returns the path @@ -760,6 +831,11 @@ func NewK8SServiceHandler(svc K8SServiceHandler, opts ...connect.HandlerOption) svc.GetAllNamespaces, opts..., ) + k8SServiceSearchNamespacesByClusterHandler := connect.NewUnaryHandler( + K8SServiceSearchNamespacesByClusterProcedure, + svc.SearchNamespacesByCluster, + opts..., + ) k8SServiceGetAllWorkloadNamesHandler := connect.NewUnaryHandler( K8SServiceGetAllWorkloadNamesProcedure, svc.GetAllWorkloadNames, @@ -910,6 +986,21 @@ func NewK8SServiceHandler(svc K8SServiceHandler, opts ...connect.HandlerOption) svc.GetWorkloadPodHistory, opts..., ) + k8SServiceAddClusterTagsHandler := connect.NewUnaryHandler( + K8SServiceAddClusterTagsProcedure, + svc.AddClusterTags, + opts..., + ) + k8SServiceRemoveClusterTagsHandler := connect.NewUnaryHandler( + K8SServiceRemoveClusterTagsProcedure, + svc.RemoveClusterTags, + opts..., + ) + k8SServiceListTagsHandler := connect.NewUnaryHandler( + K8SServiceListTagsProcedure, + svc.ListTags, + opts..., + ) return "/api.v1.K8SService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case K8SServiceGetWorkloadsStatsProcedure: @@ -924,6 +1015,8 @@ func NewK8SServiceHandler(svc K8SServiceHandler, opts ...connect.HandlerOption) k8SServiceGetClusterMetadataHandler.ServeHTTP(w, r) case K8SServiceGetAllNamespacesProcedure: k8SServiceGetAllNamespacesHandler.ServeHTTP(w, r) + case K8SServiceSearchNamespacesByClusterProcedure: + k8SServiceSearchNamespacesByClusterHandler.ServeHTTP(w, r) case K8SServiceGetAllWorkloadNamesProcedure: k8SServiceGetAllWorkloadNamesHandler.ServeHTTP(w, r) case K8SServiceGetAllWorkloadLabelsProcedure: @@ -984,6 +1077,12 @@ func NewK8SServiceHandler(svc K8SServiceHandler, opts ...connect.HandlerOption) k8SServiceLookupNodeInstanceHandler.ServeHTTP(w, r) case K8SServiceGetWorkloadPodHistoryProcedure: k8SServiceGetWorkloadPodHistoryHandler.ServeHTTP(w, r) + case K8SServiceAddClusterTagsProcedure: + k8SServiceAddClusterTagsHandler.ServeHTTP(w, r) + case K8SServiceRemoveClusterTagsProcedure: + k8SServiceRemoveClusterTagsHandler.ServeHTTP(w, r) + case K8SServiceListTagsProcedure: + k8SServiceListTagsHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -1017,6 +1116,10 @@ func (UnimplementedK8SServiceHandler) GetAllNamespaces(context.Context, *connect return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.GetAllNamespaces is not implemented")) } +func (UnimplementedK8SServiceHandler) SearchNamespacesByCluster(context.Context, *connect.Request[v1.SearchNamespacesByClusterRequest]) (*connect.Response[v1.SearchNamespacesByClusterResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.SearchNamespacesByCluster is not implemented")) +} + func (UnimplementedK8SServiceHandler) GetAllWorkloadNames(context.Context, *connect.Request[v1.GetAllWorkloadNamesRequest]) (*connect.Response[v1.GetAllWorkloadNamesResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.GetAllWorkloadNames is not implemented")) } @@ -1137,6 +1240,18 @@ func (UnimplementedK8SServiceHandler) GetWorkloadPodHistory(context.Context, *co return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.GetWorkloadPodHistory is not implemented")) } +func (UnimplementedK8SServiceHandler) AddClusterTags(context.Context, *connect.Request[v1.AddClusterTagsRequest]) (*connect.Response[v1.AddClusterTagsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.AddClusterTags is not implemented")) +} + +func (UnimplementedK8SServiceHandler) RemoveClusterTags(context.Context, *connect.Request[v1.RemoveClusterTagsRequest]) (*connect.Response[v1.RemoveClusterTagsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.RemoveClusterTags is not implemented")) +} + +func (UnimplementedK8SServiceHandler) ListTags(context.Context, *connect.Request[v1.ListTagsRequest]) (*connect.Response[v1.ListTagsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.K8SService.ListTags is not implemented")) +} + // ClusterMutationServiceClient is a client for the api.v1.ClusterMutationService service. type ClusterMutationServiceClient interface { // CreateCluster creates a new cluster. diff --git a/gen/api/v1/apiv1connect/operator.connect.go b/gen/api/v1/apiv1connect/operator.connect.go new file mode 100644 index 00000000..51f0aae4 --- /dev/null +++ b/gen/api/v1/apiv1connect/operator.connect.go @@ -0,0 +1,159 @@ +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: api/v1/operator.proto + +package apiv1connect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + v1 "github.com/devzero-inc/zxporter/gen/api/v1" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // OperatorServiceName is the fully-qualified name of the OperatorService service. + OperatorServiceName = "api.v1.OperatorService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // OperatorServiceGetOperatorsProcedure is the fully-qualified name of the OperatorService's + // GetOperators RPC. + OperatorServiceGetOperatorsProcedure = "/api.v1.OperatorService/GetOperators" + // OperatorServiceGetOperatorMetadataProcedure is the fully-qualified name of the OperatorService's + // GetOperatorMetadata RPC. + OperatorServiceGetOperatorMetadataProcedure = "/api.v1.OperatorService/GetOperatorMetadata" + // OperatorServiceGetOCIRegistriesProcedure is the fully-qualified name of the OperatorService's + // GetOCIRegistries RPC. + OperatorServiceGetOCIRegistriesProcedure = "/api.v1.OperatorService/GetOCIRegistries" +) + +// OperatorServiceClient is a client for the api.v1.OperatorService service. +type OperatorServiceClient interface { + GetOperators(context.Context, *connect.Request[v1.GetOperatorsRequest]) (*connect.Response[v1.GetOperatorsResponse], error) + GetOperatorMetadata(context.Context, *connect.Request[v1.GetOperatorMetadataRequest]) (*connect.Response[v1.GetOperatorMetadataResponse], error) + GetOCIRegistries(context.Context, *connect.Request[v1.GetOCIRegistriesRequest]) (*connect.Response[v1.GetOCIRegistriesResponse], error) +} + +// NewOperatorServiceClient constructs a client for the api.v1.OperatorService service. By default, +// it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and +// sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() +// or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewOperatorServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) OperatorServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &operatorServiceClient{ + getOperators: connect.NewClient[v1.GetOperatorsRequest, v1.GetOperatorsResponse]( + httpClient, + baseURL+OperatorServiceGetOperatorsProcedure, + opts..., + ), + getOperatorMetadata: connect.NewClient[v1.GetOperatorMetadataRequest, v1.GetOperatorMetadataResponse]( + httpClient, + baseURL+OperatorServiceGetOperatorMetadataProcedure, + opts..., + ), + getOCIRegistries: connect.NewClient[v1.GetOCIRegistriesRequest, v1.GetOCIRegistriesResponse]( + httpClient, + baseURL+OperatorServiceGetOCIRegistriesProcedure, + opts..., + ), + } +} + +// operatorServiceClient implements OperatorServiceClient. +type operatorServiceClient struct { + getOperators *connect.Client[v1.GetOperatorsRequest, v1.GetOperatorsResponse] + getOperatorMetadata *connect.Client[v1.GetOperatorMetadataRequest, v1.GetOperatorMetadataResponse] + getOCIRegistries *connect.Client[v1.GetOCIRegistriesRequest, v1.GetOCIRegistriesResponse] +} + +// GetOperators calls api.v1.OperatorService.GetOperators. +func (c *operatorServiceClient) GetOperators(ctx context.Context, req *connect.Request[v1.GetOperatorsRequest]) (*connect.Response[v1.GetOperatorsResponse], error) { + return c.getOperators.CallUnary(ctx, req) +} + +// GetOperatorMetadata calls api.v1.OperatorService.GetOperatorMetadata. +func (c *operatorServiceClient) GetOperatorMetadata(ctx context.Context, req *connect.Request[v1.GetOperatorMetadataRequest]) (*connect.Response[v1.GetOperatorMetadataResponse], error) { + return c.getOperatorMetadata.CallUnary(ctx, req) +} + +// GetOCIRegistries calls api.v1.OperatorService.GetOCIRegistries. +func (c *operatorServiceClient) GetOCIRegistries(ctx context.Context, req *connect.Request[v1.GetOCIRegistriesRequest]) (*connect.Response[v1.GetOCIRegistriesResponse], error) { + return c.getOCIRegistries.CallUnary(ctx, req) +} + +// OperatorServiceHandler is an implementation of the api.v1.OperatorService service. +type OperatorServiceHandler interface { + GetOperators(context.Context, *connect.Request[v1.GetOperatorsRequest]) (*connect.Response[v1.GetOperatorsResponse], error) + GetOperatorMetadata(context.Context, *connect.Request[v1.GetOperatorMetadataRequest]) (*connect.Response[v1.GetOperatorMetadataResponse], error) + GetOCIRegistries(context.Context, *connect.Request[v1.GetOCIRegistriesRequest]) (*connect.Response[v1.GetOCIRegistriesResponse], error) +} + +// NewOperatorServiceHandler builds an HTTP handler from the service implementation. It returns the +// path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewOperatorServiceHandler(svc OperatorServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + operatorServiceGetOperatorsHandler := connect.NewUnaryHandler( + OperatorServiceGetOperatorsProcedure, + svc.GetOperators, + opts..., + ) + operatorServiceGetOperatorMetadataHandler := connect.NewUnaryHandler( + OperatorServiceGetOperatorMetadataProcedure, + svc.GetOperatorMetadata, + opts..., + ) + operatorServiceGetOCIRegistriesHandler := connect.NewUnaryHandler( + OperatorServiceGetOCIRegistriesProcedure, + svc.GetOCIRegistries, + opts..., + ) + return "/api.v1.OperatorService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case OperatorServiceGetOperatorsProcedure: + operatorServiceGetOperatorsHandler.ServeHTTP(w, r) + case OperatorServiceGetOperatorMetadataProcedure: + operatorServiceGetOperatorMetadataHandler.ServeHTTP(w, r) + case OperatorServiceGetOCIRegistriesProcedure: + operatorServiceGetOCIRegistriesHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedOperatorServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedOperatorServiceHandler struct{} + +func (UnimplementedOperatorServiceHandler) GetOperators(context.Context, *connect.Request[v1.GetOperatorsRequest]) (*connect.Response[v1.GetOperatorsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.OperatorService.GetOperators is not implemented")) +} + +func (UnimplementedOperatorServiceHandler) GetOperatorMetadata(context.Context, *connect.Request[v1.GetOperatorMetadataRequest]) (*connect.Response[v1.GetOperatorMetadataResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.OperatorService.GetOperatorMetadata is not implemented")) +} + +func (UnimplementedOperatorServiceHandler) GetOCIRegistries(context.Context, *connect.Request[v1.GetOCIRegistriesRequest]) (*connect.Response[v1.GetOCIRegistriesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.OperatorService.GetOCIRegistries is not implemented")) +} diff --git a/gen/api/v1/apiv1connect/operator_health.connect.go b/gen/api/v1/apiv1connect/operator_health.connect.go new file mode 100644 index 00000000..4ea9d15a --- /dev/null +++ b/gen/api/v1/apiv1connect/operator_health.connect.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: api/v1/operator_health.proto + +package apiv1connect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + v1 "github.com/devzero-inc/zxporter/gen/api/v1" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // OperatorHealthServiceName is the fully-qualified name of the OperatorHealthService service. + OperatorHealthServiceName = "api.v1.OperatorHealthService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // OperatorHealthServiceReportHealthProcedure is the fully-qualified name of the + // OperatorHealthService's ReportHealth RPC. + OperatorHealthServiceReportHealthProcedure = "/api.v1.OperatorHealthService/ReportHealth" + // OperatorHealthServiceGetClusterOperatorHealthProcedure is the fully-qualified name of the + // OperatorHealthService's GetClusterOperatorHealth RPC. + OperatorHealthServiceGetClusterOperatorHealthProcedure = "/api.v1.OperatorHealthService/GetClusterOperatorHealth" +) + +// OperatorHealthServiceClient is a client for the api.v1.OperatorHealthService service. +type OperatorHealthServiceClient interface { + ReportHealth(context.Context, *connect.Request[v1.ReportHealthRequest]) (*connect.Response[v1.ReportHealthResponse], error) + GetClusterOperatorHealth(context.Context, *connect.Request[v1.GetClusterOperatorHealthRequest]) (*connect.Response[v1.GetClusterOperatorHealthResponse], error) +} + +// NewOperatorHealthServiceClient constructs a client for the api.v1.OperatorHealthService service. +// By default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped +// responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the +// connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewOperatorHealthServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) OperatorHealthServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &operatorHealthServiceClient{ + reportHealth: connect.NewClient[v1.ReportHealthRequest, v1.ReportHealthResponse]( + httpClient, + baseURL+OperatorHealthServiceReportHealthProcedure, + opts..., + ), + getClusterOperatorHealth: connect.NewClient[v1.GetClusterOperatorHealthRequest, v1.GetClusterOperatorHealthResponse]( + httpClient, + baseURL+OperatorHealthServiceGetClusterOperatorHealthProcedure, + opts..., + ), + } +} + +// operatorHealthServiceClient implements OperatorHealthServiceClient. +type operatorHealthServiceClient struct { + reportHealth *connect.Client[v1.ReportHealthRequest, v1.ReportHealthResponse] + getClusterOperatorHealth *connect.Client[v1.GetClusterOperatorHealthRequest, v1.GetClusterOperatorHealthResponse] +} + +// ReportHealth calls api.v1.OperatorHealthService.ReportHealth. +func (c *operatorHealthServiceClient) ReportHealth(ctx context.Context, req *connect.Request[v1.ReportHealthRequest]) (*connect.Response[v1.ReportHealthResponse], error) { + return c.reportHealth.CallUnary(ctx, req) +} + +// GetClusterOperatorHealth calls api.v1.OperatorHealthService.GetClusterOperatorHealth. +func (c *operatorHealthServiceClient) GetClusterOperatorHealth(ctx context.Context, req *connect.Request[v1.GetClusterOperatorHealthRequest]) (*connect.Response[v1.GetClusterOperatorHealthResponse], error) { + return c.getClusterOperatorHealth.CallUnary(ctx, req) +} + +// OperatorHealthServiceHandler is an implementation of the api.v1.OperatorHealthService service. +type OperatorHealthServiceHandler interface { + ReportHealth(context.Context, *connect.Request[v1.ReportHealthRequest]) (*connect.Response[v1.ReportHealthResponse], error) + GetClusterOperatorHealth(context.Context, *connect.Request[v1.GetClusterOperatorHealthRequest]) (*connect.Response[v1.GetClusterOperatorHealthResponse], error) +} + +// NewOperatorHealthServiceHandler builds an HTTP handler from the service implementation. It +// returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewOperatorHealthServiceHandler(svc OperatorHealthServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + operatorHealthServiceReportHealthHandler := connect.NewUnaryHandler( + OperatorHealthServiceReportHealthProcedure, + svc.ReportHealth, + opts..., + ) + operatorHealthServiceGetClusterOperatorHealthHandler := connect.NewUnaryHandler( + OperatorHealthServiceGetClusterOperatorHealthProcedure, + svc.GetClusterOperatorHealth, + opts..., + ) + return "/api.v1.OperatorHealthService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case OperatorHealthServiceReportHealthProcedure: + operatorHealthServiceReportHealthHandler.ServeHTTP(w, r) + case OperatorHealthServiceGetClusterOperatorHealthProcedure: + operatorHealthServiceGetClusterOperatorHealthHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedOperatorHealthServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedOperatorHealthServiceHandler struct{} + +func (UnimplementedOperatorHealthServiceHandler) ReportHealth(context.Context, *connect.Request[v1.ReportHealthRequest]) (*connect.Response[v1.ReportHealthResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.OperatorHealthService.ReportHealth is not implemented")) +} + +func (UnimplementedOperatorHealthServiceHandler) GetClusterOperatorHealth(context.Context, *connect.Request[v1.GetClusterOperatorHealthRequest]) (*connect.Response[v1.GetClusterOperatorHealthResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("api.v1.OperatorHealthService.GetClusterOperatorHealth is not implemented")) +} diff --git a/gen/api/v1/common.pb.go b/gen/api/v1/common.pb.go index 3453edda..a4d82b22 100644 --- a/gen/api/v1/common.pb.go +++ b/gen/api/v1/common.pb.go @@ -26,43 +26,44 @@ const ( type K8SObjectKind int32 const ( - K8SObjectKind_K8S_OBJECT_KIND_UNSPECIFIED K8SObjectKind = 0 - K8SObjectKind_K8S_OBJECT_KIND_DEPLOYMENT K8SObjectKind = 1 - K8SObjectKind_K8S_OBJECT_KIND_REPLICA_SET K8SObjectKind = 2 - K8SObjectKind_K8S_OBJECT_KIND_STATEFUL_SET K8SObjectKind = 3 - K8SObjectKind_K8S_OBJECT_KIND_DAEMON_SET K8SObjectKind = 4 - K8SObjectKind_K8S_OBJECT_KIND_JOB K8SObjectKind = 5 - K8SObjectKind_K8S_OBJECT_KIND_CRON_JOB K8SObjectKind = 6 - K8SObjectKind_K8S_OBJECT_KIND_REPLICATION_CONTROLLER K8SObjectKind = 7 - K8SObjectKind_K8S_OBJECT_KIND_POD K8SObjectKind = 8 - K8SObjectKind_K8S_OBJECT_KIND_NAMESPACE K8SObjectKind = 9 - K8SObjectKind_K8S_OBJECT_KIND_NODE K8SObjectKind = 10 - K8SObjectKind_K8S_OBJECT_KIND_INGRESS K8SObjectKind = 11 - K8SObjectKind_K8S_OBJECT_KIND_CONTAINER K8SObjectKind = 12 - K8SObjectKind_K8S_OBJECT_KIND_SERVICE K8SObjectKind = 13 - K8SObjectKind_K8S_OBJECT_KIND_CONFIG_MAP K8SObjectKind = 14 - K8SObjectKind_K8S_OBJECT_KIND_PERSISTENT_VOLUME K8SObjectKind = 15 - K8SObjectKind_K8S_OBJECT_KIND_PERSISTENT_VOLUME_CLAIM K8SObjectKind = 16 - K8SObjectKind_K8S_OBJECT_KIND_STORAGE_CLASS K8SObjectKind = 17 - K8SObjectKind_K8S_OBJECT_KIND_ARGO_ROLLOUT K8SObjectKind = 18 - K8SObjectKind_K8S_OBJECT_KIND_HORIZONTAL_POD_AUTOSCALER K8SObjectKind = 19 - K8SObjectKind_K8S_OBJECT_KIND_VERTICAL_POD_AUTOSCALER K8SObjectKind = 20 - K8SObjectKind_K8S_OBJECT_KIND_LIMIT_RANGE K8SObjectKind = 21 - K8SObjectKind_K8S_OBJECT_KIND_SERVICE_ACCOUNT K8SObjectKind = 22 - K8SObjectKind_K8S_OBJECT_KIND_ROLE K8SObjectKind = 23 - K8SObjectKind_K8S_OBJECT_KIND_ROLE_BINDING K8SObjectKind = 24 - K8SObjectKind_K8S_OBJECT_KIND_KEDA_SCALED_OBJECT K8SObjectKind = 25 - K8SObjectKind_K8S_OBJECT_KIND_KARPENTER_RESOURCE K8SObjectKind = 26 - K8SObjectKind_K8S_OBJECT_KIND_POD_DISRUPTION_BUDGET K8SObjectKind = 27 - K8SObjectKind_K8S_OBJECT_KIND_RESOURCE_QUOTA K8SObjectKind = 28 - K8SObjectKind_K8S_OBJECT_KIND_KUBEFLOW_NOTEBOOK K8SObjectKind = 29 - K8SObjectKind_K8S_OBJECT_KIND_VOLCANO_JOB K8SObjectKind = 30 - K8SObjectKind_K8S_OBJECT_KIND_SECRET K8SObjectKind = 31 - K8SObjectKind_K8S_OBJECT_KIND_CLUSTER_ROLE K8SObjectKind = 32 - K8SObjectKind_K8S_OBJECT_KIND_CLUSTER_ROLE_BINDING K8SObjectKind = 33 - K8SObjectKind_K8S_OBJECT_KIND_NETWORK_POLICY K8SObjectKind = 34 - K8SObjectKind_K8S_OBJECT_KIND_CLUSTER K8SObjectKind = 35 - K8SObjectKind_K8S_OBJECT_KIND_SPARK_APPLICATION K8SObjectKind = 36 + K8SObjectKind_K8S_OBJECT_KIND_UNSPECIFIED K8SObjectKind = 0 + K8SObjectKind_K8S_OBJECT_KIND_DEPLOYMENT K8SObjectKind = 1 + K8SObjectKind_K8S_OBJECT_KIND_REPLICA_SET K8SObjectKind = 2 + K8SObjectKind_K8S_OBJECT_KIND_STATEFUL_SET K8SObjectKind = 3 + K8SObjectKind_K8S_OBJECT_KIND_DAEMON_SET K8SObjectKind = 4 + K8SObjectKind_K8S_OBJECT_KIND_JOB K8SObjectKind = 5 + K8SObjectKind_K8S_OBJECT_KIND_CRON_JOB K8SObjectKind = 6 + K8SObjectKind_K8S_OBJECT_KIND_REPLICATION_CONTROLLER K8SObjectKind = 7 + K8SObjectKind_K8S_OBJECT_KIND_POD K8SObjectKind = 8 + K8SObjectKind_K8S_OBJECT_KIND_NAMESPACE K8SObjectKind = 9 + K8SObjectKind_K8S_OBJECT_KIND_NODE K8SObjectKind = 10 + K8SObjectKind_K8S_OBJECT_KIND_INGRESS K8SObjectKind = 11 + K8SObjectKind_K8S_OBJECT_KIND_CONTAINER K8SObjectKind = 12 + K8SObjectKind_K8S_OBJECT_KIND_SERVICE K8SObjectKind = 13 + K8SObjectKind_K8S_OBJECT_KIND_CONFIG_MAP K8SObjectKind = 14 + K8SObjectKind_K8S_OBJECT_KIND_PERSISTENT_VOLUME K8SObjectKind = 15 + K8SObjectKind_K8S_OBJECT_KIND_PERSISTENT_VOLUME_CLAIM K8SObjectKind = 16 + K8SObjectKind_K8S_OBJECT_KIND_STORAGE_CLASS K8SObjectKind = 17 + K8SObjectKind_K8S_OBJECT_KIND_ARGO_ROLLOUT K8SObjectKind = 18 + K8SObjectKind_K8S_OBJECT_KIND_HORIZONTAL_POD_AUTOSCALER K8SObjectKind = 19 + K8SObjectKind_K8S_OBJECT_KIND_VERTICAL_POD_AUTOSCALER K8SObjectKind = 20 + K8SObjectKind_K8S_OBJECT_KIND_LIMIT_RANGE K8SObjectKind = 21 + K8SObjectKind_K8S_OBJECT_KIND_SERVICE_ACCOUNT K8SObjectKind = 22 + K8SObjectKind_K8S_OBJECT_KIND_ROLE K8SObjectKind = 23 + K8SObjectKind_K8S_OBJECT_KIND_ROLE_BINDING K8SObjectKind = 24 + K8SObjectKind_K8S_OBJECT_KIND_KEDA_SCALED_OBJECT K8SObjectKind = 25 + K8SObjectKind_K8S_OBJECT_KIND_KARPENTER_RESOURCE K8SObjectKind = 26 + K8SObjectKind_K8S_OBJECT_KIND_POD_DISRUPTION_BUDGET K8SObjectKind = 27 + K8SObjectKind_K8S_OBJECT_KIND_RESOURCE_QUOTA K8SObjectKind = 28 + K8SObjectKind_K8S_OBJECT_KIND_KUBEFLOW_NOTEBOOK K8SObjectKind = 29 + K8SObjectKind_K8S_OBJECT_KIND_VOLCANO_JOB K8SObjectKind = 30 + K8SObjectKind_K8S_OBJECT_KIND_SECRET K8SObjectKind = 31 + K8SObjectKind_K8S_OBJECT_KIND_CLUSTER_ROLE K8SObjectKind = 32 + K8SObjectKind_K8S_OBJECT_KIND_CLUSTER_ROLE_BINDING K8SObjectKind = 33 + K8SObjectKind_K8S_OBJECT_KIND_NETWORK_POLICY K8SObjectKind = 34 + K8SObjectKind_K8S_OBJECT_KIND_CLUSTER K8SObjectKind = 35 + K8SObjectKind_K8S_OBJECT_KIND_SPARK_APPLICATION K8SObjectKind = 36 + K8SObjectKind_K8S_OBJECT_KIND_SCHEDULED_SPARK_APPLICATION K8SObjectKind = 37 ) // Enum value maps for K8SObjectKind. @@ -105,45 +106,47 @@ var ( 34: "K8S_OBJECT_KIND_NETWORK_POLICY", 35: "K8S_OBJECT_KIND_CLUSTER", 36: "K8S_OBJECT_KIND_SPARK_APPLICATION", + 37: "K8S_OBJECT_KIND_SCHEDULED_SPARK_APPLICATION", } K8SObjectKind_value = map[string]int32{ - "K8S_OBJECT_KIND_UNSPECIFIED": 0, - "K8S_OBJECT_KIND_DEPLOYMENT": 1, - "K8S_OBJECT_KIND_REPLICA_SET": 2, - "K8S_OBJECT_KIND_STATEFUL_SET": 3, - "K8S_OBJECT_KIND_DAEMON_SET": 4, - "K8S_OBJECT_KIND_JOB": 5, - "K8S_OBJECT_KIND_CRON_JOB": 6, - "K8S_OBJECT_KIND_REPLICATION_CONTROLLER": 7, - "K8S_OBJECT_KIND_POD": 8, - "K8S_OBJECT_KIND_NAMESPACE": 9, - "K8S_OBJECT_KIND_NODE": 10, - "K8S_OBJECT_KIND_INGRESS": 11, - "K8S_OBJECT_KIND_CONTAINER": 12, - "K8S_OBJECT_KIND_SERVICE": 13, - "K8S_OBJECT_KIND_CONFIG_MAP": 14, - "K8S_OBJECT_KIND_PERSISTENT_VOLUME": 15, - "K8S_OBJECT_KIND_PERSISTENT_VOLUME_CLAIM": 16, - "K8S_OBJECT_KIND_STORAGE_CLASS": 17, - "K8S_OBJECT_KIND_ARGO_ROLLOUT": 18, - "K8S_OBJECT_KIND_HORIZONTAL_POD_AUTOSCALER": 19, - "K8S_OBJECT_KIND_VERTICAL_POD_AUTOSCALER": 20, - "K8S_OBJECT_KIND_LIMIT_RANGE": 21, - "K8S_OBJECT_KIND_SERVICE_ACCOUNT": 22, - "K8S_OBJECT_KIND_ROLE": 23, - "K8S_OBJECT_KIND_ROLE_BINDING": 24, - "K8S_OBJECT_KIND_KEDA_SCALED_OBJECT": 25, - "K8S_OBJECT_KIND_KARPENTER_RESOURCE": 26, - "K8S_OBJECT_KIND_POD_DISRUPTION_BUDGET": 27, - "K8S_OBJECT_KIND_RESOURCE_QUOTA": 28, - "K8S_OBJECT_KIND_KUBEFLOW_NOTEBOOK": 29, - "K8S_OBJECT_KIND_VOLCANO_JOB": 30, - "K8S_OBJECT_KIND_SECRET": 31, - "K8S_OBJECT_KIND_CLUSTER_ROLE": 32, - "K8S_OBJECT_KIND_CLUSTER_ROLE_BINDING": 33, - "K8S_OBJECT_KIND_NETWORK_POLICY": 34, - "K8S_OBJECT_KIND_CLUSTER": 35, - "K8S_OBJECT_KIND_SPARK_APPLICATION": 36, + "K8S_OBJECT_KIND_UNSPECIFIED": 0, + "K8S_OBJECT_KIND_DEPLOYMENT": 1, + "K8S_OBJECT_KIND_REPLICA_SET": 2, + "K8S_OBJECT_KIND_STATEFUL_SET": 3, + "K8S_OBJECT_KIND_DAEMON_SET": 4, + "K8S_OBJECT_KIND_JOB": 5, + "K8S_OBJECT_KIND_CRON_JOB": 6, + "K8S_OBJECT_KIND_REPLICATION_CONTROLLER": 7, + "K8S_OBJECT_KIND_POD": 8, + "K8S_OBJECT_KIND_NAMESPACE": 9, + "K8S_OBJECT_KIND_NODE": 10, + "K8S_OBJECT_KIND_INGRESS": 11, + "K8S_OBJECT_KIND_CONTAINER": 12, + "K8S_OBJECT_KIND_SERVICE": 13, + "K8S_OBJECT_KIND_CONFIG_MAP": 14, + "K8S_OBJECT_KIND_PERSISTENT_VOLUME": 15, + "K8S_OBJECT_KIND_PERSISTENT_VOLUME_CLAIM": 16, + "K8S_OBJECT_KIND_STORAGE_CLASS": 17, + "K8S_OBJECT_KIND_ARGO_ROLLOUT": 18, + "K8S_OBJECT_KIND_HORIZONTAL_POD_AUTOSCALER": 19, + "K8S_OBJECT_KIND_VERTICAL_POD_AUTOSCALER": 20, + "K8S_OBJECT_KIND_LIMIT_RANGE": 21, + "K8S_OBJECT_KIND_SERVICE_ACCOUNT": 22, + "K8S_OBJECT_KIND_ROLE": 23, + "K8S_OBJECT_KIND_ROLE_BINDING": 24, + "K8S_OBJECT_KIND_KEDA_SCALED_OBJECT": 25, + "K8S_OBJECT_KIND_KARPENTER_RESOURCE": 26, + "K8S_OBJECT_KIND_POD_DISRUPTION_BUDGET": 27, + "K8S_OBJECT_KIND_RESOURCE_QUOTA": 28, + "K8S_OBJECT_KIND_KUBEFLOW_NOTEBOOK": 29, + "K8S_OBJECT_KIND_VOLCANO_JOB": 30, + "K8S_OBJECT_KIND_SECRET": 31, + "K8S_OBJECT_KIND_CLUSTER_ROLE": 32, + "K8S_OBJECT_KIND_CLUSTER_ROLE_BINDING": 33, + "K8S_OBJECT_KIND_NETWORK_POLICY": 34, + "K8S_OBJECT_KIND_CLUSTER": 35, + "K8S_OBJECT_KIND_SPARK_APPLICATION": 36, + "K8S_OBJECT_KIND_SCHEDULED_SPARK_APPLICATION": 37, } ) @@ -3623,6 +3626,7 @@ type ResourceDetails struct { // *ResourceDetails_ResourceQuotaDetails // *ResourceDetails_VolcanoJobDetails // *ResourceDetails_SparkApplicationDetails + // *ResourceDetails_ScheduledSparkApplicationDetails Details isResourceDetails_Details `protobuf_oneof:"details"` // Common fields that can be flattened at this level for easier access // These are populated based on the resource type @@ -4016,6 +4020,13 @@ func (x *ResourceDetails) GetSparkApplicationDetails() *SparkApplicationDetails return nil } +func (x *ResourceDetails) GetScheduledSparkApplicationDetails() *ScheduledSparkApplicationDetails { + if x, ok := x.GetDetails().(*ResourceDetails_ScheduledSparkApplicationDetails); ok { + return x.ScheduledSparkApplicationDetails + } + return nil +} + func (x *ResourceDetails) GetPhase() string { if x != nil { return x.Phase @@ -5207,6 +5218,11 @@ type ResourceDetails_SparkApplicationDetails struct { SparkApplicationDetails *SparkApplicationDetails `protobuf:"bytes,242,opt,name=spark_application_details,json=sparkApplicationDetails,proto3,oneof"` } +type ResourceDetails_ScheduledSparkApplicationDetails struct { + // ScheduledSparkApplication-specific fields + ScheduledSparkApplicationDetails *ScheduledSparkApplicationDetails `protobuf:"bytes,243,opt,name=scheduled_spark_application_details,json=scheduledSparkApplicationDetails,proto3,oneof"` +} + func (*ResourceDetails_PodDetails) isResourceDetails_Details() {} func (*ResourceDetails_DeploymentDetails) isResourceDetails_Details() {} @@ -5259,6 +5275,8 @@ func (*ResourceDetails_VolcanoJobDetails) isResourceDetails_Details() {} func (*ResourceDetails_SparkApplicationDetails) isResourceDetails_Details() {} +func (*ResourceDetails_ScheduledSparkApplicationDetails) isResourceDetails_Details() {} + // PodDetails contains detailed Pod information (for the oneof, if we need nested data later) type PodDetails struct { state protoimpl.MessageState @@ -12084,7 +12102,8 @@ type SparkApplicationDetails struct { MainApplicationFile string `protobuf:"bytes,6,opt,name=main_application_file,json=mainApplicationFile,proto3" json:"main_application_file,omitempty"` // Main application file path Arguments []string `protobuf:"bytes,7,rep,name=arguments,proto3" json:"arguments,omitempty"` // Application arguments SparkDriverInfo *SparkDriverInfo `protobuf:"bytes,8,opt,name=spark_driver_info,json=sparkDriverInfo,proto3" json:"spark_driver_info,omitempty"` // Driver information - ExecutorInstances int32 `protobuf:"varint,9,opt,name=executor_instances,json=executorInstances,proto3" json:"executor_instances,omitempty"` // Number of executor instances + ExecutorInstances int32 `protobuf:"varint,9,opt,name=executor_instances,json=executorInstances,proto3" json:"executor_instances,omitempty"` // Number of executor instances (from spec.executor.instances) + ExecutorsReady int32 `protobuf:"varint,16,opt,name=executors_ready,json=executorsReady,proto3" json:"executors_ready,omitempty"` // Number of RUNNING executors (from status.executorState); only meaningful when app is running ApplicationState string `protobuf:"bytes,10,opt,name=application_state,json=applicationState,proto3" json:"application_state,omitempty"` // Application state: SUBMITTED, RUNNING, COMPLETED, FAILED, etc. SparkApplicationId string `protobuf:"bytes,11,opt,name=spark_application_id,json=sparkApplicationId,proto3" json:"spark_application_id,omitempty"` // Spark application ID SubmissionId string `protobuf:"bytes,12,opt,name=submission_id,json=submissionId,proto3" json:"submission_id,omitempty"` // Submission ID @@ -12188,6 +12207,13 @@ func (x *SparkApplicationDetails) GetExecutorInstances() int32 { return 0 } +func (x *SparkApplicationDetails) GetExecutorsReady() int32 { + if x != nil { + return x.ExecutorsReady + } + return 0 +} + func (x *SparkApplicationDetails) GetApplicationState() string { if x != nil { return x.ApplicationState @@ -12510,6 +12536,159 @@ func (x *SparkDynamicAllocationInfo) GetShuffleTrackingTimeout() int64 { return 0 } +// ScheduledSparkApplicationDetails contains detailed ScheduledSparkApplication information for drill-down +type ScheduledSparkApplicationDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Schedule string `protobuf:"bytes,1,opt,name=schedule,proto3" json:"schedule,omitempty"` // Cron schedule expression (e.g., "@every 15m", "0 * * * *") + TimeZone string `protobuf:"bytes,2,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` // Time zone for schedule (e.g., "UTC", "America/New_York") + Suspended bool `protobuf:"varint,3,opt,name=suspended,proto3" json:"suspended,omitempty"` // Whether the schedule is suspended + ConcurrencyPolicy string `protobuf:"bytes,4,opt,name=concurrency_policy,json=concurrencyPolicy,proto3" json:"concurrency_policy,omitempty"` // Allow, Forbid, Replace + SuccessfulRunHistoryLimit int32 `protobuf:"varint,5,opt,name=successful_run_history_limit,json=successfulRunHistoryLimit,proto3" json:"successful_run_history_limit,omitempty"` // Number of successful runs to keep + FailedRunHistoryLimit int32 `protobuf:"varint,6,opt,name=failed_run_history_limit,json=failedRunHistoryLimit,proto3" json:"failed_run_history_limit,omitempty"` // Number of failed runs to keep + ScheduleState string `protobuf:"bytes,7,opt,name=schedule_state,json=scheduleState,proto3" json:"schedule_state,omitempty"` // Current state: Scheduled, Validating, FailedValidation + LastRunName string `protobuf:"bytes,8,opt,name=last_run_name,json=lastRunName,proto3" json:"last_run_name,omitempty"` // Name of the last SparkApplication created + LastRun *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=last_run,json=lastRun,proto3" json:"last_run,omitempty"` // Time of last run + NextRun *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=next_run,json=nextRun,proto3" json:"next_run,omitempty"` // Time of next scheduled run + PastSuccessfulRunNames []string `protobuf:"bytes,11,rep,name=past_successful_run_names,json=pastSuccessfulRunNames,proto3" json:"past_successful_run_names,omitempty"` // Names of past successful runs + PastFailedRunNames []string `protobuf:"bytes,12,rep,name=past_failed_run_names,json=pastFailedRunNames,proto3" json:"past_failed_run_names,omitempty"` // Names of past failed runs + Reason string `protobuf:"bytes,13,opt,name=reason,proto3" json:"reason,omitempty"` // Reason for current schedule state + // Template fields (inherited from SparkApplication) + TemplateDetails *SparkApplicationDetails `protobuf:"bytes,14,opt,name=template_details,json=templateDetails,proto3" json:"template_details,omitempty"` // Details from the SparkApplication template +} + +func (x *ScheduledSparkApplicationDetails) Reset() { + *x = ScheduledSparkApplicationDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_common_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScheduledSparkApplicationDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScheduledSparkApplicationDetails) ProtoMessage() {} + +func (x *ScheduledSparkApplicationDetails) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_common_proto_msgTypes[122] + 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 ScheduledSparkApplicationDetails.ProtoReflect.Descriptor instead. +func (*ScheduledSparkApplicationDetails) Descriptor() ([]byte, []int) { + return file_api_v1_common_proto_rawDescGZIP(), []int{122} +} + +func (x *ScheduledSparkApplicationDetails) GetSchedule() string { + if x != nil { + return x.Schedule + } + return "" +} + +func (x *ScheduledSparkApplicationDetails) GetTimeZone() string { + if x != nil { + return x.TimeZone + } + return "" +} + +func (x *ScheduledSparkApplicationDetails) GetSuspended() bool { + if x != nil { + return x.Suspended + } + return false +} + +func (x *ScheduledSparkApplicationDetails) GetConcurrencyPolicy() string { + if x != nil { + return x.ConcurrencyPolicy + } + return "" +} + +func (x *ScheduledSparkApplicationDetails) GetSuccessfulRunHistoryLimit() int32 { + if x != nil { + return x.SuccessfulRunHistoryLimit + } + return 0 +} + +func (x *ScheduledSparkApplicationDetails) GetFailedRunHistoryLimit() int32 { + if x != nil { + return x.FailedRunHistoryLimit + } + return 0 +} + +func (x *ScheduledSparkApplicationDetails) GetScheduleState() string { + if x != nil { + return x.ScheduleState + } + return "" +} + +func (x *ScheduledSparkApplicationDetails) GetLastRunName() string { + if x != nil { + return x.LastRunName + } + return "" +} + +func (x *ScheduledSparkApplicationDetails) GetLastRun() *timestamppb.Timestamp { + if x != nil { + return x.LastRun + } + return nil +} + +func (x *ScheduledSparkApplicationDetails) GetNextRun() *timestamppb.Timestamp { + if x != nil { + return x.NextRun + } + return nil +} + +func (x *ScheduledSparkApplicationDetails) GetPastSuccessfulRunNames() []string { + if x != nil { + return x.PastSuccessfulRunNames + } + return nil +} + +func (x *ScheduledSparkApplicationDetails) GetPastFailedRunNames() []string { + if x != nil { + return x.PastFailedRunNames + } + return nil +} + +func (x *ScheduledSparkApplicationDetails) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *ScheduledSparkApplicationDetails) GetTemplateDetails() *SparkApplicationDetails { + if x != nil { + return x.TemplateDetails + } + return nil +} + type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -12548,7 +12727,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_common_proto_msgTypes[122] + mi := &file_api_v1_common_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12561,7 +12740,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_common_proto_msgTypes[122] + mi := &file_api_v1_common_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12574,7 +12753,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_api_v1_common_proto_rawDescGZIP(), []int{122} + return file_api_v1_common_proto_rawDescGZIP(), []int{123} } func (x *Event) GetId() string { @@ -12790,7 +12969,7 @@ type EventDatapointInfo struct { func (x *EventDatapointInfo) Reset() { *x = EventDatapointInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_common_proto_msgTypes[123] + mi := &file_api_v1_common_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12803,7 +12982,7 @@ func (x *EventDatapointInfo) String() string { func (*EventDatapointInfo) ProtoMessage() {} func (x *EventDatapointInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_common_proto_msgTypes[123] + mi := &file_api_v1_common_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12816,7 +12995,7 @@ func (x *EventDatapointInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use EventDatapointInfo.ProtoReflect.Descriptor instead. func (*EventDatapointInfo) Descriptor() ([]byte, []int) { - return file_api_v1_common_proto_rawDescGZIP(), []int{123} + return file_api_v1_common_proto_rawDescGZIP(), []int{124} } func (x *EventDatapointInfo) GetName() string { @@ -12881,7 +13060,7 @@ type EventDatapoint struct { func (x *EventDatapoint) Reset() { *x = EventDatapoint{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_common_proto_msgTypes[124] + mi := &file_api_v1_common_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12894,7 +13073,7 @@ func (x *EventDatapoint) String() string { func (*EventDatapoint) ProtoMessage() {} func (x *EventDatapoint) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_common_proto_msgTypes[124] + mi := &file_api_v1_common_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12907,7 +13086,7 @@ func (x *EventDatapoint) ProtoReflect() protoreflect.Message { // Deprecated: Use EventDatapoint.ProtoReflect.Descriptor instead. func (*EventDatapoint) Descriptor() ([]byte, []int) { - return file_api_v1_common_proto_rawDescGZIP(), []int{124} + return file_api_v1_common_proto_rawDescGZIP(), []int{125} } func (x *EventDatapoint) GetUtcTime() string { @@ -13927,7 +14106,7 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xe4, 0x46, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xe0, 0x47, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x6f, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, @@ -14049,1162 +14228,1462 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x17, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x70, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x70, 0x12, 0x17, 0x0a, - 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x68, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x71, 0x6f, 0x73, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x6f, - 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x63, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x13, 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x67, 0x65, - 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x73, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x29, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x2c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2d, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x2e, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, - 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x64, - 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x6f, 0x64, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, - 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x3d, 0x0a, 0x1b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x3f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, - 0x0a, 0x14, 0x70, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, - 0x63, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x42, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x48, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, - 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x4d, 0x69, 0x73, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, - 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x4c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x17, - 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x6a, - 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x18, 0x51, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x12, 0x27, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, - 0x69, 0x73, 0x6d, 0x18, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x50, 0x61, - 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x6a, 0x6f, 0x62, - 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x53, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x54, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x55, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6a, 0x6f, - 0x62, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x6f, - 0x62, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x56, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6a, 0x6f, 0x62, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, - 0x58, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x50, 0x6f, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x59, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, - 0x6f, 0x62, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x5a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, - 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x6f, 0x6e, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x5c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, - 0x62, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x72, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x72, 0x6f, - 0x6e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x72, 0x6f, 0x6e, - 0x4e, 0x65, 0x78, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x36, 0x0a, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x15, 0x63, 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x72, 0x6f, 0x6e, - 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x6a, 0x6f, 0x62, 0x73, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x60, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x63, 0x72, - 0x6f, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x61, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x63, 0x72, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x63, 0x72, - 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x61, 0x64, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x62, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x1b, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, - 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, - 0x70, 0x73, 0x12, 0x38, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x68, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x79, 0x18, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, - 0x45, 0x0a, 0x1f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x1c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4c, 0x0a, - 0x23, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x18, 0x6c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, - 0x73, 0x18, 0x6e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x73, - 0x74, 0x73, 0x18, 0x79, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x7a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, - 0x7b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x7c, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, 0x73, 0x48, 0x6f, 0x73, - 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, - 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x7d, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x73, 0x18, - 0x7e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x6f, - 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x70, 0x73, 0x12, 0x2e, 0x0a, - 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, - 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, - 0x63, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x63, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x35, 0x0a, 0x16, 0x70, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x14, 0x70, 0x76, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, - 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x76, 0x63, 0x5f, 0x61, - 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x84, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x76, 0x63, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, - 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x76, 0x63, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x85, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x76, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x76, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x76, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x70, 0x76, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x87, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x76, 0x63, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x76, 0x63, 0x5f, 0x69, 0x73, 0x5f, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x76, - 0x63, 0x49, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x76, 0x63, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x76, - 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, 0x8b, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x70, 0x76, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, - 0x76, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x76, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x97, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x76, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x76, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x73, 0x18, 0x98, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x76, - 0x5f, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, - 0x99, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x76, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x76, 0x5f, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x9a, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x76, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, - 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x9b, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x76, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x76, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x76, 0x5f, 0x69, 0x73, - 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, - 0x76, 0x49, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x76, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x70, 0x76, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x70, 0x76, 0x5f, 0x63, 0x73, 0x69, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x9f, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x76, 0x43, 0x73, 0x69, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x76, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0xa0, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, 0x5f, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, - 0x65, 0x73, 0x18, 0xa1, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x26, - 0x0a, 0x0e, 0x73, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, - 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x5f, 0x72, 0x65, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0xab, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xac, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x63, 0x5f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xad, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, - 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x70, 0x61, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0xae, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x63, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, - 0xaf, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x73, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, - 0x63, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0xb0, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x63, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x73, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0xb1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0xb2, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x73, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, - 0xb3, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x70, 0x75, 0x43, - 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, - 0xb4, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x0b, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0xb6, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, - 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0xb7, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x5f, 0x69, 0x70, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0xb9, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, - 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0xbb, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6f, 0x73, 0x18, 0xbc, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, - 0x4f, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xbd, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x14, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xbe, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x68, 0x70, 0x61, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, - 0x29, 0x0a, 0x10, 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x70, 0x61, 0x4d, - 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x70, - 0x61, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x73, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x70, 0x61, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, - 0x14, 0x68, 0x70, 0x61, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x70, - 0x61, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x68, 0x70, - 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x68, 0x70, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x68, 0x70, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, - 0x1a, 0x68, 0x70, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x5f, 0x73, 0x74, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xce, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x17, 0x68, 0x70, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x70, 0x53, 0x74, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x1c, 0x68, - 0x70, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xcf, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x19, 0x68, 0x70, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, - 0x53, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, - 0x0f, 0x76, 0x70, 0x61, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0xd2, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x70, 0x61, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x76, 0x70, 0x61, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xd3, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x10, 0x76, 0x70, 0x61, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x19, 0x76, 0x70, 0x61, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0xd4, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x76, 0x70, 0x61, 0x52, 0x65, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x70, 0x61, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x70, 0x61, - 0x43, 0x70, 0x75, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x70, 0x61, - 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0xd6, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x70, 0x61, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x70, 0x61, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x70, 0x61, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, - 0x0a, 0x11, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0xdd, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x18, 0xdf, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, - 0x61, 0x78, 0x43, 0x70, 0x75, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, - 0xe0, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, - 0x70, 0x75, 0x18, 0xe1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x12, 0x34, 0x0a, 0x16, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0xe2, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x12, 0x41, 0x0a, 0x1d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0xe3, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x70, 0x75, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0xe4, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x1c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, - 0x1f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x18, 0xe5, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x70, 0x75, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x22, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xe6, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x1e, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf0, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf1, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x42, - 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 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, 0x1a, 0x3f, 0x0a, 0x11, 0x53, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x46, - 0x0a, 0x0a, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0a, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x12, 0x7a, 0x0a, 0x23, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xf3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x20, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x61, + 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, + 0x49, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x71, 0x6f, 0x73, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x6f, 0x73, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x70, 0x75, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x63, 0x70, 0x75, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, - 0x32, 0x0a, 0x15, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x13, 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4d, 0x69, 0x6c, - 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 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, 0x28, 0x0a, - 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x44, - 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x6f, - 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, - 0x81, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, + 0x12, 0x36, 0x0a, 0x17, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x15, 0x63, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x4d, 0x69, + 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x70, 0x75, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, + 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, + 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x2d, + 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, + 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x64, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x3d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x6f, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x18, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x76, + 0x63, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, 0x63, 0x52, 0x65, 0x74, + 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x65, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, + 0x4b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x69, 0x73, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, + 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6a, 0x6f, 0x62, 0x5f, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x6a, 0x6f, 0x62, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x12, 0x3a, 0x0a, 0x19, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x51, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x17, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, + 0x6a, 0x6f, 0x62, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, + 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, + 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x61, 0x63, + 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x53, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x54, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x18, 0x55, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x75, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x56, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x6f, + 0x62, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x58, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x64, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x70, + 0x6f, 0x64, 0x73, 0x18, 0x59, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x6f, 0x6e, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x5b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x63, 0x72, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x35, + 0x0a, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x14, 0x63, 0x72, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x72, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, + 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, + 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x60, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x33, 0x0a, 0x16, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x61, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x13, 0x63, 0x72, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, + 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x62, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, + 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, + 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x70, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, 0x12, 0x30, 0x0a, 0x14, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x69, 0x70, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x73, 0x12, 0x38, + 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x68, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x69, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x6a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4c, 0x0a, 0x23, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x18, 0x6c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, + 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x6e, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x79, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x73, + 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x18, 0x7a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x7b, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, + 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x7c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, 0x73, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x2e, + 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x7d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x39, + 0x0a, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x7e, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x7f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x80, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x63, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x16, + 0x70, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, + 0x76, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x70, 0x76, 0x63, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x85, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x70, 0x76, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x70, 0x76, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x63, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x76, 0x63, 0x5f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x87, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x88, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x76, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x76, 0x63, 0x5f, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x76, 0x63, 0x49, 0x73, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x76, 0x63, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x35, 0x0a, 0x16, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, + 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, 0x8b, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x14, 0x70, 0x76, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x76, 0x5f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x76, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x76, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, + 0x0f, 0x70, 0x76, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, + 0x18, 0x98, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x76, 0x5f, 0x72, 0x65, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x99, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x76, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x76, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, + 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x9a, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x70, 0x76, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x34, 0x0a, 0x16, 0x70, 0x76, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x70, 0x76, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x76, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x76, 0x5f, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x76, 0x49, 0x73, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x76, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, + 0x76, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, + 0x76, 0x5f, 0x63, 0x73, 0x69, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x9f, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x76, 0x43, 0x73, 0x69, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x12, 0x32, 0x0a, 0x15, 0x70, 0x76, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x70, 0x76, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0xa1, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x63, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0xaa, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x73, 0x63, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x34, 0x0a, 0x16, 0x73, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xac, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x73, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0xad, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x63, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0xae, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x2e, 0x53, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, 0xaf, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x13, 0x73, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x63, 0x5f, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x63, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0xb1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, + 0x73, 0x18, 0xb2, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x73, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, + 0x70, 0x75, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0xb3, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x70, 0x75, 0x43, 0x61, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0xb4, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x43, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, + 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0xb6, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x52, + 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0xb7, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, + 0xb8, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0xbb, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x73, 0x18, + 0xbc, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x73, 0x12, 0x35, + 0x0a, 0x16, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x14, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xbe, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x29, 0x0a, 0x10, 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x73, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x70, 0x61, + 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x68, + 0x70, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, + 0xc9, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x70, 0x61, 0x4d, 0x61, 0x78, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x70, 0x61, 0x5f, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0xca, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x70, 0x61, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x70, 0x61, + 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x70, 0x61, 0x44, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2b, 0x0a, 0x11, + 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x68, 0x70, 0x61, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x70, 0x61, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x68, 0x70, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x70, 0x61, + 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, + 0x68, 0x70, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x70, 0x53, 0x74, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x1c, 0x68, 0x70, 0x61, 0x5f, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, + 0x68, 0x70, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x53, 0x74, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x70, 0x61, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xd2, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x70, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x76, 0x70, 0x61, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x10, 0x76, 0x70, 0x61, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x3b, 0x0a, 0x19, 0x76, 0x70, 0x61, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xd4, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x76, 0x70, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x76, 0x70, 0x61, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x70, 0x61, 0x43, 0x70, 0x75, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x70, 0x61, 0x5f, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x76, 0x70, 0x61, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x70, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x70, 0x61, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xdc, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0xdd, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x73, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x43, 0x70, + 0x75, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0xe0, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, + 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x18, 0xe1, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x18, 0xe2, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x41, 0x0a, + 0x1d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0xe3, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x47, 0x0a, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0xe4, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xe5, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x4b, 0x0a, 0x22, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, + 0x12, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x10, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0xf0, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x42, 0x0a, 0x14, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0x1a, 0x3f, + 0x0a, 0x11, 0x53, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x6f, + 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, - 0x6f, 0x62, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, - 0x6c, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, - 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xc0, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, - 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x6a, 0x6f, - 0x62, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xda, 0x01, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, + 0x6f, 0x6e, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x63, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x69, + 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, + 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, + 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x44, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x39, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6e, + 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x81, 0x01, 0x0a, 0x11, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, - 0x73, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, - 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xba, - 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x29, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4f, - 0x0a, 0x15, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x2d, 0x0a, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x3b, - 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0xdc, 0x01, 0x0a, 0x0b, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 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, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, - 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x6f, - 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xf3, 0x01, 0x0a, - 0x0e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x29, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x03, 0x74, 0x6c, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x4c, 0x53, 0x52, 0x03, 0x74, 0x6c, 0x73, - 0x12, 0x3f, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x61, 0x63, 0x6b, - 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x12, 0x4f, 0x0a, 0x15, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x13, 0x6c, - 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x22, 0x70, 0x0a, 0x0b, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x30, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, - 0x6e, 0x64, 0x22, 0xfe, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, - 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x0a, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x4c, - 0x53, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x02, 0x0a, 0x1c, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x08, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, - 0x4c, 0x0a, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, - 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x12, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x43, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x62, - 0x79, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x64, 0x42, 0x79, 0x50, 0x6f, 0x64, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x14, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x06, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x1a, 0x3b, - 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x39, 0x0a, 0x0b, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, - 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, - 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x50, 0x56, - 0x43, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, - 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0xf5, 0x02, 0x0a, 0x17, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x49, - 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, - 0x12, 0x3b, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x56, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x39, 0x0a, - 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, - 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, - 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3b, 0x0a, - 0x0d, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 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, 0xa2, 0x01, 0x0a, 0x10, 0x50, - 0x56, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0xd5, 0x02, 0x0a, 0x0e, 0x50, 0x56, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x63, 0x73, 0x69, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x53, 0x49, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x63, 0x73, - 0x69, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x03, - 0x6e, 0x66, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x46, 0x53, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x03, 0x6e, 0x66, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x10, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, + 0xb0, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0e, + 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x7d, + 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xda, 0x01, + 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, + 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, + 0x6f, 0x66, 0x66, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, + 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, + 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x15, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0xa5, 0x02, 0x0a, 0x0f, 0x43, 0x53, 0x49, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5a, - 0x0a, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 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, 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, - 0x3e, 0x0a, 0x14, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x5a, 0x0a, 0x0f, 0x4e, 0x46, 0x53, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 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, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xbe, 0x03, 0x0a, 0x13, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, - 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, - 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 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, + 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x69, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xf3, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x4c, 0x53, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x0f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x0e, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x4f, 0x0a, + 0x15, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x4c, + 0x0a, 0x0b, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, + 0x74, 0x12, 0x29, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x70, 0x0a, 0x0b, + 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x07, + 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0xfe, + 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x43, 0x0a, 0x0a, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x4c, 0x53, 0x12, 0x14, 0x0a, + 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, + 0x73, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x02, 0x0a, 0x1c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x14, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x12, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x43, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x6f, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x50, 0x6f, 0x64, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 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, 0x39, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x50, 0x56, 0x43, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, + 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf5, + 0x02, 0x0a, 0x17, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x72, + 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x56, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x3b, 0x0a, 0x0d, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 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, 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x56, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x10, 0x0a, + 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd5, 0x02, 0x0a, 0x0e, + 0x50, 0x56, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x63, 0x73, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x63, 0x73, 0x69, 0x12, 0x39, 0x0a, + 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, + 0x68, 0x6f, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x03, 0x6e, 0x66, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x46, 0x53, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, + 0x6e, 0x66, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, + 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 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, 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, 0xa5, 0x02, 0x0a, 0x0f, 0x43, 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, + 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5a, 0x0a, 0x11, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 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, 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, 0x3e, 0x0a, 0x14, 0x48, + 0x6f, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0f, 0x4e, + 0x46, 0x53, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 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, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, + 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xbe, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x47, + 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, + 0x67, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, + 0x61, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, + 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 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, 0xd1, 0x01, 0x0a, - 0x10, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdf, 0x03, 0x0a, + 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x35, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x3d, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x46, + 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 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, 0x3e, + 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 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, 0x6a, + 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 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, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x0b, 0x4e, 0x6f, + 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x0d, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8d, 0x03, 0x0a, 0x0e, 0x4e, 0x6f, + 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x55, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, + 0x6f, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, + 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x75, + 0x62, 0x65, 0x6c, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, + 0x6b, 0x75, 0x62, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x75, 0x62, 0x65, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x40, 0x0a, 0x09, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x10, 0x54, + 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, + 0x54, 0x0a, 0x17, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x52, 0x15, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x50, + 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, + 0x72, 0x6d, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 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, 0xdf, 0x03, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x63, - 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, - 0x74, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x41, 0x6c, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, - 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x79, 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, 0x3e, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, - 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, 0x6a, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 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, + 0x22, 0x9b, 0x01, 0x0a, 0x0e, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x22, 0x3b, - 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x0d, - 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 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, 0x2e, 0x0a, 0x13, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8d, 0x03, - 0x0a, 0x0e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x55, 0x75, 0x69, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x72, - 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6f, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x75, 0x62, 0x65, 0x6c, - 0x65, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x2c, 0x0a, 0x12, 0x6b, 0x75, 0x62, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x75, - 0x62, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, - 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x40, 0x0a, - 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, - 0x68, 0x0a, 0x10, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x12, 0x54, 0x0a, 0x17, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, - 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, - 0x72, 0x6d, 0x52, 0x15, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x14, 0x54, 0x6f, - 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, - 0x72, 0x6d, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 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, 0x9b, 0x01, 0x0a, 0x0e, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x11, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x74, 0x65, 0x72, - 0x6d, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x4c, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 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, 0x12, 0x42, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x4e, 0x6f, 0x64, - 0x65, 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, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xa5, 0x02, 0x0a, 0x0a, 0x48, - 0x50, 0x41, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, - 0x6c, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x0e, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x07, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, - 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, - 0x0a, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, - 0x41, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x22, 0x59, 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe9, 0x01, - 0x0a, 0x09, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x35, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, - 0x41, 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x70, 0x6f, 0x64, - 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, - 0x41, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, - 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, 0x6b, 0x0a, 0x11, 0x48, 0x50, 0x41, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x48, 0x50, 0x41, 0x50, 0x6f, - 0x64, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xcf, 0x01, 0x0a, 0x0f, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x45, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, - 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x11, 0x48, 0x50, 0x41, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa9, - 0x01, 0x0a, 0x11, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3b, 0x0a, - 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0x7b, 0x0a, 0x12, 0x48, 0x50, - 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, + 0x2d, 0x0a, 0x12, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x74, 0x6f, 0x6c, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x3e, + 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2e, + 0x0a, 0x05, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x22, 0xa4, + 0x01, 0x0a, 0x10, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, + 0x65, 0x72, 0x6d, 0x12, 0x4c, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 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, 0x12, 0x42, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x4e, 0x6f, 0x64, 0x65, 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, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 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, 0xa5, 0x02, 0x0a, 0x0a, 0x48, 0x50, 0x41, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x52, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x41, 0x0a, 0x0f, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, + 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x59, + 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x48, 0x50, 0x41, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, - 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, - 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, 0x93, 0x01, 0x0a, 0x18, 0x48, 0x50, 0x41, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x14, - 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe9, 0x01, 0x0a, 0x09, 0x48, 0x50, + 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x50, 0x6f, 0x64, + 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x12, 0x2f, 0x0a, + 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x35, + 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, 0x6b, 0x0a, 0x11, 0x48, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x48, 0x50, 0x41, 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x16, - 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x45, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, - 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9e, - 0x01, 0x0a, 0x0c, 0x48, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0f, + 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x45, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, + 0x0a, 0x11, 0x48, 0x50, 0x41, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x11, 0x48, + 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 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, 0x7b, 0x0a, 0x12, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x64, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x06, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x22, 0x93, 0x01, 0x0a, 0x18, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x75, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x14, 0x48, 0x50, 0x41, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x61, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x16, 0x48, 0x50, 0x41, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x12, 0x45, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x23, 0x0a, 0x0d, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x31, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x48, + 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x0b, 0x48, + 0x50, 0x41, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x70, 0x12, 0x36, + 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x53, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x48, 0x50, 0x41, 0x53, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x73, 0x74, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x1a, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, + 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x10, 0x48, 0x50, 0x41, 0x53, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xbc, 0x02, 0x0a, + 0x0a, 0x56, 0x50, 0x41, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, + 0x12, 0x3c, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x50, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x42, + 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x0c, 0x56, + 0x50, 0x41, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x0f, 0x56, 0x50, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x66, 0x0a, 0x11, 0x56, + 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x51, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x22, 0xdf, 0x03, 0x0a, 0x1a, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, + 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x69, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x61, 0x78, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x78, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 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, 0x3d, 0x0a, 0x0f, 0x4d, 0x61, 0x78, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 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, 0x74, 0x0a, 0x11, 0x56, 0x50, 0x41, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x19, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x05, 0x0a, 0x1a, + 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, + 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x53, + 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x5f, 0x0a, 0x0f, 0x75, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x55, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x75, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 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, 0x3d, + 0x0a, 0x0f, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 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, 0x41, 0x0a, + 0x13, 0x55, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, + 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, + 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x43, 0x0a, 0x11, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xd8, 0x05, 0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, + 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, + 0x53, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x31, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x69, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x67, 0x0a, 0x17, 0x6d, 0x61, + 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, + 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x61, + 0x74, 0x69, 0x6f, 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 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, 0x41, 0x0a, 0x13, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x78, 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, 0x36, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 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, 0x47, 0x0a, 0x19, 0x4d, 0x61, 0x78, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 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, 0xd1, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, + 0x75, 0x6c, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x01, 0x0a, + 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x70, 0x69, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x70, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x66, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x54, 0x0a, 0x0d, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x69, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x22, 0xe4, 0x02, 0x0a, 0x17, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, + 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x41, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, 0x61, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x17, 0x4b, 0x65, + 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 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, 0xab, 0x01, 0x0a, 0x19, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, @@ -15214,333 +15693,139 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0x79, 0x0a, 0x0b, 0x48, 0x50, 0x41, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x32, - 0x0a, 0x08, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x53, 0x63, 0x61, - 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x55, 0x70, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x50, 0x41, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x48, - 0x50, 0x41, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x40, - 0x0a, 0x1c, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x50, 0x41, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x10, 0x48, - 0x50, 0x41, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x22, 0xbc, 0x02, 0x0a, 0x0a, 0x56, 0x50, 0x41, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x33, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x65, 0x66, 0x12, 0x3c, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x52, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x57, 0x0a, 0x0c, 0x56, 0x50, 0x41, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, - 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, - 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x0f, 0x56, 0x50, 0x41, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, - 0x66, 0x0a, 0x11, 0x56, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x51, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0xdf, 0x03, 0x0a, 0x1a, 0x56, 0x50, 0x41, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x69, 0x6e, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x4d, 0x61, 0x78, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2b, - 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, - 0x69, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 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, 0x3d, 0x0a, 0x0f, 0x4d, 0x61, - 0x78, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 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, 0x74, 0x0a, 0x11, 0x56, 0x50, 0x41, - 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, - 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x92, 0x05, 0x0a, 0x1a, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x53, 0x0a, - 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, 0x70, 0x70, - 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x5f, 0x0a, 0x0f, 0x75, 0x6e, 0x63, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x36, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x75, 0x6e, 0x63, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, - 0x64, 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, 0x3d, 0x0a, 0x0f, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 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, 0x41, 0x0a, 0x13, 0x55, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x11, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, - 0x65, 0x6d, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xd8, 0x05, 0x0a, 0x0e, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x61, - 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x31, 0x0a, 0x03, 0x6d, - 0x69, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x2e, 0x4d, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x67, - 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 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, 0x41, 0x0a, 0x13, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x36, 0x0a, 0x08, - 0x4d, 0x61, 0x78, 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, 0x36, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x85, 0x04, 0x0a, 0x18, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 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, 0x42, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, + 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x66, 0x12, 0x1b, 0x0a, 0x09, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x61, 0x72, 0x70, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x1a, 0x4b, 0x61, 0x72, 0x70, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x11, 0x4b, 0x61, 0x72, 0x70, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, + 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x1a, 0x38, 0x0a, 0x0a, 0x4f, 0x74, 0x68, 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, 0x1a, 0x47, 0x0a, 0x19, - 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x61, 0x74, 0x69, 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, 0xd1, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x45, 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x29, - 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x22, 0x84, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x70, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x65, - 0x72, 0x62, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, - 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x36, 0x0a, - 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x72, 0x65, - 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, - 0x72, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x22, 0x54, 0x0a, 0x0d, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, - 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xe4, 0x02, 0x0a, 0x17, 0x4b, 0x65, 0x64, 0x61, 0x53, - 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6b, 0x69, - 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, - 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb5, 0x01, - 0x0a, 0x17, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, - 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0xab, 0x01, 0x0a, 0x19, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, - 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0x85, 0x04, 0x0a, 0x18, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 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, 0x42, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, - 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x08, - 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x66, - 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, - 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x1a, - 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5c, 0x0a, 0x14, + 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 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, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xc5, 0x04, 0x0a, 0x0f, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x49, + 0x0a, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x48, 0x00, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x11, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, + 0x6b, 0x69, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0c, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x12, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x22, 0x94, 0x04, 0x0a, 0x1a, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, + 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x5f, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 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, 0xae, 0x01, 0x0a, 0x1c, 0x50, 0x6f, + 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, @@ -15549,172 +15834,43 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x11, 0x4b, - 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, - 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, - 0x63, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x1a, 0x38, 0x0a, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa3, 0x04, 0x0a, 0x14, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x68, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x55, + 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, + 0x6d, 0x69, 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, 0x37, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x64, 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, 0x40, + 0x0a, 0x12, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0x5c, 0x0a, 0x14, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 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, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xc5, - 0x04, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x49, 0x0a, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, - 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, - 0x01, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, - 0x6e, 0x64, 0x52, 0x0a, 0x6b, 0x69, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3c, - 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, - 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x48, 0x03, 0x52, 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x77, 0x6f, 0x72, 0x6b, - 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x94, 0x04, 0x0a, 0x1a, 0x50, 0x6f, 0x64, 0x44, 0x69, - 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, - 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, - 0x78, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x12, 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x5f, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x75, 0x64, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 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, 0xae, 0x01, - 0x0a, 0x1c, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x75, 0x64, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa3, - 0x04, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x68, 0x61, 0x72, 0x64, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x48, 0x61, 0x72, 0x64, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x68, 0x61, 0x72, 0x64, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x75, 0x73, - 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x0e, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x51, 0x75, 0x6f, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x48, 0x61, - 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 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, 0x37, 0x0a, 0x09, 0x55, 0x73, 0x65, - 0x64, 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, 0x40, 0x0a, 0x12, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 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, 0xa8, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, - 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xc1, 0x02, 0x0a, 0x11, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, - 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, - 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, @@ -15723,328 +15879,407 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x0b, 0x56, - 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x73, 0x22, 0xe6, 0x05, 0x0a, 0x17, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x11, + 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, - 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x69, - 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, - 0x0a, 0x11, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x30, 0x0a, 0x14, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, - 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x51, 0x0a, 0x12, 0x64, - 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x64, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xdc, - 0x02, 0x0a, 0x0f, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, - 0x13, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x65, 0x62, 0x55, - 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x55, 0x69, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x77, 0x65, 0x62, 0x55, 0x69, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x77, 0x65, 0x62, 0x55, 0x69, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x33, 0x0a, 0x16, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x13, 0x77, 0x65, 0x62, 0x55, 0x69, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x02, - 0x0a, 0x16, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, - 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x6f, 0x6e, - 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6f, - 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6f, 0x6e, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x24, 0x6f, 0x6e, 0x5f, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, - 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x79, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xa1, 0x02, 0x0a, 0x1a, 0x53, 0x70, 0x61, - 0x72, 0x6b, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x23, - 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x68, 0x75, 0x66, - 0x66, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x68, 0x75, 0x66, - 0x66, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x54, 0x72, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x8b, 0x08, 0x0a, - 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, - 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, - 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, - 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, - 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x29, - 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x2a, 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, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, - 0x65, 0x65, 0x6e, 0x18, 0x2b, 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, 0x65, 0x65, 0x6e, 0x12, - 0x24, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x61, 0x67, - 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x41, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x41, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x2e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x41, 0x67, 0x65, 0x12, - 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x2f, 0x20, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, + 0x6f, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, + 0x63, 0x61, 0x6e, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, + 0xa5, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x63, 0x61, + 0x6e, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x73, 0x22, 0x8f, 0x06, 0x0a, 0x17, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, + 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, + 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x69, + 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x69, 0x6e, + 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x11, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x51, 0x0a, 0x12, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x11, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xdc, 0x02, 0x0a, 0x0f, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x77, 0x65, 0x62, 0x55, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x55, 0x69, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x5f, 0x75, + 0x69, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x77, 0x65, + 0x62, 0x55, 0x69, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x5f, 0x75, + 0x69, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x65, 0x62, 0x55, 0x69, 0x49, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x77, 0x65, 0x62, 0x55, 0x69, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x16, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, + 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, + 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x39, 0x0a, 0x19, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, + 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x16, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, + 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x6e, + 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1a, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x4e, 0x0a, + 0x24, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6f, 0x6e, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, + 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xa1, 0x02, + 0x0a, 0x1a, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, + 0x18, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x16, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x68, 0x75, 0x66, 0x66, + 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x68, 0x75, 0x66, 0x66, + 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x22, 0xad, 0x05, 0x0a, 0x20, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, + 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 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, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x2d, 0x0a, + 0x12, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3f, 0x0a, 0x1c, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x19, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x52, 0x75, + 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, + 0x18, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x15, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, + 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 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, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xc9, 0x01, 0x0a, 0x12, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 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, 0x12, - 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6e, 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, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x74, 0x63, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x74, 0x63, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x8f, 0x0a, - 0x0a, 0x0d, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, - 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, - 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x5f, 0x53, 0x45, 0x54, 0x10, - 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x46, 0x55, 0x4c, 0x5f, 0x53, 0x45, - 0x54, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x41, 0x45, 0x4d, 0x4f, 0x4e, 0x5f, 0x53, 0x45, - 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, + 0x07, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x0a, 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, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x12, + 0x39, 0x0a, 0x19, 0x70, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, + 0x75, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x16, 0x70, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, + 0x75, 0x6c, 0x52, 0x75, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x70, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x70, 0x61, 0x73, 0x74, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x10, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x22, 0x8b, 0x08, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x69, 0x6e, 0x76, 0x6f, + 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x29, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x2a, + 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x2b, 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, 0x65, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x41, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x41, 0x67, 0x65, + 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x67, + 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, + 0x6e, 0x41, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x2f, 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, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0xc9, 0x01, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6e, 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, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x0e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, + 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x2a, 0xc0, 0x0a, 0x0a, 0x0d, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, + 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, + 0x5f, 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x46, + 0x55, 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x41, 0x45, 0x4d, + 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4b, 0x38, 0x53, 0x5f, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x10, + 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x06, 0x12, + 0x2a, 0x0a, 0x26, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4b, + 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, + 0x4f, 0x44, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, + 0x45, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x0a, 0x12, 0x1b, 0x0a, + 0x17, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x38, + 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x38, 0x53, + 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x49, 0x43, 0x45, 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x0e, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, + 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, 0x2b, 0x0a, + 0x27, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55, + 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d, 0x4b, 0x38, + 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x11, 0x12, 0x20, 0x0a, + 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x41, 0x52, 0x47, 0x4f, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x10, 0x12, 0x12, + 0x2d, 0x0a, 0x29, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x50, 0x4f, + 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x10, 0x13, 0x12, 0x2b, + 0x0a, 0x27, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x41, + 0x55, 0x54, 0x4f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x10, 0x14, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, + 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4c, + 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x15, 0x12, 0x23, 0x0a, 0x1f, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x43, 0x52, 0x4f, 0x4e, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x06, 0x12, 0x2a, 0x0a, 0x26, 0x4b, 0x38, - 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, - 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, - 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x44, 0x10, 0x08, 0x12, - 0x1d, 0x0a, 0x19, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x18, - 0x0a, 0x14, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, - 0x45, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, - 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x41, 0x50, 0x10, - 0x0e, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, - 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, 0x2b, 0x0a, 0x27, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x45, 0x52, 0x53, - 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x43, 0x4c, - 0x41, 0x49, 0x4d, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, - 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x4f, - 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x10, 0x12, 0x12, 0x2d, 0x0a, 0x29, 0x4b, 0x38, - 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x4f, - 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x41, 0x55, 0x54, - 0x4f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x10, 0x13, 0x12, 0x2b, 0x0a, 0x27, 0x4b, 0x38, 0x53, - 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x56, 0x45, 0x52, - 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x53, 0x43, - 0x41, 0x4c, 0x45, 0x52, 0x10, 0x14, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, - 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x15, 0x12, 0x23, 0x0a, 0x1f, 0x4b, 0x38, 0x53, 0x5f, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, - 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x16, 0x12, 0x18, 0x0a, 0x14, + 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, + 0x16, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x4b, + 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, + 0x4f, 0x4c, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x26, 0x0a, + 0x22, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x4b, 0x45, 0x44, 0x41, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x44, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x10, 0x19, 0x12, 0x26, 0x0a, 0x22, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4b, 0x41, 0x52, 0x50, 0x45, 0x4e, 0x54, + 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x1a, 0x12, 0x29, 0x0a, + 0x25, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x52, 0x55, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x42, 0x55, 0x44, 0x47, 0x45, 0x54, 0x10, 0x1b, 0x12, 0x22, 0x0a, 0x1e, 0x4b, 0x38, 0x53, 0x5f, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x1c, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x42, - 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x26, 0x0a, 0x22, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4b, 0x45, 0x44, 0x41, - 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x44, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x19, - 0x12, 0x26, 0x0a, 0x22, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x4b, 0x41, 0x52, 0x50, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x45, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x1a, 0x12, 0x29, 0x0a, 0x25, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x44, 0x5f, - 0x44, 0x49, 0x53, 0x52, 0x55, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x55, 0x44, 0x47, 0x45, - 0x54, 0x10, 0x1b, 0x12, 0x22, 0x0a, 0x1e, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x1c, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x46, - 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x54, 0x45, 0x42, 0x4f, 0x4f, 0x4b, 0x10, 0x1d, 0x12, 0x1f, - 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x56, 0x4f, 0x4c, 0x43, 0x41, 0x4e, 0x4f, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x1e, 0x12, - 0x1a, 0x0a, 0x16, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x10, 0x1f, 0x12, 0x20, 0x0a, 0x1c, 0x4b, - 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, - 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x20, 0x12, 0x28, 0x0a, - 0x24, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x42, 0x49, - 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x21, 0x12, 0x22, 0x0a, 0x1e, 0x4b, 0x38, 0x53, 0x5f, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, - 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x22, 0x12, 0x1b, 0x0a, 0x17, 0x4b, - 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, - 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x50, 0x41, 0x52, - 0x4b, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x24, 0x2a, - 0x48, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x22, - 0x0a, 0x1e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, - 0x44, 0x45, 0x53, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x45, - 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x2a, 0x94, 0x02, 0x0a, 0x15, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, - 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x10, 0x02, - 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x45, 0x58, 0x49, 0x53, - 0x54, 0x53, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, - 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, - 0x44, 0x4f, 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x04, - 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x47, 0x54, 0x10, 0x05, - 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x54, 0x10, 0x06, - 0x2a, 0xa6, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x22, 0x57, 0x4f, 0x52, - 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, - 0x54, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x57, 0x4f, 0x52, 0x4b, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, - 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x03, 0x42, 0x84, 0x01, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, - 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, - 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4b, 0x55, 0x42, 0x45, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x54, 0x45, 0x42, 0x4f, 0x4f, + 0x4b, 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x56, 0x4f, 0x4c, 0x43, 0x41, 0x4e, 0x4f, 0x5f, 0x4a, + 0x4f, 0x42, 0x10, 0x1e, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x10, 0x1f, + 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x4f, 0x4c, 0x45, + 0x10, 0x20, 0x12, 0x28, 0x0a, 0x24, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x4f, + 0x4c, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x21, 0x12, 0x22, 0x0a, 0x1e, + 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x22, + 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x23, 0x12, 0x25, 0x0a, + 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x24, 0x12, 0x2f, 0x0a, 0x2b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, + 0x44, 0x5f, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x2a, 0x48, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, + 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x2a, + 0x94, 0x02, 0x0a, 0x15, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, + 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, + 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, + 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x44, 0x4f, 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, + 0x58, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x47, 0x54, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x4c, 0x54, 0x10, 0x06, 0x2a, 0xa6, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x22, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x4f, 0x52, 0x4b, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, + 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x4f, + 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, + 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, + 0x0a, 0x1b, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x03, 0x42, + 0x84, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x0b, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, 0x72, + 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x67, + 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x41, + 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16060,235 +16295,236 @@ func file_api_v1_common_proto_rawDescGZIP() []byte { } var file_api_v1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_api_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 162) +var file_api_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 163) var file_api_v1_common_proto_goTypes = []interface{}{ - (K8SObjectKind)(0), // 0: api.v1.K8sObjectKind - (OrderByEnum)(0), // 1: api.v1.OrderByEnum - (LabelSelectorOperator)(0), // 2: api.v1.LabelSelectorOperator - (WorkloadStatusFilter)(0), // 3: api.v1.WorkloadStatusFilter - (*AuditLogEntry)(nil), // 4: api.v1.AuditLogEntry - (*Pagination)(nil), // 5: api.v1.Pagination - (*CostInfo)(nil), // 6: api.v1.CostInfo - (*ResourceMetrics)(nil), // 7: api.v1.ResourceMetrics - (*ForecastResourceMetrics)(nil), // 8: api.v1.ForecastResourceMetrics - (*ResourceSummary)(nil), // 9: api.v1.ResourceSummary - (*WorkloadItem)(nil), // 10: api.v1.WorkloadItem - (*ContainerRuntimeInfo)(nil), // 11: api.v1.ContainerRuntimeInfo - (*NodeInfo)(nil), // 12: api.v1.NodeInfo - (*ResourceInfo)(nil), // 13: api.v1.ResourceInfo - (*Node)(nil), // 14: api.v1.Node - (*AttachedVolume)(nil), // 15: api.v1.AttachedVolume - (*NodeGroup)(nil), // 16: api.v1.NodeGroup - (*CostDataPoint)(nil), // 17: api.v1.CostDataPoint - (*ResourceDataPoint)(nil), // 18: api.v1.ResourceDataPoint - (*SavingsData)(nil), // 19: api.v1.SavingsData - (*SavingsDataPoint)(nil), // 20: api.v1.SavingsDataPoint - (*SavingsTimeSeries)(nil), // 21: api.v1.SavingsTimeSeries - (*LabelSelectorRequirement)(nil), // 22: api.v1.LabelSelectorRequirement - (*Label)(nil), // 23: api.v1.Label - (*LabelSelector)(nil), // 24: api.v1.LabelSelector - (*RegexPattern)(nil), // 25: api.v1.RegexPattern - (*ResourceDetails)(nil), // 26: api.v1.ResourceDetails - (*PodDetails)(nil), // 27: api.v1.PodDetails - (*ContainerSummary)(nil), // 28: api.v1.ContainerSummary - (*DeploymentDetails)(nil), // 29: api.v1.DeploymentDetails - (*ContainerTemplate)(nil), // 30: api.v1.ContainerTemplate - (*DeploymentCondition)(nil), // 31: api.v1.DeploymentCondition - (*StatefulSetDetails)(nil), // 32: api.v1.StatefulSetDetails - (*VolumeClaimTemplate)(nil), // 33: api.v1.VolumeClaimTemplate - (*DaemonSetDetails)(nil), // 34: api.v1.DaemonSetDetails - (*ReplicaSetDetails)(nil), // 35: api.v1.ReplicaSetDetails - (*JobDetails)(nil), // 36: api.v1.JobDetails - (*JobCondition)(nil), // 37: api.v1.JobCondition - (*CronJobDetails)(nil), // 38: api.v1.CronJobDetails - (*ActiveJobReference)(nil), // 39: api.v1.ActiveJobReference - (*JobTemplate)(nil), // 40: api.v1.JobTemplate - (*ServiceDetails)(nil), // 41: api.v1.ServiceDetails - (*ServicePort)(nil), // 42: api.v1.ServicePort - (*LoadBalancerIngress)(nil), // 43: api.v1.LoadBalancerIngress - (*IngressDetails)(nil), // 44: api.v1.IngressDetails - (*IngressRule)(nil), // 45: api.v1.IngressRule - (*IngressPath)(nil), // 46: api.v1.IngressPath - (*IngressBackend)(nil), // 47: api.v1.IngressBackend - (*IngressTLS)(nil), // 48: api.v1.IngressTLS - (*PersistentVolumeClaimDetails)(nil), // 49: api.v1.PersistentVolumeClaimDetails - (*ResourceRequirements)(nil), // 50: api.v1.ResourceRequirements - (*VolumeNodeAffinity)(nil), // 51: api.v1.VolumeNodeAffinity - (*PVCCondition)(nil), // 52: api.v1.PVCCondition - (*PersistentVolumeDetails)(nil), // 53: api.v1.PersistentVolumeDetails - (*PVClaimReference)(nil), // 54: api.v1.PVClaimReference - (*PVVolumeSource)(nil), // 55: api.v1.PVVolumeSource - (*CSIVolumeSource)(nil), // 56: api.v1.CSIVolumeSource - (*HostPathVolumeSource)(nil), // 57: api.v1.HostPathVolumeSource - (*NFSVolumeSource)(nil), // 58: api.v1.NFSVolumeSource - (*StorageClassDetails)(nil), // 59: api.v1.StorageClassDetails - (*NamespaceDetails)(nil), // 60: api.v1.NamespaceDetails - (*NodeDetails)(nil), // 61: api.v1.NodeDetails - (*NodeTaint)(nil), // 62: api.v1.NodeTaint - (*NodeAddress)(nil), // 63: api.v1.NodeAddress - (*NodeCondition)(nil), // 64: api.v1.NodeCondition - (*NodeSystemInfo)(nil), // 65: api.v1.NodeSystemInfo - (*NodeImage)(nil), // 66: api.v1.NodeImage - (*TopologySelector)(nil), // 67: api.v1.TopologySelector - (*TopologySelectorTerm)(nil), // 68: api.v1.TopologySelectorTerm - (*TolerationInfo)(nil), // 69: api.v1.TolerationInfo - (*NodeSelector)(nil), // 70: api.v1.NodeSelector - (*NodeSelectorTerm)(nil), // 71: api.v1.NodeSelectorTerm - (*NodeSelectorRequirement)(nil), // 72: api.v1.NodeSelectorRequirement - (*HPADetails)(nil), // 73: api.v1.HPADetails - (*ScaleTargetRef)(nil), // 74: api.v1.ScaleTargetRef - (*HPAMetric)(nil), // 75: api.v1.HPAMetric - (*HPAResourceMetric)(nil), // 76: api.v1.HPAResourceMetric - (*HPAPodsMetric)(nil), // 77: api.v1.HPAPodsMetric - (*HPAObjectMetric)(nil), // 78: api.v1.HPAObjectMetric - (*HPAExternalMetric)(nil), // 79: api.v1.HPAExternalMetric - (*HPAMetricSelector)(nil), // 80: api.v1.HPAMetricSelector - (*HPAObjectReference)(nil), // 81: api.v1.HPAObjectReference - (*HPACurrentMetric)(nil), // 82: api.v1.HPACurrentMetric - (*HPACurrentResourceMetric)(nil), // 83: api.v1.HPACurrentResourceMetric - (*HPACurrentPodsMetric)(nil), // 84: api.v1.HPACurrentPodsMetric - (*HPACurrentObjectMetric)(nil), // 85: api.v1.HPACurrentObjectMetric - (*HPACurrentExternalMetric)(nil), // 86: api.v1.HPACurrentExternalMetric - (*HPACondition)(nil), // 87: api.v1.HPACondition - (*HPABehavior)(nil), // 88: api.v1.HPABehavior - (*HPAScalingRules)(nil), // 89: api.v1.HPAScalingRules - (*HPAScalingPolicy)(nil), // 90: api.v1.HPAScalingPolicy - (*VPADetails)(nil), // 91: api.v1.VPADetails - (*VPATargetRef)(nil), // 92: api.v1.VPATargetRef - (*VPAUpdatePolicy)(nil), // 93: api.v1.VPAUpdatePolicy - (*VPAResourcePolicy)(nil), // 94: api.v1.VPAResourcePolicy - (*VPAContainerResourcePolicy)(nil), // 95: api.v1.VPAContainerResourcePolicy - (*VPARecommendation)(nil), // 96: api.v1.VPARecommendation - (*VPAContainerRecommendation)(nil), // 97: api.v1.VPAContainerRecommendation - (*VPACondition)(nil), // 98: api.v1.VPACondition - (*LimitRangeDetails)(nil), // 99: api.v1.LimitRangeDetails - (*LimitRangeItem)(nil), // 100: api.v1.LimitRangeItem - (*ServiceAccountDetails)(nil), // 101: api.v1.ServiceAccountDetails - (*RoleDetails)(nil), // 102: api.v1.RoleDetails - (*RoleRule)(nil), // 103: api.v1.RoleRule - (*RoleBindingDetails)(nil), // 104: api.v1.RoleBindingDetails - (*RoleBindingSubject)(nil), // 105: api.v1.RoleBindingSubject - (*RoleReference)(nil), // 106: api.v1.RoleReference - (*KedaScaledObjectDetails)(nil), // 107: api.v1.KedaScaledObjectDetails - (*KedaScaledObjectTrigger)(nil), // 108: api.v1.KedaScaledObjectTrigger - (*KedaScaledObjectCondition)(nil), // 109: api.v1.KedaScaledObjectCondition - (*KarpenterResourceDetails)(nil), // 110: api.v1.KarpenterResourceDetails - (*KarpenterResourceCondition)(nil), // 111: api.v1.KarpenterResourceCondition - (*KarpenterCapacity)(nil), // 112: api.v1.KarpenterCapacity - (*KarpenterRequirement)(nil), // 113: api.v1.KarpenterRequirement - (*WorkloadFilters)(nil), // 114: api.v1.WorkloadFilters - (*PodDisruptionBudgetDetails)(nil), // 115: api.v1.PodDisruptionBudgetDetails - (*PodDisruptionBudgetCondition)(nil), // 116: api.v1.PodDisruptionBudgetCondition - (*ResourceQuotaDetails)(nil), // 117: api.v1.ResourceQuotaDetails - (*ResourceQuotaCondition)(nil), // 118: api.v1.ResourceQuotaCondition - (*VolcanoJobDetails)(nil), // 119: api.v1.VolcanoJobDetails - (*VolcanoJobCondition)(nil), // 120: api.v1.VolcanoJobCondition - (*VolcanoTask)(nil), // 121: api.v1.VolcanoTask - (*SparkApplicationDetails)(nil), // 122: api.v1.SparkApplicationDetails - (*SparkDriverInfo)(nil), // 123: api.v1.SparkDriverInfo - (*SparkRestartPolicyInfo)(nil), // 124: api.v1.SparkRestartPolicyInfo - (*SparkDynamicAllocationInfo)(nil), // 125: api.v1.SparkDynamicAllocationInfo - (*Event)(nil), // 126: api.v1.Event - (*EventDatapointInfo)(nil), // 127: api.v1.EventDatapointInfo - (*EventDatapoint)(nil), // 128: api.v1.EventDatapoint - nil, // 129: api.v1.WorkloadItem.LabelsEntry - nil, // 130: api.v1.WorkloadItem.AnnotationsEntry - nil, // 131: api.v1.Node.LabelsEntry - nil, // 132: api.v1.Node.AnnotationsEntry - nil, // 133: api.v1.LabelSelector.MatchLabelsEntry - nil, // 134: api.v1.ResourceDetails.ServiceSelectorEntry - nil, // 135: api.v1.ResourceDetails.ScParametersEntry - nil, // 136: api.v1.ServiceDetails.SelectorEntry - nil, // 137: api.v1.ResourceRequirements.RequestsEntry - nil, // 138: api.v1.ResourceRequirements.LimitsEntry - nil, // 139: api.v1.PersistentVolumeDetails.CapacityEntry - nil, // 140: api.v1.PVVolumeSource.VolumeAttributesEntry - nil, // 141: api.v1.CSIVolumeSource.VolumeAttributesEntry - nil, // 142: api.v1.StorageClassDetails.ParametersEntry - nil, // 143: api.v1.NamespaceDetails.ConditionsEntry - nil, // 144: api.v1.NodeDetails.CapacityEntry - nil, // 145: api.v1.NodeDetails.AllocatableEntry - nil, // 146: api.v1.TopologySelectorTerm.MatchLabelsEntry - nil, // 147: api.v1.HPAMetricSelector.SelectorEntry - nil, // 148: api.v1.VPAContainerResourcePolicy.MinAllowedEntry - nil, // 149: api.v1.VPAContainerResourcePolicy.MaxAllowedEntry - nil, // 150: api.v1.VPAContainerRecommendation.TargetEntry - nil, // 151: api.v1.VPAContainerRecommendation.LowerBoundEntry - nil, // 152: api.v1.VPAContainerRecommendation.UpperBoundEntry - nil, // 153: api.v1.VPAContainerRecommendation.UncappedTargetEntry - nil, // 154: api.v1.LimitRangeItem.DefaultLimitsEntry - nil, // 155: api.v1.LimitRangeItem.DefaultRequestEntry - nil, // 156: api.v1.LimitRangeItem.MaxEntry - nil, // 157: api.v1.LimitRangeItem.MinEntry - nil, // 158: api.v1.LimitRangeItem.MaxLimitRequestRatioEntry - nil, // 159: api.v1.KedaScaledObjectTrigger.MetadataEntry - nil, // 160: api.v1.KarpenterResourceDetails.LimitsEntry - nil, // 161: api.v1.KarpenterCapacity.OtherEntry - nil, // 162: api.v1.PodDisruptionBudgetDetails.SelectorLabelsEntry - nil, // 163: api.v1.ResourceQuotaDetails.HardLimitsEntry - nil, // 164: api.v1.ResourceQuotaDetails.UsedEntry - nil, // 165: api.v1.ResourceQuotaDetails.ScopeSelectorEntry - (*timestamppb.Timestamp)(nil), // 166: google.protobuf.Timestamp - (*money.Money)(nil), // 167: google.type.Money + (K8SObjectKind)(0), // 0: api.v1.K8sObjectKind + (OrderByEnum)(0), // 1: api.v1.OrderByEnum + (LabelSelectorOperator)(0), // 2: api.v1.LabelSelectorOperator + (WorkloadStatusFilter)(0), // 3: api.v1.WorkloadStatusFilter + (*AuditLogEntry)(nil), // 4: api.v1.AuditLogEntry + (*Pagination)(nil), // 5: api.v1.Pagination + (*CostInfo)(nil), // 6: api.v1.CostInfo + (*ResourceMetrics)(nil), // 7: api.v1.ResourceMetrics + (*ForecastResourceMetrics)(nil), // 8: api.v1.ForecastResourceMetrics + (*ResourceSummary)(nil), // 9: api.v1.ResourceSummary + (*WorkloadItem)(nil), // 10: api.v1.WorkloadItem + (*ContainerRuntimeInfo)(nil), // 11: api.v1.ContainerRuntimeInfo + (*NodeInfo)(nil), // 12: api.v1.NodeInfo + (*ResourceInfo)(nil), // 13: api.v1.ResourceInfo + (*Node)(nil), // 14: api.v1.Node + (*AttachedVolume)(nil), // 15: api.v1.AttachedVolume + (*NodeGroup)(nil), // 16: api.v1.NodeGroup + (*CostDataPoint)(nil), // 17: api.v1.CostDataPoint + (*ResourceDataPoint)(nil), // 18: api.v1.ResourceDataPoint + (*SavingsData)(nil), // 19: api.v1.SavingsData + (*SavingsDataPoint)(nil), // 20: api.v1.SavingsDataPoint + (*SavingsTimeSeries)(nil), // 21: api.v1.SavingsTimeSeries + (*LabelSelectorRequirement)(nil), // 22: api.v1.LabelSelectorRequirement + (*Label)(nil), // 23: api.v1.Label + (*LabelSelector)(nil), // 24: api.v1.LabelSelector + (*RegexPattern)(nil), // 25: api.v1.RegexPattern + (*ResourceDetails)(nil), // 26: api.v1.ResourceDetails + (*PodDetails)(nil), // 27: api.v1.PodDetails + (*ContainerSummary)(nil), // 28: api.v1.ContainerSummary + (*DeploymentDetails)(nil), // 29: api.v1.DeploymentDetails + (*ContainerTemplate)(nil), // 30: api.v1.ContainerTemplate + (*DeploymentCondition)(nil), // 31: api.v1.DeploymentCondition + (*StatefulSetDetails)(nil), // 32: api.v1.StatefulSetDetails + (*VolumeClaimTemplate)(nil), // 33: api.v1.VolumeClaimTemplate + (*DaemonSetDetails)(nil), // 34: api.v1.DaemonSetDetails + (*ReplicaSetDetails)(nil), // 35: api.v1.ReplicaSetDetails + (*JobDetails)(nil), // 36: api.v1.JobDetails + (*JobCondition)(nil), // 37: api.v1.JobCondition + (*CronJobDetails)(nil), // 38: api.v1.CronJobDetails + (*ActiveJobReference)(nil), // 39: api.v1.ActiveJobReference + (*JobTemplate)(nil), // 40: api.v1.JobTemplate + (*ServiceDetails)(nil), // 41: api.v1.ServiceDetails + (*ServicePort)(nil), // 42: api.v1.ServicePort + (*LoadBalancerIngress)(nil), // 43: api.v1.LoadBalancerIngress + (*IngressDetails)(nil), // 44: api.v1.IngressDetails + (*IngressRule)(nil), // 45: api.v1.IngressRule + (*IngressPath)(nil), // 46: api.v1.IngressPath + (*IngressBackend)(nil), // 47: api.v1.IngressBackend + (*IngressTLS)(nil), // 48: api.v1.IngressTLS + (*PersistentVolumeClaimDetails)(nil), // 49: api.v1.PersistentVolumeClaimDetails + (*ResourceRequirements)(nil), // 50: api.v1.ResourceRequirements + (*VolumeNodeAffinity)(nil), // 51: api.v1.VolumeNodeAffinity + (*PVCCondition)(nil), // 52: api.v1.PVCCondition + (*PersistentVolumeDetails)(nil), // 53: api.v1.PersistentVolumeDetails + (*PVClaimReference)(nil), // 54: api.v1.PVClaimReference + (*PVVolumeSource)(nil), // 55: api.v1.PVVolumeSource + (*CSIVolumeSource)(nil), // 56: api.v1.CSIVolumeSource + (*HostPathVolumeSource)(nil), // 57: api.v1.HostPathVolumeSource + (*NFSVolumeSource)(nil), // 58: api.v1.NFSVolumeSource + (*StorageClassDetails)(nil), // 59: api.v1.StorageClassDetails + (*NamespaceDetails)(nil), // 60: api.v1.NamespaceDetails + (*NodeDetails)(nil), // 61: api.v1.NodeDetails + (*NodeTaint)(nil), // 62: api.v1.NodeTaint + (*NodeAddress)(nil), // 63: api.v1.NodeAddress + (*NodeCondition)(nil), // 64: api.v1.NodeCondition + (*NodeSystemInfo)(nil), // 65: api.v1.NodeSystemInfo + (*NodeImage)(nil), // 66: api.v1.NodeImage + (*TopologySelector)(nil), // 67: api.v1.TopologySelector + (*TopologySelectorTerm)(nil), // 68: api.v1.TopologySelectorTerm + (*TolerationInfo)(nil), // 69: api.v1.TolerationInfo + (*NodeSelector)(nil), // 70: api.v1.NodeSelector + (*NodeSelectorTerm)(nil), // 71: api.v1.NodeSelectorTerm + (*NodeSelectorRequirement)(nil), // 72: api.v1.NodeSelectorRequirement + (*HPADetails)(nil), // 73: api.v1.HPADetails + (*ScaleTargetRef)(nil), // 74: api.v1.ScaleTargetRef + (*HPAMetric)(nil), // 75: api.v1.HPAMetric + (*HPAResourceMetric)(nil), // 76: api.v1.HPAResourceMetric + (*HPAPodsMetric)(nil), // 77: api.v1.HPAPodsMetric + (*HPAObjectMetric)(nil), // 78: api.v1.HPAObjectMetric + (*HPAExternalMetric)(nil), // 79: api.v1.HPAExternalMetric + (*HPAMetricSelector)(nil), // 80: api.v1.HPAMetricSelector + (*HPAObjectReference)(nil), // 81: api.v1.HPAObjectReference + (*HPACurrentMetric)(nil), // 82: api.v1.HPACurrentMetric + (*HPACurrentResourceMetric)(nil), // 83: api.v1.HPACurrentResourceMetric + (*HPACurrentPodsMetric)(nil), // 84: api.v1.HPACurrentPodsMetric + (*HPACurrentObjectMetric)(nil), // 85: api.v1.HPACurrentObjectMetric + (*HPACurrentExternalMetric)(nil), // 86: api.v1.HPACurrentExternalMetric + (*HPACondition)(nil), // 87: api.v1.HPACondition + (*HPABehavior)(nil), // 88: api.v1.HPABehavior + (*HPAScalingRules)(nil), // 89: api.v1.HPAScalingRules + (*HPAScalingPolicy)(nil), // 90: api.v1.HPAScalingPolicy + (*VPADetails)(nil), // 91: api.v1.VPADetails + (*VPATargetRef)(nil), // 92: api.v1.VPATargetRef + (*VPAUpdatePolicy)(nil), // 93: api.v1.VPAUpdatePolicy + (*VPAResourcePolicy)(nil), // 94: api.v1.VPAResourcePolicy + (*VPAContainerResourcePolicy)(nil), // 95: api.v1.VPAContainerResourcePolicy + (*VPARecommendation)(nil), // 96: api.v1.VPARecommendation + (*VPAContainerRecommendation)(nil), // 97: api.v1.VPAContainerRecommendation + (*VPACondition)(nil), // 98: api.v1.VPACondition + (*LimitRangeDetails)(nil), // 99: api.v1.LimitRangeDetails + (*LimitRangeItem)(nil), // 100: api.v1.LimitRangeItem + (*ServiceAccountDetails)(nil), // 101: api.v1.ServiceAccountDetails + (*RoleDetails)(nil), // 102: api.v1.RoleDetails + (*RoleRule)(nil), // 103: api.v1.RoleRule + (*RoleBindingDetails)(nil), // 104: api.v1.RoleBindingDetails + (*RoleBindingSubject)(nil), // 105: api.v1.RoleBindingSubject + (*RoleReference)(nil), // 106: api.v1.RoleReference + (*KedaScaledObjectDetails)(nil), // 107: api.v1.KedaScaledObjectDetails + (*KedaScaledObjectTrigger)(nil), // 108: api.v1.KedaScaledObjectTrigger + (*KedaScaledObjectCondition)(nil), // 109: api.v1.KedaScaledObjectCondition + (*KarpenterResourceDetails)(nil), // 110: api.v1.KarpenterResourceDetails + (*KarpenterResourceCondition)(nil), // 111: api.v1.KarpenterResourceCondition + (*KarpenterCapacity)(nil), // 112: api.v1.KarpenterCapacity + (*KarpenterRequirement)(nil), // 113: api.v1.KarpenterRequirement + (*WorkloadFilters)(nil), // 114: api.v1.WorkloadFilters + (*PodDisruptionBudgetDetails)(nil), // 115: api.v1.PodDisruptionBudgetDetails + (*PodDisruptionBudgetCondition)(nil), // 116: api.v1.PodDisruptionBudgetCondition + (*ResourceQuotaDetails)(nil), // 117: api.v1.ResourceQuotaDetails + (*ResourceQuotaCondition)(nil), // 118: api.v1.ResourceQuotaCondition + (*VolcanoJobDetails)(nil), // 119: api.v1.VolcanoJobDetails + (*VolcanoJobCondition)(nil), // 120: api.v1.VolcanoJobCondition + (*VolcanoTask)(nil), // 121: api.v1.VolcanoTask + (*SparkApplicationDetails)(nil), // 122: api.v1.SparkApplicationDetails + (*SparkDriverInfo)(nil), // 123: api.v1.SparkDriverInfo + (*SparkRestartPolicyInfo)(nil), // 124: api.v1.SparkRestartPolicyInfo + (*SparkDynamicAllocationInfo)(nil), // 125: api.v1.SparkDynamicAllocationInfo + (*ScheduledSparkApplicationDetails)(nil), // 126: api.v1.ScheduledSparkApplicationDetails + (*Event)(nil), // 127: api.v1.Event + (*EventDatapointInfo)(nil), // 128: api.v1.EventDatapointInfo + (*EventDatapoint)(nil), // 129: api.v1.EventDatapoint + nil, // 130: api.v1.WorkloadItem.LabelsEntry + nil, // 131: api.v1.WorkloadItem.AnnotationsEntry + nil, // 132: api.v1.Node.LabelsEntry + nil, // 133: api.v1.Node.AnnotationsEntry + nil, // 134: api.v1.LabelSelector.MatchLabelsEntry + nil, // 135: api.v1.ResourceDetails.ServiceSelectorEntry + nil, // 136: api.v1.ResourceDetails.ScParametersEntry + nil, // 137: api.v1.ServiceDetails.SelectorEntry + nil, // 138: api.v1.ResourceRequirements.RequestsEntry + nil, // 139: api.v1.ResourceRequirements.LimitsEntry + nil, // 140: api.v1.PersistentVolumeDetails.CapacityEntry + nil, // 141: api.v1.PVVolumeSource.VolumeAttributesEntry + nil, // 142: api.v1.CSIVolumeSource.VolumeAttributesEntry + nil, // 143: api.v1.StorageClassDetails.ParametersEntry + nil, // 144: api.v1.NamespaceDetails.ConditionsEntry + nil, // 145: api.v1.NodeDetails.CapacityEntry + nil, // 146: api.v1.NodeDetails.AllocatableEntry + nil, // 147: api.v1.TopologySelectorTerm.MatchLabelsEntry + nil, // 148: api.v1.HPAMetricSelector.SelectorEntry + nil, // 149: api.v1.VPAContainerResourcePolicy.MinAllowedEntry + nil, // 150: api.v1.VPAContainerResourcePolicy.MaxAllowedEntry + nil, // 151: api.v1.VPAContainerRecommendation.TargetEntry + nil, // 152: api.v1.VPAContainerRecommendation.LowerBoundEntry + nil, // 153: api.v1.VPAContainerRecommendation.UpperBoundEntry + nil, // 154: api.v1.VPAContainerRecommendation.UncappedTargetEntry + nil, // 155: api.v1.LimitRangeItem.DefaultLimitsEntry + nil, // 156: api.v1.LimitRangeItem.DefaultRequestEntry + nil, // 157: api.v1.LimitRangeItem.MaxEntry + nil, // 158: api.v1.LimitRangeItem.MinEntry + nil, // 159: api.v1.LimitRangeItem.MaxLimitRequestRatioEntry + nil, // 160: api.v1.KedaScaledObjectTrigger.MetadataEntry + nil, // 161: api.v1.KarpenterResourceDetails.LimitsEntry + nil, // 162: api.v1.KarpenterCapacity.OtherEntry + nil, // 163: api.v1.PodDisruptionBudgetDetails.SelectorLabelsEntry + nil, // 164: api.v1.ResourceQuotaDetails.HardLimitsEntry + nil, // 165: api.v1.ResourceQuotaDetails.UsedEntry + nil, // 166: api.v1.ResourceQuotaDetails.ScopeSelectorEntry + (*timestamppb.Timestamp)(nil), // 167: google.protobuf.Timestamp + (*money.Money)(nil), // 168: google.type.Money } var file_api_v1_common_proto_depIdxs = []int32{ 0, // 0: api.v1.AuditLogEntry.workload_type:type_name -> api.v1.K8sObjectKind - 166, // 1: api.v1.AuditLogEntry.created_at:type_name -> google.protobuf.Timestamp - 166, // 2: api.v1.AuditLogEntry.updated_at:type_name -> google.protobuf.Timestamp + 167, // 1: api.v1.AuditLogEntry.created_at:type_name -> google.protobuf.Timestamp + 167, // 2: api.v1.AuditLogEntry.updated_at:type_name -> google.protobuf.Timestamp 1, // 3: api.v1.Pagination.order_by:type_name -> api.v1.OrderByEnum - 167, // 4: api.v1.CostInfo.node_recommendation_saved_cost_last_month:type_name -> google.type.Money - 167, // 5: api.v1.CostInfo.money_cpu_cost_per_hour:type_name -> google.type.Money - 167, // 6: api.v1.CostInfo.money_memory_cost_per_hour:type_name -> google.type.Money - 167, // 7: api.v1.CostInfo.money_total_cost_per_hour:type_name -> google.type.Money - 167, // 8: api.v1.CostInfo.money_total_cost_per_month:type_name -> google.type.Money - 167, // 9: api.v1.CostInfo.money_total_cost_per_year:type_name -> google.type.Money - 167, // 10: api.v1.CostInfo.money_optimized_cpu_cost_per_hour:type_name -> google.type.Money - 167, // 11: api.v1.CostInfo.money_optimized_memory_cost_per_hour:type_name -> google.type.Money - 167, // 12: api.v1.CostInfo.money_optimized_total_cost_per_hour:type_name -> google.type.Money - 167, // 13: api.v1.CostInfo.money_optimized_total_cost_per_month:type_name -> google.type.Money - 167, // 14: api.v1.CostInfo.money_optimized_total_cost_per_year:type_name -> google.type.Money - 167, // 15: api.v1.CostInfo.money_cpu_cost_for_time_period:type_name -> google.type.Money - 167, // 16: api.v1.CostInfo.money_memory_cost_for_time_period:type_name -> google.type.Money - 167, // 17: api.v1.CostInfo.money_total_cost_for_time_period:type_name -> google.type.Money - 167, // 18: api.v1.CostInfo.money_optimized_cpu_cost_for_time_period:type_name -> google.type.Money - 167, // 19: api.v1.CostInfo.money_optimized_memory_cost_for_time_period:type_name -> google.type.Money - 167, // 20: api.v1.CostInfo.money_optimized_total_cost_for_time_period:type_name -> google.type.Money - 167, // 21: api.v1.CostInfo.money_optimized_gpu_cost_for_time_period:type_name -> google.type.Money - 167, // 22: api.v1.CostInfo.money_gpu_cost_for_time_period:type_name -> google.type.Money - 167, // 23: api.v1.CostInfo.money_gpu_cost_per_hour:type_name -> google.type.Money - 167, // 24: api.v1.CostInfo.money_optimized_gpu_cost_per_hour:type_name -> google.type.Money - 167, // 25: api.v1.CostInfo.money_cpu_cost_per_vcpu_per_hour:type_name -> google.type.Money - 167, // 26: api.v1.CostInfo.money_memory_cost_per_gib_per_hour:type_name -> google.type.Money - 166, // 27: api.v1.ForecastResourceMetrics.timestamp:type_name -> google.protobuf.Timestamp + 168, // 4: api.v1.CostInfo.node_recommendation_saved_cost_last_month:type_name -> google.type.Money + 168, // 5: api.v1.CostInfo.money_cpu_cost_per_hour:type_name -> google.type.Money + 168, // 6: api.v1.CostInfo.money_memory_cost_per_hour:type_name -> google.type.Money + 168, // 7: api.v1.CostInfo.money_total_cost_per_hour:type_name -> google.type.Money + 168, // 8: api.v1.CostInfo.money_total_cost_per_month:type_name -> google.type.Money + 168, // 9: api.v1.CostInfo.money_total_cost_per_year:type_name -> google.type.Money + 168, // 10: api.v1.CostInfo.money_optimized_cpu_cost_per_hour:type_name -> google.type.Money + 168, // 11: api.v1.CostInfo.money_optimized_memory_cost_per_hour:type_name -> google.type.Money + 168, // 12: api.v1.CostInfo.money_optimized_total_cost_per_hour:type_name -> google.type.Money + 168, // 13: api.v1.CostInfo.money_optimized_total_cost_per_month:type_name -> google.type.Money + 168, // 14: api.v1.CostInfo.money_optimized_total_cost_per_year:type_name -> google.type.Money + 168, // 15: api.v1.CostInfo.money_cpu_cost_for_time_period:type_name -> google.type.Money + 168, // 16: api.v1.CostInfo.money_memory_cost_for_time_period:type_name -> google.type.Money + 168, // 17: api.v1.CostInfo.money_total_cost_for_time_period:type_name -> google.type.Money + 168, // 18: api.v1.CostInfo.money_optimized_cpu_cost_for_time_period:type_name -> google.type.Money + 168, // 19: api.v1.CostInfo.money_optimized_memory_cost_for_time_period:type_name -> google.type.Money + 168, // 20: api.v1.CostInfo.money_optimized_total_cost_for_time_period:type_name -> google.type.Money + 168, // 21: api.v1.CostInfo.money_optimized_gpu_cost_for_time_period:type_name -> google.type.Money + 168, // 22: api.v1.CostInfo.money_gpu_cost_for_time_period:type_name -> google.type.Money + 168, // 23: api.v1.CostInfo.money_gpu_cost_per_hour:type_name -> google.type.Money + 168, // 24: api.v1.CostInfo.money_optimized_gpu_cost_per_hour:type_name -> google.type.Money + 168, // 25: api.v1.CostInfo.money_cpu_cost_per_vcpu_per_hour:type_name -> google.type.Money + 168, // 26: api.v1.CostInfo.money_memory_cost_per_gib_per_hour:type_name -> google.type.Money + 167, // 27: api.v1.ForecastResourceMetrics.timestamp:type_name -> google.protobuf.Timestamp 10, // 28: api.v1.WorkloadItem.children:type_name -> api.v1.WorkloadItem - 129, // 29: api.v1.WorkloadItem.labels:type_name -> api.v1.WorkloadItem.LabelsEntry - 130, // 30: api.v1.WorkloadItem.annotations:type_name -> api.v1.WorkloadItem.AnnotationsEntry + 130, // 29: api.v1.WorkloadItem.labels:type_name -> api.v1.WorkloadItem.LabelsEntry + 131, // 30: api.v1.WorkloadItem.annotations:type_name -> api.v1.WorkloadItem.AnnotationsEntry 7, // 31: api.v1.WorkloadItem.resource_metrics:type_name -> api.v1.ResourceMetrics 6, // 32: api.v1.WorkloadItem.cost_info:type_name -> api.v1.CostInfo 17, // 33: api.v1.WorkloadItem.cost_data_points:type_name -> api.v1.CostDataPoint 18, // 34: api.v1.WorkloadItem.resource_data_points:type_name -> api.v1.ResourceDataPoint - 166, // 35: api.v1.WorkloadItem.created_at:type_name -> google.protobuf.Timestamp - 166, // 36: api.v1.WorkloadItem.deleted_at:type_name -> google.protobuf.Timestamp + 167, // 35: api.v1.WorkloadItem.created_at:type_name -> google.protobuf.Timestamp + 167, // 36: api.v1.WorkloadItem.deleted_at:type_name -> google.protobuf.Timestamp 26, // 37: api.v1.WorkloadItem.resource_details:type_name -> api.v1.ResourceDetails 7, // 38: api.v1.Node.resource_metrics:type_name -> api.v1.ResourceMetrics 6, // 39: api.v1.Node.cost_info:type_name -> api.v1.CostInfo 11, // 40: api.v1.Node.container_runtime:type_name -> api.v1.ContainerRuntimeInfo 26, // 41: api.v1.Node.resource_details:type_name -> api.v1.ResourceDetails 10, // 42: api.v1.Node.children:type_name -> api.v1.WorkloadItem - 131, // 43: api.v1.Node.labels:type_name -> api.v1.Node.LabelsEntry - 132, // 44: api.v1.Node.annotations:type_name -> api.v1.Node.AnnotationsEntry - 167, // 45: api.v1.Node.money_price_per_hour:type_name -> google.type.Money - 167, // 46: api.v1.Node.money_eff_period_total_cost:type_name -> google.type.Money - 167, // 47: api.v1.Node.money_price_per_vcpu:type_name -> google.type.Money - 167, // 48: api.v1.Node.money_price_per_gib:type_name -> google.type.Money - 167, // 49: api.v1.Node.money_price_per_gpu:type_name -> google.type.Money - 167, // 50: api.v1.Node.money_cpu_price:type_name -> google.type.Money - 167, // 51: api.v1.Node.money_memory_price:type_name -> google.type.Money - 167, // 52: api.v1.Node.money_gpu_price:type_name -> google.type.Money + 132, // 43: api.v1.Node.labels:type_name -> api.v1.Node.LabelsEntry + 133, // 44: api.v1.Node.annotations:type_name -> api.v1.Node.AnnotationsEntry + 168, // 45: api.v1.Node.money_price_per_hour:type_name -> google.type.Money + 168, // 46: api.v1.Node.money_eff_period_total_cost:type_name -> google.type.Money + 168, // 47: api.v1.Node.money_price_per_vcpu:type_name -> google.type.Money + 168, // 48: api.v1.Node.money_price_per_gib:type_name -> google.type.Money + 168, // 49: api.v1.Node.money_price_per_gpu:type_name -> google.type.Money + 168, // 50: api.v1.Node.money_cpu_price:type_name -> google.type.Money + 168, // 51: api.v1.Node.money_memory_price:type_name -> google.type.Money + 168, // 52: api.v1.Node.money_gpu_price:type_name -> google.type.Money 15, // 53: api.v1.Node.volumes_attached:type_name -> api.v1.AttachedVolume - 166, // 54: api.v1.Node.last_seen:type_name -> google.protobuf.Timestamp - 166, // 55: api.v1.Node.collected_at:type_name -> google.protobuf.Timestamp - 166, // 56: api.v1.Node.deletion_timestamp:type_name -> google.protobuf.Timestamp + 167, // 54: api.v1.Node.last_seen:type_name -> google.protobuf.Timestamp + 167, // 55: api.v1.Node.collected_at:type_name -> google.protobuf.Timestamp + 167, // 56: api.v1.Node.deletion_timestamp:type_name -> google.protobuf.Timestamp 14, // 57: api.v1.NodeGroup.nodes:type_name -> api.v1.Node 7, // 58: api.v1.NodeGroup.resource_metrics:type_name -> api.v1.ResourceMetrics 6, // 59: api.v1.NodeGroup.cost_info:type_name -> api.v1.CostInfo @@ -16302,7 +16538,7 @@ var file_api_v1_common_proto_depIdxs = []int32{ 20, // 67: api.v1.SavingsTimeSeries.savings_datapoints:type_name -> api.v1.SavingsDataPoint 2, // 68: api.v1.LabelSelectorRequirement.operator:type_name -> api.v1.LabelSelectorOperator 23, // 69: api.v1.LabelSelector.labels:type_name -> api.v1.Label - 133, // 70: api.v1.LabelSelector.match_labels:type_name -> api.v1.LabelSelector.MatchLabelsEntry + 134, // 70: api.v1.LabelSelector.match_labels:type_name -> api.v1.LabelSelector.MatchLabelsEntry 22, // 71: api.v1.LabelSelector.match_expressions:type_name -> api.v1.LabelSelectorRequirement 27, // 72: api.v1.ResourceDetails.pod_details:type_name -> api.v1.PodDetails 29, // 73: api.v1.ResourceDetails.deployment_details:type_name -> api.v1.DeploymentDetails @@ -16330,152 +16566,156 @@ var file_api_v1_common_proto_depIdxs = []int32{ 117, // 95: api.v1.ResourceDetails.resource_quota_details:type_name -> api.v1.ResourceQuotaDetails 119, // 96: api.v1.ResourceDetails.volcano_job_details:type_name -> api.v1.VolcanoJobDetails 122, // 97: api.v1.ResourceDetails.spark_application_details:type_name -> api.v1.SparkApplicationDetails - 42, // 98: api.v1.ResourceDetails.service_ports:type_name -> api.v1.ServicePort - 134, // 99: api.v1.ResourceDetails.service_selector:type_name -> api.v1.ResourceDetails.ServiceSelectorEntry - 135, // 100: api.v1.ResourceDetails.sc_parameters:type_name -> api.v1.ResourceDetails.ScParametersEntry - 62, // 101: api.v1.ResourceDetails.node_taints:type_name -> api.v1.NodeTaint - 28, // 102: api.v1.PodDetails.containers:type_name -> api.v1.ContainerSummary - 30, // 103: api.v1.DeploymentDetails.containers:type_name -> api.v1.ContainerTemplate - 31, // 104: api.v1.DeploymentDetails.conditions:type_name -> api.v1.DeploymentCondition - 30, // 105: api.v1.StatefulSetDetails.containers:type_name -> api.v1.ContainerTemplate - 33, // 106: api.v1.StatefulSetDetails.volume_claim_templates:type_name -> api.v1.VolumeClaimTemplate - 30, // 107: api.v1.DaemonSetDetails.containers:type_name -> api.v1.ContainerTemplate - 69, // 108: api.v1.DaemonSetDetails.tolerations:type_name -> api.v1.TolerationInfo - 70, // 109: api.v1.DaemonSetDetails.node_selector:type_name -> api.v1.NodeSelector - 30, // 110: api.v1.ReplicaSetDetails.containers:type_name -> api.v1.ContainerTemplate - 24, // 111: api.v1.ReplicaSetDetails.selector:type_name -> api.v1.LabelSelector - 30, // 112: api.v1.JobDetails.containers:type_name -> api.v1.ContainerTemplate - 37, // 113: api.v1.JobDetails.conditions:type_name -> api.v1.JobCondition - 24, // 114: api.v1.JobDetails.selector:type_name -> api.v1.LabelSelector - 30, // 115: api.v1.CronJobDetails.containers:type_name -> api.v1.ContainerTemplate - 39, // 116: api.v1.CronJobDetails.active_jobs:type_name -> api.v1.ActiveJobReference - 40, // 117: api.v1.CronJobDetails.job_template:type_name -> api.v1.JobTemplate - 30, // 118: api.v1.JobTemplate.containers:type_name -> api.v1.ContainerTemplate - 42, // 119: api.v1.ServiceDetails.ports:type_name -> api.v1.ServicePort - 136, // 120: api.v1.ServiceDetails.selector:type_name -> api.v1.ServiceDetails.SelectorEntry - 43, // 121: api.v1.ServiceDetails.load_balancer_ingress:type_name -> api.v1.LoadBalancerIngress - 45, // 122: api.v1.IngressDetails.rules:type_name -> api.v1.IngressRule - 48, // 123: api.v1.IngressDetails.tls:type_name -> api.v1.IngressTLS - 47, // 124: api.v1.IngressDetails.default_backend:type_name -> api.v1.IngressBackend - 43, // 125: api.v1.IngressDetails.load_balancer_ingress:type_name -> api.v1.LoadBalancerIngress - 46, // 126: api.v1.IngressRule.paths:type_name -> api.v1.IngressPath - 47, // 127: api.v1.IngressPath.backend:type_name -> api.v1.IngressBackend - 50, // 128: api.v1.PersistentVolumeClaimDetails.resource_requirements:type_name -> api.v1.ResourceRequirements - 24, // 129: api.v1.PersistentVolumeClaimDetails.selector:type_name -> api.v1.LabelSelector - 51, // 130: api.v1.PersistentVolumeClaimDetails.volume_node_affinity:type_name -> api.v1.VolumeNodeAffinity - 52, // 131: api.v1.PersistentVolumeClaimDetails.conditions:type_name -> api.v1.PVCCondition - 137, // 132: api.v1.ResourceRequirements.requests:type_name -> api.v1.ResourceRequirements.RequestsEntry - 138, // 133: api.v1.ResourceRequirements.limits:type_name -> api.v1.ResourceRequirements.LimitsEntry - 72, // 134: api.v1.VolumeNodeAffinity.required:type_name -> api.v1.NodeSelectorRequirement - 72, // 135: api.v1.VolumeNodeAffinity.preferred:type_name -> api.v1.NodeSelectorRequirement - 139, // 136: api.v1.PersistentVolumeDetails.capacity:type_name -> api.v1.PersistentVolumeDetails.CapacityEntry - 54, // 137: api.v1.PersistentVolumeDetails.claim_ref:type_name -> api.v1.PVClaimReference - 55, // 138: api.v1.PersistentVolumeDetails.volume_source:type_name -> api.v1.PVVolumeSource - 70, // 139: api.v1.PersistentVolumeDetails.node_affinity:type_name -> api.v1.NodeSelector - 56, // 140: api.v1.PVVolumeSource.csi:type_name -> api.v1.CSIVolumeSource - 57, // 141: api.v1.PVVolumeSource.host_path:type_name -> api.v1.HostPathVolumeSource - 58, // 142: api.v1.PVVolumeSource.nfs:type_name -> api.v1.NFSVolumeSource - 140, // 143: api.v1.PVVolumeSource.volume_attributes:type_name -> api.v1.PVVolumeSource.VolumeAttributesEntry - 141, // 144: api.v1.CSIVolumeSource.volume_attributes:type_name -> api.v1.CSIVolumeSource.VolumeAttributesEntry - 142, // 145: api.v1.StorageClassDetails.parameters:type_name -> api.v1.StorageClassDetails.ParametersEntry - 67, // 146: api.v1.StorageClassDetails.allowed_topologies:type_name -> api.v1.TopologySelector - 143, // 147: api.v1.NamespaceDetails.conditions:type_name -> api.v1.NamespaceDetails.ConditionsEntry - 63, // 148: api.v1.NodeDetails.addresses:type_name -> api.v1.NodeAddress - 64, // 149: api.v1.NodeDetails.conditions:type_name -> api.v1.NodeCondition - 65, // 150: api.v1.NodeDetails.system_info:type_name -> api.v1.NodeSystemInfo - 144, // 151: api.v1.NodeDetails.capacity:type_name -> api.v1.NodeDetails.CapacityEntry - 145, // 152: api.v1.NodeDetails.allocatable:type_name -> api.v1.NodeDetails.AllocatableEntry - 66, // 153: api.v1.NodeDetails.images:type_name -> api.v1.NodeImage - 68, // 154: api.v1.TopologySelector.match_label_expressions:type_name -> api.v1.TopologySelectorTerm - 146, // 155: api.v1.TopologySelectorTerm.match_labels:type_name -> api.v1.TopologySelectorTerm.MatchLabelsEntry - 71, // 156: api.v1.NodeSelector.terms:type_name -> api.v1.NodeSelectorTerm - 72, // 157: api.v1.NodeSelectorTerm.match_expressions:type_name -> api.v1.NodeSelectorRequirement - 72, // 158: api.v1.NodeSelectorTerm.match_fields:type_name -> api.v1.NodeSelectorRequirement - 74, // 159: api.v1.HPADetails.scale_target_ref:type_name -> api.v1.ScaleTargetRef - 75, // 160: api.v1.HPADetails.metrics:type_name -> api.v1.HPAMetric - 87, // 161: api.v1.HPADetails.conditions:type_name -> api.v1.HPACondition - 88, // 162: api.v1.HPADetails.behavior:type_name -> api.v1.HPABehavior - 82, // 163: api.v1.HPADetails.current_metrics:type_name -> api.v1.HPACurrentMetric - 76, // 164: api.v1.HPAMetric.resource:type_name -> api.v1.HPAResourceMetric - 77, // 165: api.v1.HPAMetric.pods:type_name -> api.v1.HPAPodsMetric - 78, // 166: api.v1.HPAMetric.object:type_name -> api.v1.HPAObjectMetric - 79, // 167: api.v1.HPAMetric.external:type_name -> api.v1.HPAExternalMetric - 80, // 168: api.v1.HPAPodsMetric.metric:type_name -> api.v1.HPAMetricSelector - 81, // 169: api.v1.HPAObjectMetric.described_object:type_name -> api.v1.HPAObjectReference - 80, // 170: api.v1.HPAObjectMetric.metric:type_name -> api.v1.HPAMetricSelector - 80, // 171: api.v1.HPAExternalMetric.metric:type_name -> api.v1.HPAMetricSelector - 147, // 172: api.v1.HPAMetricSelector.selector:type_name -> api.v1.HPAMetricSelector.SelectorEntry - 83, // 173: api.v1.HPACurrentMetric.resource:type_name -> api.v1.HPACurrentResourceMetric - 84, // 174: api.v1.HPACurrentMetric.pods:type_name -> api.v1.HPACurrentPodsMetric - 85, // 175: api.v1.HPACurrentMetric.object:type_name -> api.v1.HPACurrentObjectMetric - 86, // 176: api.v1.HPACurrentMetric.external:type_name -> api.v1.HPACurrentExternalMetric - 80, // 177: api.v1.HPACurrentPodsMetric.metric:type_name -> api.v1.HPAMetricSelector - 81, // 178: api.v1.HPACurrentObjectMetric.described_object:type_name -> api.v1.HPAObjectReference - 80, // 179: api.v1.HPACurrentObjectMetric.metric:type_name -> api.v1.HPAMetricSelector - 80, // 180: api.v1.HPACurrentExternalMetric.metric:type_name -> api.v1.HPAMetricSelector - 89, // 181: api.v1.HPABehavior.scale_up:type_name -> api.v1.HPAScalingRules - 89, // 182: api.v1.HPABehavior.scale_down:type_name -> api.v1.HPAScalingRules - 90, // 183: api.v1.HPAScalingRules.policies:type_name -> api.v1.HPAScalingPolicy - 92, // 184: api.v1.VPADetails.target_ref:type_name -> api.v1.VPATargetRef - 93, // 185: api.v1.VPADetails.update_policy:type_name -> api.v1.VPAUpdatePolicy - 94, // 186: api.v1.VPADetails.resource_policy:type_name -> api.v1.VPAResourcePolicy - 96, // 187: api.v1.VPADetails.recommendation:type_name -> api.v1.VPARecommendation - 98, // 188: api.v1.VPADetails.conditions:type_name -> api.v1.VPACondition - 95, // 189: api.v1.VPAResourcePolicy.container_policies:type_name -> api.v1.VPAContainerResourcePolicy - 148, // 190: api.v1.VPAContainerResourcePolicy.min_allowed:type_name -> api.v1.VPAContainerResourcePolicy.MinAllowedEntry - 149, // 191: api.v1.VPAContainerResourcePolicy.max_allowed:type_name -> api.v1.VPAContainerResourcePolicy.MaxAllowedEntry - 97, // 192: api.v1.VPARecommendation.container_recommendations:type_name -> api.v1.VPAContainerRecommendation - 150, // 193: api.v1.VPAContainerRecommendation.target:type_name -> api.v1.VPAContainerRecommendation.TargetEntry - 151, // 194: api.v1.VPAContainerRecommendation.lower_bound:type_name -> api.v1.VPAContainerRecommendation.LowerBoundEntry - 152, // 195: api.v1.VPAContainerRecommendation.upper_bound:type_name -> api.v1.VPAContainerRecommendation.UpperBoundEntry - 153, // 196: api.v1.VPAContainerRecommendation.uncapped_target:type_name -> api.v1.VPAContainerRecommendation.UncappedTargetEntry - 100, // 197: api.v1.LimitRangeDetails.limits:type_name -> api.v1.LimitRangeItem - 154, // 198: api.v1.LimitRangeItem.default_limits:type_name -> api.v1.LimitRangeItem.DefaultLimitsEntry - 155, // 199: api.v1.LimitRangeItem.default_request:type_name -> api.v1.LimitRangeItem.DefaultRequestEntry - 156, // 200: api.v1.LimitRangeItem.max:type_name -> api.v1.LimitRangeItem.MaxEntry - 157, // 201: api.v1.LimitRangeItem.min:type_name -> api.v1.LimitRangeItem.MinEntry - 158, // 202: api.v1.LimitRangeItem.max_limit_request_ratio:type_name -> api.v1.LimitRangeItem.MaxLimitRequestRatioEntry - 103, // 203: api.v1.RoleDetails.rules:type_name -> api.v1.RoleRule - 105, // 204: api.v1.RoleBindingDetails.subjects:type_name -> api.v1.RoleBindingSubject - 106, // 205: api.v1.RoleBindingDetails.role_ref:type_name -> api.v1.RoleReference - 108, // 206: api.v1.KedaScaledObjectDetails.triggers:type_name -> api.v1.KedaScaledObjectTrigger - 109, // 207: api.v1.KedaScaledObjectDetails.conditions:type_name -> api.v1.KedaScaledObjectCondition - 159, // 208: api.v1.KedaScaledObjectTrigger.metadata:type_name -> api.v1.KedaScaledObjectTrigger.MetadataEntry - 111, // 209: api.v1.KarpenterResourceDetails.conditions:type_name -> api.v1.KarpenterResourceCondition - 112, // 210: api.v1.KarpenterResourceDetails.capacity:type_name -> api.v1.KarpenterCapacity - 113, // 211: api.v1.KarpenterResourceDetails.requirements:type_name -> api.v1.KarpenterRequirement - 160, // 212: api.v1.KarpenterResourceDetails.limits:type_name -> api.v1.KarpenterResourceDetails.LimitsEntry - 161, // 213: api.v1.KarpenterCapacity.other:type_name -> api.v1.KarpenterCapacity.OtherEntry - 24, // 214: api.v1.WorkloadFilters.namespace_selector:type_name -> api.v1.LabelSelector - 24, // 215: api.v1.WorkloadFilters.workload_selector:type_name -> api.v1.LabelSelector - 0, // 216: api.v1.WorkloadFilters.kind_filter:type_name -> api.v1.K8sObjectKind - 25, // 217: api.v1.WorkloadFilters.name_pattern:type_name -> api.v1.RegexPattern - 24, // 218: api.v1.WorkloadFilters.annotation_selector:type_name -> api.v1.LabelSelector - 3, // 219: api.v1.WorkloadFilters.status:type_name -> api.v1.WorkloadStatusFilter - 162, // 220: api.v1.PodDisruptionBudgetDetails.selector_labels:type_name -> api.v1.PodDisruptionBudgetDetails.SelectorLabelsEntry - 116, // 221: api.v1.PodDisruptionBudgetDetails.conditions:type_name -> api.v1.PodDisruptionBudgetCondition - 163, // 222: api.v1.ResourceQuotaDetails.hard_limits:type_name -> api.v1.ResourceQuotaDetails.HardLimitsEntry - 164, // 223: api.v1.ResourceQuotaDetails.used:type_name -> api.v1.ResourceQuotaDetails.UsedEntry - 165, // 224: api.v1.ResourceQuotaDetails.scope_selector:type_name -> api.v1.ResourceQuotaDetails.ScopeSelectorEntry - 118, // 225: api.v1.ResourceQuotaDetails.conditions:type_name -> api.v1.ResourceQuotaCondition - 30, // 226: api.v1.VolcanoJobDetails.containers:type_name -> api.v1.ContainerTemplate - 120, // 227: api.v1.VolcanoJobDetails.conditions:type_name -> api.v1.VolcanoJobCondition - 121, // 228: api.v1.VolcanoJobDetails.tasks:type_name -> api.v1.VolcanoTask - 30, // 229: api.v1.VolcanoTask.containers:type_name -> api.v1.ContainerTemplate - 30, // 230: api.v1.SparkApplicationDetails.containers:type_name -> api.v1.ContainerTemplate - 123, // 231: api.v1.SparkApplicationDetails.spark_driver_info:type_name -> api.v1.SparkDriverInfo - 124, // 232: api.v1.SparkApplicationDetails.restart_policy:type_name -> api.v1.SparkRestartPolicyInfo - 125, // 233: api.v1.SparkApplicationDetails.dynamic_allocation:type_name -> api.v1.SparkDynamicAllocationInfo - 166, // 234: api.v1.Event.created_at:type_name -> google.protobuf.Timestamp - 166, // 235: api.v1.Event.updated_at:type_name -> google.protobuf.Timestamp - 166, // 236: api.v1.Event.last_seen:type_name -> google.protobuf.Timestamp - 166, // 237: api.v1.Event.deleted_at:type_name -> google.protobuf.Timestamp - 127, // 238: api.v1.EventDatapoint.events:type_name -> api.v1.EventDatapointInfo - 239, // [239:239] is the sub-list for method output_type - 239, // [239:239] is the sub-list for method input_type - 239, // [239:239] is the sub-list for extension type_name - 239, // [239:239] is the sub-list for extension extendee - 0, // [0:239] is the sub-list for field type_name + 126, // 98: api.v1.ResourceDetails.scheduled_spark_application_details:type_name -> api.v1.ScheduledSparkApplicationDetails + 42, // 99: api.v1.ResourceDetails.service_ports:type_name -> api.v1.ServicePort + 135, // 100: api.v1.ResourceDetails.service_selector:type_name -> api.v1.ResourceDetails.ServiceSelectorEntry + 136, // 101: api.v1.ResourceDetails.sc_parameters:type_name -> api.v1.ResourceDetails.ScParametersEntry + 62, // 102: api.v1.ResourceDetails.node_taints:type_name -> api.v1.NodeTaint + 28, // 103: api.v1.PodDetails.containers:type_name -> api.v1.ContainerSummary + 30, // 104: api.v1.DeploymentDetails.containers:type_name -> api.v1.ContainerTemplate + 31, // 105: api.v1.DeploymentDetails.conditions:type_name -> api.v1.DeploymentCondition + 30, // 106: api.v1.StatefulSetDetails.containers:type_name -> api.v1.ContainerTemplate + 33, // 107: api.v1.StatefulSetDetails.volume_claim_templates:type_name -> api.v1.VolumeClaimTemplate + 30, // 108: api.v1.DaemonSetDetails.containers:type_name -> api.v1.ContainerTemplate + 69, // 109: api.v1.DaemonSetDetails.tolerations:type_name -> api.v1.TolerationInfo + 70, // 110: api.v1.DaemonSetDetails.node_selector:type_name -> api.v1.NodeSelector + 30, // 111: api.v1.ReplicaSetDetails.containers:type_name -> api.v1.ContainerTemplate + 24, // 112: api.v1.ReplicaSetDetails.selector:type_name -> api.v1.LabelSelector + 30, // 113: api.v1.JobDetails.containers:type_name -> api.v1.ContainerTemplate + 37, // 114: api.v1.JobDetails.conditions:type_name -> api.v1.JobCondition + 24, // 115: api.v1.JobDetails.selector:type_name -> api.v1.LabelSelector + 30, // 116: api.v1.CronJobDetails.containers:type_name -> api.v1.ContainerTemplate + 39, // 117: api.v1.CronJobDetails.active_jobs:type_name -> api.v1.ActiveJobReference + 40, // 118: api.v1.CronJobDetails.job_template:type_name -> api.v1.JobTemplate + 30, // 119: api.v1.JobTemplate.containers:type_name -> api.v1.ContainerTemplate + 42, // 120: api.v1.ServiceDetails.ports:type_name -> api.v1.ServicePort + 137, // 121: api.v1.ServiceDetails.selector:type_name -> api.v1.ServiceDetails.SelectorEntry + 43, // 122: api.v1.ServiceDetails.load_balancer_ingress:type_name -> api.v1.LoadBalancerIngress + 45, // 123: api.v1.IngressDetails.rules:type_name -> api.v1.IngressRule + 48, // 124: api.v1.IngressDetails.tls:type_name -> api.v1.IngressTLS + 47, // 125: api.v1.IngressDetails.default_backend:type_name -> api.v1.IngressBackend + 43, // 126: api.v1.IngressDetails.load_balancer_ingress:type_name -> api.v1.LoadBalancerIngress + 46, // 127: api.v1.IngressRule.paths:type_name -> api.v1.IngressPath + 47, // 128: api.v1.IngressPath.backend:type_name -> api.v1.IngressBackend + 50, // 129: api.v1.PersistentVolumeClaimDetails.resource_requirements:type_name -> api.v1.ResourceRequirements + 24, // 130: api.v1.PersistentVolumeClaimDetails.selector:type_name -> api.v1.LabelSelector + 51, // 131: api.v1.PersistentVolumeClaimDetails.volume_node_affinity:type_name -> api.v1.VolumeNodeAffinity + 52, // 132: api.v1.PersistentVolumeClaimDetails.conditions:type_name -> api.v1.PVCCondition + 138, // 133: api.v1.ResourceRequirements.requests:type_name -> api.v1.ResourceRequirements.RequestsEntry + 139, // 134: api.v1.ResourceRequirements.limits:type_name -> api.v1.ResourceRequirements.LimitsEntry + 72, // 135: api.v1.VolumeNodeAffinity.required:type_name -> api.v1.NodeSelectorRequirement + 72, // 136: api.v1.VolumeNodeAffinity.preferred:type_name -> api.v1.NodeSelectorRequirement + 140, // 137: api.v1.PersistentVolumeDetails.capacity:type_name -> api.v1.PersistentVolumeDetails.CapacityEntry + 54, // 138: api.v1.PersistentVolumeDetails.claim_ref:type_name -> api.v1.PVClaimReference + 55, // 139: api.v1.PersistentVolumeDetails.volume_source:type_name -> api.v1.PVVolumeSource + 70, // 140: api.v1.PersistentVolumeDetails.node_affinity:type_name -> api.v1.NodeSelector + 56, // 141: api.v1.PVVolumeSource.csi:type_name -> api.v1.CSIVolumeSource + 57, // 142: api.v1.PVVolumeSource.host_path:type_name -> api.v1.HostPathVolumeSource + 58, // 143: api.v1.PVVolumeSource.nfs:type_name -> api.v1.NFSVolumeSource + 141, // 144: api.v1.PVVolumeSource.volume_attributes:type_name -> api.v1.PVVolumeSource.VolumeAttributesEntry + 142, // 145: api.v1.CSIVolumeSource.volume_attributes:type_name -> api.v1.CSIVolumeSource.VolumeAttributesEntry + 143, // 146: api.v1.StorageClassDetails.parameters:type_name -> api.v1.StorageClassDetails.ParametersEntry + 67, // 147: api.v1.StorageClassDetails.allowed_topologies:type_name -> api.v1.TopologySelector + 144, // 148: api.v1.NamespaceDetails.conditions:type_name -> api.v1.NamespaceDetails.ConditionsEntry + 63, // 149: api.v1.NodeDetails.addresses:type_name -> api.v1.NodeAddress + 64, // 150: api.v1.NodeDetails.conditions:type_name -> api.v1.NodeCondition + 65, // 151: api.v1.NodeDetails.system_info:type_name -> api.v1.NodeSystemInfo + 145, // 152: api.v1.NodeDetails.capacity:type_name -> api.v1.NodeDetails.CapacityEntry + 146, // 153: api.v1.NodeDetails.allocatable:type_name -> api.v1.NodeDetails.AllocatableEntry + 66, // 154: api.v1.NodeDetails.images:type_name -> api.v1.NodeImage + 68, // 155: api.v1.TopologySelector.match_label_expressions:type_name -> api.v1.TopologySelectorTerm + 147, // 156: api.v1.TopologySelectorTerm.match_labels:type_name -> api.v1.TopologySelectorTerm.MatchLabelsEntry + 71, // 157: api.v1.NodeSelector.terms:type_name -> api.v1.NodeSelectorTerm + 72, // 158: api.v1.NodeSelectorTerm.match_expressions:type_name -> api.v1.NodeSelectorRequirement + 72, // 159: api.v1.NodeSelectorTerm.match_fields:type_name -> api.v1.NodeSelectorRequirement + 74, // 160: api.v1.HPADetails.scale_target_ref:type_name -> api.v1.ScaleTargetRef + 75, // 161: api.v1.HPADetails.metrics:type_name -> api.v1.HPAMetric + 87, // 162: api.v1.HPADetails.conditions:type_name -> api.v1.HPACondition + 88, // 163: api.v1.HPADetails.behavior:type_name -> api.v1.HPABehavior + 82, // 164: api.v1.HPADetails.current_metrics:type_name -> api.v1.HPACurrentMetric + 76, // 165: api.v1.HPAMetric.resource:type_name -> api.v1.HPAResourceMetric + 77, // 166: api.v1.HPAMetric.pods:type_name -> api.v1.HPAPodsMetric + 78, // 167: api.v1.HPAMetric.object:type_name -> api.v1.HPAObjectMetric + 79, // 168: api.v1.HPAMetric.external:type_name -> api.v1.HPAExternalMetric + 80, // 169: api.v1.HPAPodsMetric.metric:type_name -> api.v1.HPAMetricSelector + 81, // 170: api.v1.HPAObjectMetric.described_object:type_name -> api.v1.HPAObjectReference + 80, // 171: api.v1.HPAObjectMetric.metric:type_name -> api.v1.HPAMetricSelector + 80, // 172: api.v1.HPAExternalMetric.metric:type_name -> api.v1.HPAMetricSelector + 148, // 173: api.v1.HPAMetricSelector.selector:type_name -> api.v1.HPAMetricSelector.SelectorEntry + 83, // 174: api.v1.HPACurrentMetric.resource:type_name -> api.v1.HPACurrentResourceMetric + 84, // 175: api.v1.HPACurrentMetric.pods:type_name -> api.v1.HPACurrentPodsMetric + 85, // 176: api.v1.HPACurrentMetric.object:type_name -> api.v1.HPACurrentObjectMetric + 86, // 177: api.v1.HPACurrentMetric.external:type_name -> api.v1.HPACurrentExternalMetric + 80, // 178: api.v1.HPACurrentPodsMetric.metric:type_name -> api.v1.HPAMetricSelector + 81, // 179: api.v1.HPACurrentObjectMetric.described_object:type_name -> api.v1.HPAObjectReference + 80, // 180: api.v1.HPACurrentObjectMetric.metric:type_name -> api.v1.HPAMetricSelector + 80, // 181: api.v1.HPACurrentExternalMetric.metric:type_name -> api.v1.HPAMetricSelector + 89, // 182: api.v1.HPABehavior.scale_up:type_name -> api.v1.HPAScalingRules + 89, // 183: api.v1.HPABehavior.scale_down:type_name -> api.v1.HPAScalingRules + 90, // 184: api.v1.HPAScalingRules.policies:type_name -> api.v1.HPAScalingPolicy + 92, // 185: api.v1.VPADetails.target_ref:type_name -> api.v1.VPATargetRef + 93, // 186: api.v1.VPADetails.update_policy:type_name -> api.v1.VPAUpdatePolicy + 94, // 187: api.v1.VPADetails.resource_policy:type_name -> api.v1.VPAResourcePolicy + 96, // 188: api.v1.VPADetails.recommendation:type_name -> api.v1.VPARecommendation + 98, // 189: api.v1.VPADetails.conditions:type_name -> api.v1.VPACondition + 95, // 190: api.v1.VPAResourcePolicy.container_policies:type_name -> api.v1.VPAContainerResourcePolicy + 149, // 191: api.v1.VPAContainerResourcePolicy.min_allowed:type_name -> api.v1.VPAContainerResourcePolicy.MinAllowedEntry + 150, // 192: api.v1.VPAContainerResourcePolicy.max_allowed:type_name -> api.v1.VPAContainerResourcePolicy.MaxAllowedEntry + 97, // 193: api.v1.VPARecommendation.container_recommendations:type_name -> api.v1.VPAContainerRecommendation + 151, // 194: api.v1.VPAContainerRecommendation.target:type_name -> api.v1.VPAContainerRecommendation.TargetEntry + 152, // 195: api.v1.VPAContainerRecommendation.lower_bound:type_name -> api.v1.VPAContainerRecommendation.LowerBoundEntry + 153, // 196: api.v1.VPAContainerRecommendation.upper_bound:type_name -> api.v1.VPAContainerRecommendation.UpperBoundEntry + 154, // 197: api.v1.VPAContainerRecommendation.uncapped_target:type_name -> api.v1.VPAContainerRecommendation.UncappedTargetEntry + 100, // 198: api.v1.LimitRangeDetails.limits:type_name -> api.v1.LimitRangeItem + 155, // 199: api.v1.LimitRangeItem.default_limits:type_name -> api.v1.LimitRangeItem.DefaultLimitsEntry + 156, // 200: api.v1.LimitRangeItem.default_request:type_name -> api.v1.LimitRangeItem.DefaultRequestEntry + 157, // 201: api.v1.LimitRangeItem.max:type_name -> api.v1.LimitRangeItem.MaxEntry + 158, // 202: api.v1.LimitRangeItem.min:type_name -> api.v1.LimitRangeItem.MinEntry + 159, // 203: api.v1.LimitRangeItem.max_limit_request_ratio:type_name -> api.v1.LimitRangeItem.MaxLimitRequestRatioEntry + 103, // 204: api.v1.RoleDetails.rules:type_name -> api.v1.RoleRule + 105, // 205: api.v1.RoleBindingDetails.subjects:type_name -> api.v1.RoleBindingSubject + 106, // 206: api.v1.RoleBindingDetails.role_ref:type_name -> api.v1.RoleReference + 108, // 207: api.v1.KedaScaledObjectDetails.triggers:type_name -> api.v1.KedaScaledObjectTrigger + 109, // 208: api.v1.KedaScaledObjectDetails.conditions:type_name -> api.v1.KedaScaledObjectCondition + 160, // 209: api.v1.KedaScaledObjectTrigger.metadata:type_name -> api.v1.KedaScaledObjectTrigger.MetadataEntry + 111, // 210: api.v1.KarpenterResourceDetails.conditions:type_name -> api.v1.KarpenterResourceCondition + 112, // 211: api.v1.KarpenterResourceDetails.capacity:type_name -> api.v1.KarpenterCapacity + 113, // 212: api.v1.KarpenterResourceDetails.requirements:type_name -> api.v1.KarpenterRequirement + 161, // 213: api.v1.KarpenterResourceDetails.limits:type_name -> api.v1.KarpenterResourceDetails.LimitsEntry + 162, // 214: api.v1.KarpenterCapacity.other:type_name -> api.v1.KarpenterCapacity.OtherEntry + 24, // 215: api.v1.WorkloadFilters.namespace_selector:type_name -> api.v1.LabelSelector + 24, // 216: api.v1.WorkloadFilters.workload_selector:type_name -> api.v1.LabelSelector + 0, // 217: api.v1.WorkloadFilters.kind_filter:type_name -> api.v1.K8sObjectKind + 25, // 218: api.v1.WorkloadFilters.name_pattern:type_name -> api.v1.RegexPattern + 24, // 219: api.v1.WorkloadFilters.annotation_selector:type_name -> api.v1.LabelSelector + 3, // 220: api.v1.WorkloadFilters.status:type_name -> api.v1.WorkloadStatusFilter + 163, // 221: api.v1.PodDisruptionBudgetDetails.selector_labels:type_name -> api.v1.PodDisruptionBudgetDetails.SelectorLabelsEntry + 116, // 222: api.v1.PodDisruptionBudgetDetails.conditions:type_name -> api.v1.PodDisruptionBudgetCondition + 164, // 223: api.v1.ResourceQuotaDetails.hard_limits:type_name -> api.v1.ResourceQuotaDetails.HardLimitsEntry + 165, // 224: api.v1.ResourceQuotaDetails.used:type_name -> api.v1.ResourceQuotaDetails.UsedEntry + 166, // 225: api.v1.ResourceQuotaDetails.scope_selector:type_name -> api.v1.ResourceQuotaDetails.ScopeSelectorEntry + 118, // 226: api.v1.ResourceQuotaDetails.conditions:type_name -> api.v1.ResourceQuotaCondition + 30, // 227: api.v1.VolcanoJobDetails.containers:type_name -> api.v1.ContainerTemplate + 120, // 228: api.v1.VolcanoJobDetails.conditions:type_name -> api.v1.VolcanoJobCondition + 121, // 229: api.v1.VolcanoJobDetails.tasks:type_name -> api.v1.VolcanoTask + 30, // 230: api.v1.VolcanoTask.containers:type_name -> api.v1.ContainerTemplate + 30, // 231: api.v1.SparkApplicationDetails.containers:type_name -> api.v1.ContainerTemplate + 123, // 232: api.v1.SparkApplicationDetails.spark_driver_info:type_name -> api.v1.SparkDriverInfo + 124, // 233: api.v1.SparkApplicationDetails.restart_policy:type_name -> api.v1.SparkRestartPolicyInfo + 125, // 234: api.v1.SparkApplicationDetails.dynamic_allocation:type_name -> api.v1.SparkDynamicAllocationInfo + 167, // 235: api.v1.ScheduledSparkApplicationDetails.last_run:type_name -> google.protobuf.Timestamp + 167, // 236: api.v1.ScheduledSparkApplicationDetails.next_run:type_name -> google.protobuf.Timestamp + 122, // 237: api.v1.ScheduledSparkApplicationDetails.template_details:type_name -> api.v1.SparkApplicationDetails + 167, // 238: api.v1.Event.created_at:type_name -> google.protobuf.Timestamp + 167, // 239: api.v1.Event.updated_at:type_name -> google.protobuf.Timestamp + 167, // 240: api.v1.Event.last_seen:type_name -> google.protobuf.Timestamp + 167, // 241: api.v1.Event.deleted_at:type_name -> google.protobuf.Timestamp + 128, // 242: api.v1.EventDatapoint.events:type_name -> api.v1.EventDatapointInfo + 243, // [243:243] is the sub-list for method output_type + 243, // [243:243] is the sub-list for method input_type + 243, // [243:243] is the sub-list for extension type_name + 243, // [243:243] is the sub-list for extension extendee + 0, // [0:243] is the sub-list for field type_name } func init() { file_api_v1_common_proto_init() } @@ -17949,7 +18189,7 @@ func file_api_v1_common_proto_init() { } } file_api_v1_common_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + switch v := v.(*ScheduledSparkApplicationDetails); i { case 0: return &v.state case 1: @@ -17961,7 +18201,7 @@ func file_api_v1_common_proto_init() { } } file_api_v1_common_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventDatapointInfo); i { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -17973,6 +18213,18 @@ func file_api_v1_common_proto_init() { } } file_api_v1_common_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventDatapointInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_common_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventDatapoint); i { case 0: return &v.state @@ -18015,6 +18267,7 @@ func file_api_v1_common_proto_init() { (*ResourceDetails_ResourceQuotaDetails)(nil), (*ResourceDetails_VolcanoJobDetails)(nil), (*ResourceDetails_SparkApplicationDetails)(nil), + (*ResourceDetails_ScheduledSparkApplicationDetails)(nil), } file_api_v1_common_proto_msgTypes[110].OneofWrappers = []interface{}{} type x struct{} @@ -18023,7 +18276,7 @@ func file_api_v1_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_v1_common_proto_rawDesc, NumEnums: 4, - NumMessages: 162, + NumMessages: 163, NumExtensions: 0, NumServices: 0, }, diff --git a/gen/api/v1/k8s.pb.go b/gen/api/v1/k8s.pb.go index 7e1b709d..f875cf7a 100644 --- a/gen/api/v1/k8s.pb.go +++ b/gen/api/v1/k8s.pb.go @@ -3477,6 +3477,118 @@ func (x *GetAllNamespacesResponse) GetClusterIdWithNamespaces() []*ClusterElemen return nil } +// SearchNamespacesByClusterRequest searches namespaces by name within a single cluster. +type SearchNamespacesByClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Search string `protobuf:"bytes,3,opt,name=search,proto3" json:"search,omitempty"` +} + +func (x *SearchNamespacesByClusterRequest) Reset() { + *x = SearchNamespacesByClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchNamespacesByClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchNamespacesByClusterRequest) ProtoMessage() {} + +func (x *SearchNamespacesByClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[44] + 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 SearchNamespacesByClusterRequest.ProtoReflect.Descriptor instead. +func (*SearchNamespacesByClusterRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{44} +} + +func (x *SearchNamespacesByClusterRequest) GetTeamId() string { + if x != nil { + return x.TeamId + } + return "" +} + +func (x *SearchNamespacesByClusterRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *SearchNamespacesByClusterRequest) GetSearch() string { + if x != nil { + return x.Search + } + return "" +} + +// SearchNamespacesByClusterResponse returns the matching namespace names. +type SearchNamespacesByClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` +} + +func (x *SearchNamespacesByClusterResponse) Reset() { + *x = SearchNamespacesByClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchNamespacesByClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchNamespacesByClusterResponse) ProtoMessage() {} + +func (x *SearchNamespacesByClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[45] + 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 SearchNamespacesByClusterResponse.ProtoReflect.Descriptor instead. +func (*SearchNamespacesByClusterResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{45} +} + +func (x *SearchNamespacesByClusterResponse) GetNamespaces() []string { + if x != nil { + return x.Namespaces + } + return nil +} + type GetAllWorkloadNamesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3496,7 +3608,7 @@ type GetAllWorkloadNamesRequest struct { func (x *GetAllWorkloadNamesRequest) Reset() { *x = GetAllWorkloadNamesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[44] + mi := &file_api_v1_k8s_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3509,7 +3621,7 @@ func (x *GetAllWorkloadNamesRequest) String() string { func (*GetAllWorkloadNamesRequest) ProtoMessage() {} func (x *GetAllWorkloadNamesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[44] + mi := &file_api_v1_k8s_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3522,7 +3634,7 @@ func (x *GetAllWorkloadNamesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllWorkloadNamesRequest.ProtoReflect.Descriptor instead. func (*GetAllWorkloadNamesRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{44} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{46} } func (x *GetAllWorkloadNamesRequest) GetTeamId() string { @@ -3599,7 +3711,7 @@ type GetAllWorkloadNamesResponse struct { func (x *GetAllWorkloadNamesResponse) Reset() { *x = GetAllWorkloadNamesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[45] + mi := &file_api_v1_k8s_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3612,7 +3724,7 @@ func (x *GetAllWorkloadNamesResponse) String() string { func (*GetAllWorkloadNamesResponse) ProtoMessage() {} func (x *GetAllWorkloadNamesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[45] + mi := &file_api_v1_k8s_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3625,7 +3737,7 @@ func (x *GetAllWorkloadNamesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllWorkloadNamesResponse.ProtoReflect.Descriptor instead. func (*GetAllWorkloadNamesResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{45} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{47} } func (x *GetAllWorkloadNamesResponse) GetClusterIdWithWorkloadName() []*ClusterElement { @@ -3653,7 +3765,7 @@ type GetAllWorkloadLabelsRequest struct { func (x *GetAllWorkloadLabelsRequest) Reset() { *x = GetAllWorkloadLabelsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[46] + mi := &file_api_v1_k8s_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3666,7 +3778,7 @@ func (x *GetAllWorkloadLabelsRequest) String() string { func (*GetAllWorkloadLabelsRequest) ProtoMessage() {} func (x *GetAllWorkloadLabelsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[46] + mi := &file_api_v1_k8s_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3679,7 +3791,7 @@ func (x *GetAllWorkloadLabelsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllWorkloadLabelsRequest.ProtoReflect.Descriptor instead. func (*GetAllWorkloadLabelsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{46} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{48} } func (x *GetAllWorkloadLabelsRequest) GetTeamId() string { @@ -3749,7 +3861,7 @@ type GetAllWorkloadLabelsResponse struct { func (x *GetAllWorkloadLabelsResponse) Reset() { *x = GetAllWorkloadLabelsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[47] + mi := &file_api_v1_k8s_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3762,7 +3874,7 @@ func (x *GetAllWorkloadLabelsResponse) String() string { func (*GetAllWorkloadLabelsResponse) ProtoMessage() {} func (x *GetAllWorkloadLabelsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[47] + mi := &file_api_v1_k8s_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3775,7 +3887,7 @@ func (x *GetAllWorkloadLabelsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllWorkloadLabelsResponse.ProtoReflect.Descriptor instead. func (*GetAllWorkloadLabelsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{47} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{49} } func (x *GetAllWorkloadLabelsResponse) GetClusterIdWithLabels() []*ClusterElement { @@ -3800,7 +3912,7 @@ type GetAllNodeGroupNamesRequest struct { func (x *GetAllNodeGroupNamesRequest) Reset() { *x = GetAllNodeGroupNamesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[48] + mi := &file_api_v1_k8s_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3813,7 +3925,7 @@ func (x *GetAllNodeGroupNamesRequest) String() string { func (*GetAllNodeGroupNamesRequest) ProtoMessage() {} func (x *GetAllNodeGroupNamesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[48] + mi := &file_api_v1_k8s_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3826,7 +3938,7 @@ func (x *GetAllNodeGroupNamesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllNodeGroupNamesRequest.ProtoReflect.Descriptor instead. func (*GetAllNodeGroupNamesRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{48} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{50} } func (x *GetAllNodeGroupNamesRequest) GetTeamId() string { @@ -3875,7 +3987,7 @@ type GetAllNodeGroupNamesResponse struct { func (x *GetAllNodeGroupNamesResponse) Reset() { *x = GetAllNodeGroupNamesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[49] + mi := &file_api_v1_k8s_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3888,7 +4000,7 @@ func (x *GetAllNodeGroupNamesResponse) String() string { func (*GetAllNodeGroupNamesResponse) ProtoMessage() {} func (x *GetAllNodeGroupNamesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[49] + mi := &file_api_v1_k8s_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3901,7 +4013,7 @@ func (x *GetAllNodeGroupNamesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllNodeGroupNamesResponse.ProtoReflect.Descriptor instead. func (*GetAllNodeGroupNamesResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{49} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{51} } func (x *GetAllNodeGroupNamesResponse) GetClusterIdWithNodeGroupNames() []*ClusterElement { @@ -3951,12 +4063,13 @@ type Cluster struct { NetworkOpInfo *OperatorInfo `protobuf:"bytes,63,opt,name=network_op_info,json=networkOpInfo,proto3" json:"network_op_info,omitempty"` ImpactScore float64 `protobuf:"fixed64,70,opt,name=impact_score,json=impactScore,proto3" json:"impact_score,omitempty"` // Optimization impact score for cluster Underutilization float64 `protobuf:"fixed64,81,opt,name=underutilization,proto3" json:"underutilization,omitempty"` // Percentage of how much is cluster underutilized that is using combined numbers of cpu, memory and GPU + Tags []string `protobuf:"bytes,91,rep,name=tags,proto3" json:"tags,omitempty"` // Tags for the cluster } func (x *Cluster) Reset() { *x = Cluster{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[50] + mi := &file_api_v1_k8s_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3969,7 +4082,7 @@ func (x *Cluster) String() string { func (*Cluster) ProtoMessage() {} func (x *Cluster) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[50] + mi := &file_api_v1_k8s_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3982,7 +4095,7 @@ func (x *Cluster) ProtoReflect() protoreflect.Message { // Deprecated: Use Cluster.ProtoReflect.Descriptor instead. func (*Cluster) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{50} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{52} } func (x *Cluster) GetId() string { @@ -4223,6 +4336,13 @@ func (x *Cluster) GetUnderutilization() float64 { return 0 } +func (x *Cluster) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + type OperatorInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4236,7 +4356,7 @@ type OperatorInfo struct { func (x *OperatorInfo) Reset() { *x = OperatorInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[51] + mi := &file_api_v1_k8s_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4249,7 +4369,7 @@ func (x *OperatorInfo) String() string { func (*OperatorInfo) ProtoMessage() {} func (x *OperatorInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[51] + mi := &file_api_v1_k8s_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4262,7 +4382,7 @@ func (x *OperatorInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OperatorInfo.ProtoReflect.Descriptor instead. func (*OperatorInfo) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{51} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{53} } func (x *OperatorInfo) GetVersion() string { @@ -4300,7 +4420,7 @@ type Container struct { func (x *Container) Reset() { *x = Container{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[52] + mi := &file_api_v1_k8s_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4313,7 +4433,7 @@ func (x *Container) String() string { func (*Container) ProtoMessage() {} func (x *Container) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[52] + mi := &file_api_v1_k8s_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4326,7 +4446,7 @@ func (x *Container) ProtoReflect() protoreflect.Message { // Deprecated: Use Container.ProtoReflect.Descriptor instead. func (*Container) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{52} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{54} } func (x *Container) GetId() string { @@ -4359,7 +4479,7 @@ type GetLatestOperatorVersionRequest struct { func (x *GetLatestOperatorVersionRequest) Reset() { *x = GetLatestOperatorVersionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[53] + mi := &file_api_v1_k8s_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4372,7 +4492,7 @@ func (x *GetLatestOperatorVersionRequest) String() string { func (*GetLatestOperatorVersionRequest) ProtoMessage() {} func (x *GetLatestOperatorVersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[53] + mi := &file_api_v1_k8s_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4385,7 +4505,7 @@ func (x *GetLatestOperatorVersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLatestOperatorVersionRequest.ProtoReflect.Descriptor instead. func (*GetLatestOperatorVersionRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{53} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{55} } type GetLatestOperatorVersionResponse struct { @@ -4399,15 +4519,18 @@ type GetLatestOperatorVersionResponse struct { ZxpNetmonHelmInfo *OperatorInfo `protobuf:"bytes,4,opt,name=zxp_netmon_helm_info,json=zxpNetmonHelmInfo,proto3" json:"zxp_netmon_helm_info,omitempty"` DakrOpInfo *OperatorInfo `protobuf:"bytes,11,opt,name=dakr_op_info,json=dakrOpInfo,proto3" json:"dakr_op_info,omitempty"` DakrOpHelmInfo *OperatorInfo `protobuf:"bytes,12,opt,name=dakr_op_helm_info,json=dakrOpHelmInfo,proto3" json:"dakr_op_helm_info,omitempty"` - NodeOpInfo *OperatorInfo `protobuf:"bytes,13,opt,name=node_op_info,json=nodeOpInfo,proto3" json:"node_op_info,omitempty"` - SecurityOpInfo *OperatorInfo `protobuf:"bytes,14,opt,name=security_op_info,json=securityOpInfo,proto3" json:"security_op_info,omitempty"` - SecurityOpHelmInfo *OperatorInfo `protobuf:"bytes,15,opt,name=security_op_helm_info,json=securityOpHelmInfo,proto3" json:"security_op_helm_info,omitempty"` + NodeOpInfoAws *OperatorInfo `protobuf:"bytes,21,opt,name=node_op_info_aws,json=nodeOpInfoAws,proto3" json:"node_op_info_aws,omitempty"` + NodeOpInfoAzure *OperatorInfo `protobuf:"bytes,22,opt,name=node_op_info_azure,json=nodeOpInfoAzure,proto3" json:"node_op_info_azure,omitempty"` + NodeOpInfoGcp *OperatorInfo `protobuf:"bytes,23,opt,name=node_op_info_gcp,json=nodeOpInfoGcp,proto3" json:"node_op_info_gcp,omitempty"` + NodeOpInfoOci *OperatorInfo `protobuf:"bytes,24,opt,name=node_op_info_oci,json=nodeOpInfoOci,proto3" json:"node_op_info_oci,omitempty"` + SecurityOpInfo *OperatorInfo `protobuf:"bytes,31,opt,name=security_op_info,json=securityOpInfo,proto3" json:"security_op_info,omitempty"` + SecurityOpHelmInfo *OperatorInfo `protobuf:"bytes,32,opt,name=security_op_helm_info,json=securityOpHelmInfo,proto3" json:"security_op_helm_info,omitempty"` } func (x *GetLatestOperatorVersionResponse) Reset() { *x = GetLatestOperatorVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[54] + mi := &file_api_v1_k8s_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4420,7 +4543,7 @@ func (x *GetLatestOperatorVersionResponse) String() string { func (*GetLatestOperatorVersionResponse) ProtoMessage() {} func (x *GetLatestOperatorVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[54] + mi := &file_api_v1_k8s_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4433,7 +4556,7 @@ func (x *GetLatestOperatorVersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLatestOperatorVersionResponse.ProtoReflect.Descriptor instead. func (*GetLatestOperatorVersionResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{54} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{56} } func (x *GetLatestOperatorVersionResponse) GetZxpInfo() *OperatorInfo { @@ -4478,9 +4601,30 @@ func (x *GetLatestOperatorVersionResponse) GetDakrOpHelmInfo() *OperatorInfo { return nil } -func (x *GetLatestOperatorVersionResponse) GetNodeOpInfo() *OperatorInfo { +func (x *GetLatestOperatorVersionResponse) GetNodeOpInfoAws() *OperatorInfo { if x != nil { - return x.NodeOpInfo + return x.NodeOpInfoAws + } + return nil +} + +func (x *GetLatestOperatorVersionResponse) GetNodeOpInfoAzure() *OperatorInfo { + if x != nil { + return x.NodeOpInfoAzure + } + return nil +} + +func (x *GetLatestOperatorVersionResponse) GetNodeOpInfoGcp() *OperatorInfo { + if x != nil { + return x.NodeOpInfoGcp + } + return nil +} + +func (x *GetLatestOperatorVersionResponse) GetNodeOpInfoOci() *OperatorInfo { + if x != nil { + return x.NodeOpInfoOci } return nil } @@ -4513,7 +4657,7 @@ type GalaxyGetClusterPerspectiveRequest struct { func (x *GalaxyGetClusterPerspectiveRequest) Reset() { *x = GalaxyGetClusterPerspectiveRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[55] + mi := &file_api_v1_k8s_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4526,7 +4670,7 @@ func (x *GalaxyGetClusterPerspectiveRequest) String() string { func (*GalaxyGetClusterPerspectiveRequest) ProtoMessage() {} func (x *GalaxyGetClusterPerspectiveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[55] + mi := &file_api_v1_k8s_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4539,7 +4683,7 @@ func (x *GalaxyGetClusterPerspectiveRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GalaxyGetClusterPerspectiveRequest.ProtoReflect.Descriptor instead. func (*GalaxyGetClusterPerspectiveRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{55} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{57} } func (x *GalaxyGetClusterPerspectiveRequest) GetTeamId() string { @@ -4581,7 +4725,7 @@ type GalaxyGetClusterPerspectiveResponse struct { func (x *GalaxyGetClusterPerspectiveResponse) Reset() { *x = GalaxyGetClusterPerspectiveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[56] + mi := &file_api_v1_k8s_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4594,7 +4738,7 @@ func (x *GalaxyGetClusterPerspectiveResponse) String() string { func (*GalaxyGetClusterPerspectiveResponse) ProtoMessage() {} func (x *GalaxyGetClusterPerspectiveResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[56] + mi := &file_api_v1_k8s_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4607,7 +4751,7 @@ func (x *GalaxyGetClusterPerspectiveResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use GalaxyGetClusterPerspectiveResponse.ProtoReflect.Descriptor instead. func (*GalaxyGetClusterPerspectiveResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{56} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{58} } func (x *GalaxyGetClusterPerspectiveResponse) GetGroupings() []*GalaxyClusterGroup { @@ -4633,7 +4777,7 @@ type GalaxyClusterGroup struct { func (x *GalaxyClusterGroup) Reset() { *x = GalaxyClusterGroup{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[57] + mi := &file_api_v1_k8s_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4646,7 +4790,7 @@ func (x *GalaxyClusterGroup) String() string { func (*GalaxyClusterGroup) ProtoMessage() {} func (x *GalaxyClusterGroup) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[57] + mi := &file_api_v1_k8s_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4659,7 +4803,7 @@ func (x *GalaxyClusterGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use GalaxyClusterGroup.ProtoReflect.Descriptor instead. func (*GalaxyClusterGroup) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{57} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{59} } func (x *GalaxyClusterGroup) GetGroupKey() string { @@ -4711,7 +4855,7 @@ type GalaxyGetNodePerspectiveRequest struct { func (x *GalaxyGetNodePerspectiveRequest) Reset() { *x = GalaxyGetNodePerspectiveRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[58] + mi := &file_api_v1_k8s_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4724,7 +4868,7 @@ func (x *GalaxyGetNodePerspectiveRequest) String() string { func (*GalaxyGetNodePerspectiveRequest) ProtoMessage() {} func (x *GalaxyGetNodePerspectiveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[58] + mi := &file_api_v1_k8s_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4737,7 +4881,7 @@ func (x *GalaxyGetNodePerspectiveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GalaxyGetNodePerspectiveRequest.ProtoReflect.Descriptor instead. func (*GalaxyGetNodePerspectiveRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{58} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{60} } func (x *GalaxyGetNodePerspectiveRequest) GetTeamId() string { @@ -4779,7 +4923,7 @@ type GalaxyGetNodePerspectiveResponse struct { func (x *GalaxyGetNodePerspectiveResponse) Reset() { *x = GalaxyGetNodePerspectiveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[59] + mi := &file_api_v1_k8s_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4792,7 +4936,7 @@ func (x *GalaxyGetNodePerspectiveResponse) String() string { func (*GalaxyGetNodePerspectiveResponse) ProtoMessage() {} func (x *GalaxyGetNodePerspectiveResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[59] + mi := &file_api_v1_k8s_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4805,7 +4949,7 @@ func (x *GalaxyGetNodePerspectiveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GalaxyGetNodePerspectiveResponse.ProtoReflect.Descriptor instead. func (*GalaxyGetNodePerspectiveResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{59} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{61} } func (x *GalaxyGetNodePerspectiveResponse) GetGroupings() []*GalaxyNodeGroup { @@ -4833,7 +4977,7 @@ type GalaxyNodeGroup struct { func (x *GalaxyNodeGroup) Reset() { *x = GalaxyNodeGroup{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[60] + mi := &file_api_v1_k8s_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4846,7 +4990,7 @@ func (x *GalaxyNodeGroup) String() string { func (*GalaxyNodeGroup) ProtoMessage() {} func (x *GalaxyNodeGroup) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[60] + mi := &file_api_v1_k8s_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4859,7 +5003,7 @@ func (x *GalaxyNodeGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use GalaxyNodeGroup.ProtoReflect.Descriptor instead. func (*GalaxyNodeGroup) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{60} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{62} } func (x *GalaxyNodeGroup) GetGroupKey() string { @@ -4918,7 +5062,7 @@ type GalaxyGetWorkloadPerspectiveRequest struct { func (x *GalaxyGetWorkloadPerspectiveRequest) Reset() { *x = GalaxyGetWorkloadPerspectiveRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[61] + mi := &file_api_v1_k8s_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4931,7 +5075,7 @@ func (x *GalaxyGetWorkloadPerspectiveRequest) String() string { func (*GalaxyGetWorkloadPerspectiveRequest) ProtoMessage() {} func (x *GalaxyGetWorkloadPerspectiveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[61] + mi := &file_api_v1_k8s_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4944,7 +5088,7 @@ func (x *GalaxyGetWorkloadPerspectiveRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use GalaxyGetWorkloadPerspectiveRequest.ProtoReflect.Descriptor instead. func (*GalaxyGetWorkloadPerspectiveRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{61} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{63} } func (x *GalaxyGetWorkloadPerspectiveRequest) GetTeamId() string { @@ -4988,7 +5132,7 @@ type GalaxyGetWorkloadPerspectiveResponse struct { func (x *GalaxyGetWorkloadPerspectiveResponse) Reset() { *x = GalaxyGetWorkloadPerspectiveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[62] + mi := &file_api_v1_k8s_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5001,7 +5145,7 @@ func (x *GalaxyGetWorkloadPerspectiveResponse) String() string { func (*GalaxyGetWorkloadPerspectiveResponse) ProtoMessage() {} func (x *GalaxyGetWorkloadPerspectiveResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[62] + mi := &file_api_v1_k8s_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5014,7 +5158,7 @@ func (x *GalaxyGetWorkloadPerspectiveResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use GalaxyGetWorkloadPerspectiveResponse.ProtoReflect.Descriptor instead. func (*GalaxyGetWorkloadPerspectiveResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{62} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{64} } func (x *GalaxyGetWorkloadPerspectiveResponse) GetGroupings() []*GalaxyWorkloadGroup { @@ -5056,7 +5200,7 @@ type GalaxyWorkloadGroup struct { func (x *GalaxyWorkloadGroup) Reset() { *x = GalaxyWorkloadGroup{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[63] + mi := &file_api_v1_k8s_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5069,7 +5213,7 @@ func (x *GalaxyWorkloadGroup) String() string { func (*GalaxyWorkloadGroup) ProtoMessage() {} func (x *GalaxyWorkloadGroup) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[63] + mi := &file_api_v1_k8s_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5082,7 +5226,7 @@ func (x *GalaxyWorkloadGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use GalaxyWorkloadGroup.ProtoReflect.Descriptor instead. func (*GalaxyWorkloadGroup) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{63} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{65} } func (x *GalaxyWorkloadGroup) GetGroupKey() string { @@ -5140,7 +5284,7 @@ type PerspectiveDatapointOpts struct { func (x *PerspectiveDatapointOpts) Reset() { *x = PerspectiveDatapointOpts{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[64] + mi := &file_api_v1_k8s_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5153,7 +5297,7 @@ func (x *PerspectiveDatapointOpts) String() string { func (*PerspectiveDatapointOpts) ProtoMessage() {} func (x *PerspectiveDatapointOpts) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[64] + mi := &file_api_v1_k8s_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5166,7 +5310,7 @@ func (x *PerspectiveDatapointOpts) ProtoReflect() protoreflect.Message { // Deprecated: Use PerspectiveDatapointOpts.ProtoReflect.Descriptor instead. func (*PerspectiveDatapointOpts) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{64} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{66} } func (x *PerspectiveDatapointOpts) GetTimeStart() int64 { @@ -5215,7 +5359,7 @@ type ListAuditLogsRequest struct { func (x *ListAuditLogsRequest) Reset() { *x = ListAuditLogsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[65] + mi := &file_api_v1_k8s_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5228,7 +5372,7 @@ func (x *ListAuditLogsRequest) String() string { func (*ListAuditLogsRequest) ProtoMessage() {} func (x *ListAuditLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[65] + mi := &file_api_v1_k8s_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5241,7 +5385,7 @@ func (x *ListAuditLogsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAuditLogsRequest.ProtoReflect.Descriptor instead. func (*ListAuditLogsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{65} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{67} } func (x *ListAuditLogsRequest) GetTeamId() string { @@ -5355,7 +5499,7 @@ type ListAuditLogsResponse struct { func (x *ListAuditLogsResponse) Reset() { *x = ListAuditLogsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[66] + mi := &file_api_v1_k8s_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5368,7 +5512,7 @@ func (x *ListAuditLogsResponse) String() string { func (*ListAuditLogsResponse) ProtoMessage() {} func (x *ListAuditLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[66] + mi := &file_api_v1_k8s_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5381,7 +5525,7 @@ func (x *ListAuditLogsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAuditLogsResponse.ProtoReflect.Descriptor instead. func (*ListAuditLogsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{66} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{68} } func (x *ListAuditLogsResponse) GetLogs() []*AuditLogEntry { @@ -5421,7 +5565,7 @@ type ListAuditLogOriginatorsRequest struct { func (x *ListAuditLogOriginatorsRequest) Reset() { *x = ListAuditLogOriginatorsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[67] + mi := &file_api_v1_k8s_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5434,7 +5578,7 @@ func (x *ListAuditLogOriginatorsRequest) String() string { func (*ListAuditLogOriginatorsRequest) ProtoMessage() {} func (x *ListAuditLogOriginatorsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[67] + mi := &file_api_v1_k8s_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5447,7 +5591,7 @@ func (x *ListAuditLogOriginatorsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAuditLogOriginatorsRequest.ProtoReflect.Descriptor instead. func (*ListAuditLogOriginatorsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{67} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{69} } func (x *ListAuditLogOriginatorsRequest) GetTeamId() string { @@ -5546,7 +5690,7 @@ type ListAuditLogOriginatorsResponse struct { func (x *ListAuditLogOriginatorsResponse) Reset() { *x = ListAuditLogOriginatorsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[68] + mi := &file_api_v1_k8s_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5559,7 +5703,7 @@ func (x *ListAuditLogOriginatorsResponse) String() string { func (*ListAuditLogOriginatorsResponse) ProtoMessage() {} func (x *ListAuditLogOriginatorsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[68] + mi := &file_api_v1_k8s_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5572,7 +5716,7 @@ func (x *ListAuditLogOriginatorsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAuditLogOriginatorsResponse.ProtoReflect.Descriptor instead. func (*ListAuditLogOriginatorsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{68} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{70} } func (x *ListAuditLogOriginatorsResponse) GetEmailAddresses() []string { @@ -5598,7 +5742,7 @@ type SendWorkloadEmailRequest struct { func (x *SendWorkloadEmailRequest) Reset() { *x = SendWorkloadEmailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[69] + mi := &file_api_v1_k8s_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5611,7 +5755,7 @@ func (x *SendWorkloadEmailRequest) String() string { func (*SendWorkloadEmailRequest) ProtoMessage() {} func (x *SendWorkloadEmailRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[69] + mi := &file_api_v1_k8s_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5624,7 +5768,7 @@ func (x *SendWorkloadEmailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendWorkloadEmailRequest.ProtoReflect.Descriptor instead. func (*SendWorkloadEmailRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{69} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{71} } func (x *SendWorkloadEmailRequest) GetTeamId() string { @@ -5674,7 +5818,7 @@ type SendWorkloadEmailResponse struct { func (x *SendWorkloadEmailResponse) Reset() { *x = SendWorkloadEmailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[70] + mi := &file_api_v1_k8s_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5687,7 +5831,7 @@ func (x *SendWorkloadEmailResponse) String() string { func (*SendWorkloadEmailResponse) ProtoMessage() {} func (x *SendWorkloadEmailResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[70] + mi := &file_api_v1_k8s_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5700,7 +5844,7 @@ func (x *SendWorkloadEmailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendWorkloadEmailResponse.ProtoReflect.Descriptor instead. func (*SendWorkloadEmailResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{70} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{72} } func (x *SendWorkloadEmailResponse) GetMessage() string { @@ -5722,7 +5866,7 @@ type SendWeeklySummaryEmailRequest struct { func (x *SendWeeklySummaryEmailRequest) Reset() { *x = SendWeeklySummaryEmailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[71] + mi := &file_api_v1_k8s_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5735,7 +5879,7 @@ func (x *SendWeeklySummaryEmailRequest) String() string { func (*SendWeeklySummaryEmailRequest) ProtoMessage() {} func (x *SendWeeklySummaryEmailRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[71] + mi := &file_api_v1_k8s_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5748,7 +5892,7 @@ func (x *SendWeeklySummaryEmailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendWeeklySummaryEmailRequest.ProtoReflect.Descriptor instead. func (*SendWeeklySummaryEmailRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{71} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{73} } func (x *SendWeeklySummaryEmailRequest) GetRequest() *SendWeeklySummaryEmailRequestData { @@ -5771,7 +5915,7 @@ type SendWeeklySummaryEmailRequestData struct { func (x *SendWeeklySummaryEmailRequestData) Reset() { *x = SendWeeklySummaryEmailRequestData{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[72] + mi := &file_api_v1_k8s_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5784,7 +5928,7 @@ func (x *SendWeeklySummaryEmailRequestData) String() string { func (*SendWeeklySummaryEmailRequestData) ProtoMessage() {} func (x *SendWeeklySummaryEmailRequestData) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[72] + mi := &file_api_v1_k8s_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5797,7 +5941,7 @@ func (x *SendWeeklySummaryEmailRequestData) ProtoReflect() protoreflect.Message // Deprecated: Use SendWeeklySummaryEmailRequestData.ProtoReflect.Descriptor instead. func (*SendWeeklySummaryEmailRequestData) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{72} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{74} } func (x *SendWeeklySummaryEmailRequestData) GetTeamId() string { @@ -5826,7 +5970,7 @@ type SendWeeklySummaryEmailResponse struct { func (x *SendWeeklySummaryEmailResponse) Reset() { *x = SendWeeklySummaryEmailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[73] + mi := &file_api_v1_k8s_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5839,7 +5983,7 @@ func (x *SendWeeklySummaryEmailResponse) String() string { func (*SendWeeklySummaryEmailResponse) ProtoMessage() {} func (x *SendWeeklySummaryEmailResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[73] + mi := &file_api_v1_k8s_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5852,7 +5996,7 @@ func (x *SendWeeklySummaryEmailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendWeeklySummaryEmailResponse.ProtoReflect.Descriptor instead. func (*SendWeeklySummaryEmailResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{73} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{75} } func (x *SendWeeklySummaryEmailResponse) GetMessage() string { @@ -5880,7 +6024,7 @@ type GetClustersNodeInfoRequest struct { func (x *GetClustersNodeInfoRequest) Reset() { *x = GetClustersNodeInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[74] + mi := &file_api_v1_k8s_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5893,7 +6037,7 @@ func (x *GetClustersNodeInfoRequest) String() string { func (*GetClustersNodeInfoRequest) ProtoMessage() {} func (x *GetClustersNodeInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[74] + mi := &file_api_v1_k8s_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5906,7 +6050,7 @@ func (x *GetClustersNodeInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClustersNodeInfoRequest.ProtoReflect.Descriptor instead. func (*GetClustersNodeInfoRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{74} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{76} } func (x *GetClustersNodeInfoRequest) GetTeamId() string { @@ -5973,7 +6117,7 @@ type GetClustersNodeInfoResponse struct { func (x *GetClustersNodeInfoResponse) Reset() { *x = GetClustersNodeInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[75] + mi := &file_api_v1_k8s_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5986,7 +6130,7 @@ func (x *GetClustersNodeInfoResponse) String() string { func (*GetClustersNodeInfoResponse) ProtoMessage() {} func (x *GetClustersNodeInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[75] + mi := &file_api_v1_k8s_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5999,7 +6143,7 @@ func (x *GetClustersNodeInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClustersNodeInfoResponse.ProtoReflect.Descriptor instead. func (*GetClustersNodeInfoResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{75} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{77} } func (x *GetClustersNodeInfoResponse) GetNodeInfo() *NodeInfo { @@ -6044,7 +6188,7 @@ type SearchK8SResourcesRequest struct { func (x *SearchK8SResourcesRequest) Reset() { *x = SearchK8SResourcesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[76] + mi := &file_api_v1_k8s_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6057,7 +6201,7 @@ func (x *SearchK8SResourcesRequest) String() string { func (*SearchK8SResourcesRequest) ProtoMessage() {} func (x *SearchK8SResourcesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[76] + mi := &file_api_v1_k8s_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6070,7 +6214,7 @@ func (x *SearchK8SResourcesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchK8SResourcesRequest.ProtoReflect.Descriptor instead. func (*SearchK8SResourcesRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{76} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{78} } func (x *SearchK8SResourcesRequest) GetTeamId() string { @@ -6112,7 +6256,7 @@ type SearchK8SResourcesResponse struct { func (x *SearchK8SResourcesResponse) Reset() { *x = SearchK8SResourcesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[77] + mi := &file_api_v1_k8s_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6125,7 +6269,7 @@ func (x *SearchK8SResourcesResponse) String() string { func (*SearchK8SResourcesResponse) ProtoMessage() {} func (x *SearchK8SResourcesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[77] + mi := &file_api_v1_k8s_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6138,7 +6282,7 @@ func (x *SearchK8SResourcesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchK8SResourcesResponse.ProtoReflect.Descriptor instead. func (*SearchK8SResourcesResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{77} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{79} } func (x *SearchK8SResourcesResponse) GetResults() []*K8SSearchResult { @@ -6163,7 +6307,7 @@ type K8SSearchResult struct { func (x *K8SSearchResult) Reset() { *x = K8SSearchResult{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[78] + mi := &file_api_v1_k8s_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6176,7 +6320,7 @@ func (x *K8SSearchResult) String() string { func (*K8SSearchResult) ProtoMessage() {} func (x *K8SSearchResult) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[78] + mi := &file_api_v1_k8s_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6189,7 +6333,7 @@ func (x *K8SSearchResult) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SSearchResult.ProtoReflect.Descriptor instead. func (*K8SSearchResult) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{78} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{80} } func (x *K8SSearchResult) GetUid() string { @@ -6240,7 +6384,7 @@ type SearchK8SWorkloadsRequest struct { func (x *SearchK8SWorkloadsRequest) Reset() { *x = SearchK8SWorkloadsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[79] + mi := &file_api_v1_k8s_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6253,7 +6397,7 @@ func (x *SearchK8SWorkloadsRequest) String() string { func (*SearchK8SWorkloadsRequest) ProtoMessage() {} func (x *SearchK8SWorkloadsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[79] + mi := &file_api_v1_k8s_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6266,7 +6410,7 @@ func (x *SearchK8SWorkloadsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchK8SWorkloadsRequest.ProtoReflect.Descriptor instead. func (*SearchK8SWorkloadsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{79} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{81} } func (x *SearchK8SWorkloadsRequest) GetTeamId() string { @@ -6301,7 +6445,7 @@ type SearchK8SWorkloadsResponse struct { func (x *SearchK8SWorkloadsResponse) Reset() { *x = SearchK8SWorkloadsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[80] + mi := &file_api_v1_k8s_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6314,7 +6458,7 @@ func (x *SearchK8SWorkloadsResponse) String() string { func (*SearchK8SWorkloadsResponse) ProtoMessage() {} func (x *SearchK8SWorkloadsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[80] + mi := &file_api_v1_k8s_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6327,7 +6471,7 @@ func (x *SearchK8SWorkloadsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchK8SWorkloadsResponse.ProtoReflect.Descriptor instead. func (*SearchK8SWorkloadsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{80} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{82} } func (x *SearchK8SWorkloadsResponse) GetResults() []*K8SWorkloadSearchResult { @@ -6349,7 +6493,7 @@ type K8SWorkloadSearchResult struct { func (x *K8SWorkloadSearchResult) Reset() { *x = K8SWorkloadSearchResult{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[81] + mi := &file_api_v1_k8s_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6362,7 +6506,7 @@ func (x *K8SWorkloadSearchResult) String() string { func (*K8SWorkloadSearchResult) ProtoMessage() {} func (x *K8SWorkloadSearchResult) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[81] + mi := &file_api_v1_k8s_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6375,7 +6519,7 @@ func (x *K8SWorkloadSearchResult) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SWorkloadSearchResult.ProtoReflect.Descriptor instead. func (*K8SWorkloadSearchResult) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{81} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{83} } func (x *K8SWorkloadSearchResult) GetKind() string { @@ -6406,7 +6550,7 @@ type MetadataForWorkloadsRequest struct { func (x *MetadataForWorkloadsRequest) Reset() { *x = MetadataForWorkloadsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[82] + mi := &file_api_v1_k8s_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6419,7 +6563,7 @@ func (x *MetadataForWorkloadsRequest) String() string { func (*MetadataForWorkloadsRequest) ProtoMessage() {} func (x *MetadataForWorkloadsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[82] + mi := &file_api_v1_k8s_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6432,7 +6576,7 @@ func (x *MetadataForWorkloadsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataForWorkloadsRequest.ProtoReflect.Descriptor instead. func (*MetadataForWorkloadsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{82} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{84} } func (x *MetadataForWorkloadsRequest) GetTeamId() string { @@ -6474,7 +6618,7 @@ type MetadataForWorkloadsResponse struct { func (x *MetadataForWorkloadsResponse) Reset() { *x = MetadataForWorkloadsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[83] + mi := &file_api_v1_k8s_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6487,7 +6631,7 @@ func (x *MetadataForWorkloadsResponse) String() string { func (*MetadataForWorkloadsResponse) ProtoMessage() {} func (x *MetadataForWorkloadsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[83] + mi := &file_api_v1_k8s_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6500,7 +6644,7 @@ func (x *MetadataForWorkloadsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataForWorkloadsResponse.ProtoReflect.Descriptor instead. func (*MetadataForWorkloadsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{83} + return file_api_v1_k8s_proto_rawDescGZIP(), []int{85} } func (x *MetadataForWorkloadsResponse) GetWorkloadUidToMetadata() map[string]*WorkloadMetadata { @@ -6510,38 +6654,33 @@ func (x *MetadataForWorkloadsResponse) GetWorkloadUidToMetadata() map[string]*Wo return nil } -type WorkloadMetadata struct { +type AddClusterTagsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PodUidToNodeMetadata map[string]*NodeMetadata `protobuf:"bytes,1,rep,name=pod_uid_to_node_metadata,json=podUidToNodeMetadata,proto3" json:"pod_uid_to_node_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - PodUidToPodMetadata map[string]*PodMetadata `protobuf:"bytes,2,rep,name=pod_uid_to_pod_metadata,json=podUidToPodMetadata,proto3" json:"pod_uid_to_pod_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"` - Annotation string `protobuf:"bytes,7,opt,name=annotation,proto3" json:"annotation,omitempty"` - Spec string `protobuf:"bytes,8,opt,name=spec,proto3" json:"spec,omitempty"` - Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` - Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` - Kind K8SObjectKind `protobuf:"varint,11,opt,name=kind,proto3,enum=api.v1.K8SObjectKind" json:"kind,omitempty"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` } -func (x *WorkloadMetadata) Reset() { - *x = WorkloadMetadata{} +func (x *AddClusterTagsRequest) Reset() { + *x = AddClusterTagsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[84] + mi := &file_api_v1_k8s_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkloadMetadata) String() string { +func (x *AddClusterTagsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkloadMetadata) ProtoMessage() {} +func (*AddClusterTagsRequest) ProtoMessage() {} -func (x *WorkloadMetadata) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[84] +func (x *AddClusterTagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6552,97 +6691,106 @@ func (x *WorkloadMetadata) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkloadMetadata.ProtoReflect.Descriptor instead. -func (*WorkloadMetadata) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{84} +// Deprecated: Use AddClusterTagsRequest.ProtoReflect.Descriptor instead. +func (*AddClusterTagsRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{86} } -func (x *WorkloadMetadata) GetPodUidToNodeMetadata() map[string]*NodeMetadata { +func (x *AddClusterTagsRequest) GetTeamId() string { if x != nil { - return x.PodUidToNodeMetadata + return x.TeamId } - return nil + return "" } -func (x *WorkloadMetadata) GetPodUidToPodMetadata() map[string]*PodMetadata { +func (x *AddClusterTagsRequest) GetClusterId() string { if x != nil { - return x.PodUidToPodMetadata + return x.ClusterId } - return nil + return "" } -func (x *WorkloadMetadata) GetLabel() string { +func (x *AddClusterTagsRequest) GetTags() []string { if x != nil { - return x.Label + return x.Tags } - return "" + return nil } -func (x *WorkloadMetadata) GetAnnotation() string { - if x != nil { - return x.Annotation - } - return "" +type AddClusterTagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cluster *Cluster `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` } -func (x *WorkloadMetadata) GetSpec() string { - if x != nil { - return x.Spec +func (x *AddClusterTagsResponse) Reset() { + *x = AddClusterTagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *WorkloadMetadata) GetStatus() string { - if x != nil { - return x.Status - } - return "" +func (x *AddClusterTagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *WorkloadMetadata) GetMetadata() string { - if x != nil { - return x.Metadata +func (*AddClusterTagsResponse) ProtoMessage() {} + +func (x *AddClusterTagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *WorkloadMetadata) GetKind() K8SObjectKind { +// Deprecated: Use AddClusterTagsResponse.ProtoReflect.Descriptor instead. +func (*AddClusterTagsResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{87} +} + +func (x *AddClusterTagsResponse) GetCluster() *Cluster { if x != nil { - return x.Kind + return x.Cluster } - return K8SObjectKind_K8S_OBJECT_KIND_UNSPECIFIED + return nil } -type PodMetadata struct { +type RemoveClusterTagsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"` - Annotation string `protobuf:"bytes,7,opt,name=annotation,proto3" json:"annotation,omitempty"` - Spec string `protobuf:"bytes,8,opt,name=spec,proto3" json:"spec,omitempty"` - Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` - Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` } -func (x *PodMetadata) Reset() { - *x = PodMetadata{} +func (x *RemoveClusterTagsRequest) Reset() { + *x = RemoveClusterTagsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[85] + mi := &file_api_v1_k8s_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PodMetadata) String() string { +func (x *RemoveClusterTagsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PodMetadata) ProtoMessage() {} +func (*RemoveClusterTagsRequest) ProtoMessage() {} -func (x *PodMetadata) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[85] +func (x *RemoveClusterTagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6653,86 +6801,57 @@ func (x *PodMetadata) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PodMetadata.ProtoReflect.Descriptor instead. -func (*PodMetadata) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{85} -} - -func (x *PodMetadata) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *PodMetadata) GetLabel() string { - if x != nil { - return x.Label - } - return "" -} - -func (x *PodMetadata) GetAnnotation() string { - if x != nil { - return x.Annotation - } - return "" +// Deprecated: Use RemoveClusterTagsRequest.ProtoReflect.Descriptor instead. +func (*RemoveClusterTagsRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{88} } -func (x *PodMetadata) GetSpec() string { +func (x *RemoveClusterTagsRequest) GetTeamId() string { if x != nil { - return x.Spec + return x.TeamId } return "" } -func (x *PodMetadata) GetStatus() string { +func (x *RemoveClusterTagsRequest) GetClusterId() string { if x != nil { - return x.Status + return x.ClusterId } return "" } -func (x *PodMetadata) GetMetadata() string { +func (x *RemoveClusterTagsRequest) GetTags() []string { if x != nil { - return x.Metadata + return x.Tags } - return "" + return nil } -type NodeMetadata struct { +type RemoveClusterTagsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` - NodeGroupName string `protobuf:"bytes,2,opt,name=node_group_name,json=nodeGroupName,proto3" json:"node_group_name,omitempty"` - NodeGroupType string `protobuf:"bytes,3,opt,name=node_group_type,json=nodeGroupType,proto3" json:"node_group_type,omitempty"` - CloudInstTypeName string `protobuf:"bytes,4,opt,name=cloud_inst_type_name,json=cloudInstTypeName,proto3" json:"cloud_inst_type_name,omitempty"` - Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"` - Annotation string `protobuf:"bytes,7,opt,name=annotation,proto3" json:"annotation,omitempty"` - Spec string `protobuf:"bytes,8,opt,name=spec,proto3" json:"spec,omitempty"` - Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` - Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` + Cluster *Cluster `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` } -func (x *NodeMetadata) Reset() { - *x = NodeMetadata{} +func (x *RemoveClusterTagsResponse) Reset() { + *x = RemoveClusterTagsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[86] + mi := &file_api_v1_k8s_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeMetadata) String() string { +func (x *RemoveClusterTagsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeMetadata) ProtoMessage() {} +func (*RemoveClusterTagsResponse) ProtoMessage() {} -func (x *NodeMetadata) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[86] +func (x *RemoveClusterTagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6743,104 +6862,91 @@ func (x *NodeMetadata) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeMetadata.ProtoReflect.Descriptor instead. -func (*NodeMetadata) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{86} +// Deprecated: Use RemoveClusterTagsResponse.ProtoReflect.Descriptor instead. +func (*RemoveClusterTagsResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{89} } -func (x *NodeMetadata) GetNodeName() string { +func (x *RemoveClusterTagsResponse) GetCluster() *Cluster { if x != nil { - return x.NodeName + return x.Cluster } - return "" + return nil } -func (x *NodeMetadata) GetNodeGroupName() string { - if x != nil { - return x.NodeGroupName - } - return "" -} +type ListTagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *NodeMetadata) GetNodeGroupType() string { - if x != nil { - return x.NodeGroupType - } - return "" + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` } -func (x *NodeMetadata) GetCloudInstTypeName() string { - if x != nil { - return x.CloudInstTypeName +func (x *ListTagsRequest) Reset() { + *x = ListTagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *NodeMetadata) GetLabel() string { - if x != nil { - return x.Label - } - return "" +func (x *ListTagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *NodeMetadata) GetAnnotation() string { - if x != nil { - return x.Annotation - } - return "" -} +func (*ListTagsRequest) ProtoMessage() {} -func (x *NodeMetadata) GetSpec() string { - if x != nil { - return x.Spec +func (x *ListTagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *NodeMetadata) GetStatus() string { - if x != nil { - return x.Status - } - return "" +// Deprecated: Use ListTagsRequest.ProtoReflect.Descriptor instead. +func (*ListTagsRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{90} } -func (x *NodeMetadata) GetMetadata() string { +func (x *ListTagsRequest) GetTeamId() string { if x != nil { - return x.Metadata + return x.TeamId } return "" } -// GetRelatedResourcesRequest is used to fetch relations for a specific kind -type GetRelatedResourcesRequest struct { +type TagSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. - ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. - Kind K8SObjectKind `protobuf:"varint,3,opt,name=kind,proto3,enum=api.v1.K8SObjectKind" json:"kind,omitempty"` // Type of object to get. - Uid string `protobuf:"bytes,4,opt,name=uid,proto3" json:"uid,omitempty"` // Unique identifier for the workload. - KarpenterKind *string `protobuf:"bytes,5,opt,name=karpenterKind,proto3,oneof" json:"karpenterKind,omitempty"` // used for karpenter deployments + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` } -func (x *GetRelatedResourcesRequest) Reset() { - *x = GetRelatedResourcesRequest{} +func (x *TagSummary) Reset() { + *x = TagSummary{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[87] + mi := &file_api_v1_k8s_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRelatedResourcesRequest) String() string { +func (x *TagSummary) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRelatedResourcesRequest) ProtoMessage() {} +func (*TagSummary) ProtoMessage() {} -func (x *GetRelatedResourcesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[87] +func (x *TagSummary) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6851,74 +6957,50 @@ func (x *GetRelatedResourcesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRelatedResourcesRequest.ProtoReflect.Descriptor instead. -func (*GetRelatedResourcesRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{87} -} - -func (x *GetRelatedResourcesRequest) GetTeamId() string { - if x != nil { - return x.TeamId - } - return "" +// Deprecated: Use TagSummary.ProtoReflect.Descriptor instead. +func (*TagSummary) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{91} } -func (x *GetRelatedResourcesRequest) GetClusterId() string { +func (x *TagSummary) GetTag() string { if x != nil { - return x.ClusterId + return x.Tag } return "" } -func (x *GetRelatedResourcesRequest) GetKind() K8SObjectKind { - if x != nil { - return x.Kind - } - return K8SObjectKind_K8S_OBJECT_KIND_UNSPECIFIED -} - -func (x *GetRelatedResourcesRequest) GetUid() string { +func (x *TagSummary) GetClusterIds() []string { if x != nil { - return x.Uid - } - return "" -} - -func (x *GetRelatedResourcesRequest) GetKarpenterKind() string { - if x != nil && x.KarpenterKind != nil { - return *x.KarpenterKind + return x.ClusterIds } - return "" + return nil } -type GetWorkloadPodHistoryResponse struct { +type ListTagsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkloadUid string `protobuf:"bytes,1,opt,name=workload_uid,json=workloadUid,proto3" json:"workload_uid,omitempty"` - ReplicaSets []*ReplicaSetHistory `protobuf:"bytes,2,rep,name=replica_sets,json=replicaSets,proto3" json:"replica_sets,omitempty"` // Populated if workload is Deployment or ArgoRollout - DirectPods []*PodHistory `protobuf:"bytes,3,rep,name=direct_pods,json=directPods,proto3" json:"direct_pods,omitempty"` // Populated if workload directly owns pods (e.g. StatefulSet, DaemonSet) - Jobs []*JobHistory `protobuf:"bytes,4,rep,name=jobs,proto3" json:"jobs,omitempty"` // Populated if workload is CronJob + Tags []*TagSummary `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` } -func (x *GetWorkloadPodHistoryResponse) Reset() { - *x = GetWorkloadPodHistoryResponse{} +func (x *ListTagsResponse) Reset() { + *x = ListTagsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[88] + mi := &file_api_v1_k8s_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetWorkloadPodHistoryResponse) String() string { +func (x *ListTagsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetWorkloadPodHistoryResponse) ProtoMessage() {} +func (*ListTagsResponse) ProtoMessage() {} -func (x *GetWorkloadPodHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[88] +func (x *ListTagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6929,69 +7011,50 @@ func (x *GetWorkloadPodHistoryResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetWorkloadPodHistoryResponse.ProtoReflect.Descriptor instead. -func (*GetWorkloadPodHistoryResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{88} -} - -func (x *GetWorkloadPodHistoryResponse) GetWorkloadUid() string { - if x != nil { - return x.WorkloadUid - } - return "" -} - -func (x *GetWorkloadPodHistoryResponse) GetReplicaSets() []*ReplicaSetHistory { - if x != nil { - return x.ReplicaSets - } - return nil -} - -func (x *GetWorkloadPodHistoryResponse) GetDirectPods() []*PodHistory { - if x != nil { - return x.DirectPods - } - return nil +// Deprecated: Use ListTagsResponse.ProtoReflect.Descriptor instead. +func (*ListTagsResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{92} } -func (x *GetWorkloadPodHistoryResponse) GetJobs() []*JobHistory { +func (x *ListTagsResponse) GetTags() []*TagSummary { if x != nil { - return x.Jobs + return x.Tags } return nil } -type JobHistory struct { +type WorkloadMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` // active, succeeded, failed - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - DeletedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` - Pods []*PodHistory `protobuf:"bytes,6,rep,name=pods,proto3" json:"pods,omitempty"` + PodUidToNodeMetadata map[string]*NodeMetadata `protobuf:"bytes,1,rep,name=pod_uid_to_node_metadata,json=podUidToNodeMetadata,proto3" json:"pod_uid_to_node_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + PodUidToPodMetadata map[string]*PodMetadata `protobuf:"bytes,2,rep,name=pod_uid_to_pod_metadata,json=podUidToPodMetadata,proto3" json:"pod_uid_to_pod_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"` + Annotation string `protobuf:"bytes,7,opt,name=annotation,proto3" json:"annotation,omitempty"` + Spec string `protobuf:"bytes,8,opt,name=spec,proto3" json:"spec,omitempty"` + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` + Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` + Kind K8SObjectKind `protobuf:"varint,11,opt,name=kind,proto3,enum=api.v1.K8SObjectKind" json:"kind,omitempty"` } -func (x *JobHistory) Reset() { - *x = JobHistory{} +func (x *WorkloadMetadata) Reset() { + *x = WorkloadMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[89] + mi := &file_api_v1_k8s_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *JobHistory) String() string { +func (x *WorkloadMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*JobHistory) ProtoMessage() {} +func (*WorkloadMetadata) ProtoMessage() {} -func (x *JobHistory) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[89] +func (x *WorkloadMetadata) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7002,83 +7065,97 @@ func (x *JobHistory) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use JobHistory.ProtoReflect.Descriptor instead. -func (*JobHistory) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{89} +// Deprecated: Use WorkloadMetadata.ProtoReflect.Descriptor instead. +func (*WorkloadMetadata) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{93} } -func (x *JobHistory) GetUid() string { +func (x *WorkloadMetadata) GetPodUidToNodeMetadata() map[string]*NodeMetadata { if x != nil { - return x.Uid + return x.PodUidToNodeMetadata + } + return nil +} + +func (x *WorkloadMetadata) GetPodUidToPodMetadata() map[string]*PodMetadata { + if x != nil { + return x.PodUidToPodMetadata + } + return nil +} + +func (x *WorkloadMetadata) GetLabel() string { + if x != nil { + return x.Label } return "" } -func (x *JobHistory) GetName() string { +func (x *WorkloadMetadata) GetAnnotation() string { if x != nil { - return x.Name + return x.Annotation } return "" } -func (x *JobHistory) GetStatus() string { +func (x *WorkloadMetadata) GetSpec() string { if x != nil { - return x.Status + return x.Spec } return "" } -func (x *JobHistory) GetCreatedAt() *timestamppb.Timestamp { +func (x *WorkloadMetadata) GetStatus() string { if x != nil { - return x.CreatedAt + return x.Status } - return nil + return "" } -func (x *JobHistory) GetDeletedAt() *timestamppb.Timestamp { +func (x *WorkloadMetadata) GetMetadata() string { if x != nil { - return x.DeletedAt + return x.Metadata } - return nil + return "" } -func (x *JobHistory) GetPods() []*PodHistory { +func (x *WorkloadMetadata) GetKind() K8SObjectKind { if x != nil { - return x.Pods + return x.Kind } - return nil + return K8SObjectKind_K8S_OBJECT_KIND_UNSPECIFIED } -type ReplicaSetHistory struct { +type PodMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - DeletedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` - Revision string `protobuf:"bytes,5,opt,name=revision,proto3" json:"revision,omitempty"` // from adjustments/annotations if available - Pods []*PodHistory `protobuf:"bytes,6,rep,name=pods,proto3" json:"pods,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"` + Annotation string `protobuf:"bytes,7,opt,name=annotation,proto3" json:"annotation,omitempty"` + Spec string `protobuf:"bytes,8,opt,name=spec,proto3" json:"spec,omitempty"` + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` + Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ReplicaSetHistory) Reset() { - *x = ReplicaSetHistory{} +func (x *PodMetadata) Reset() { + *x = PodMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[90] + mi := &file_api_v1_k8s_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReplicaSetHistory) String() string { +func (x *PodMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicaSetHistory) ProtoMessage() {} +func (*PodMetadata) ProtoMessage() {} -func (x *ReplicaSetHistory) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[90] +func (x *PodMetadata) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7089,84 +7166,86 @@ func (x *ReplicaSetHistory) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicaSetHistory.ProtoReflect.Descriptor instead. -func (*ReplicaSetHistory) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{90} +// Deprecated: Use PodMetadata.ProtoReflect.Descriptor instead. +func (*PodMetadata) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{94} } -func (x *ReplicaSetHistory) GetUid() string { +func (x *PodMetadata) GetName() string { if x != nil { - return x.Uid + return x.Name } return "" } -func (x *ReplicaSetHistory) GetName() string { +func (x *PodMetadata) GetLabel() string { if x != nil { - return x.Name + return x.Label } return "" } -func (x *ReplicaSetHistory) GetCreatedAt() *timestamppb.Timestamp { +func (x *PodMetadata) GetAnnotation() string { if x != nil { - return x.CreatedAt + return x.Annotation } - return nil + return "" } -func (x *ReplicaSetHistory) GetDeletedAt() *timestamppb.Timestamp { +func (x *PodMetadata) GetSpec() string { if x != nil { - return x.DeletedAt + return x.Spec } - return nil + return "" } -func (x *ReplicaSetHistory) GetRevision() string { +func (x *PodMetadata) GetStatus() string { if x != nil { - return x.Revision + return x.Status } return "" } -func (x *ReplicaSetHistory) GetPods() []*PodHistory { +func (x *PodMetadata) GetMetadata() string { if x != nil { - return x.Pods + return x.Metadata } - return nil + return "" } -type PodHistory struct { +type NodeMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` - Phase string `protobuf:"bytes,4,opt,name=phase,proto3" json:"phase,omitempty"` - NodeName string `protobuf:"bytes,5,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - DeletedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` + NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` + NodeGroupName string `protobuf:"bytes,2,opt,name=node_group_name,json=nodeGroupName,proto3" json:"node_group_name,omitempty"` + NodeGroupType string `protobuf:"bytes,3,opt,name=node_group_type,json=nodeGroupType,proto3" json:"node_group_type,omitempty"` + CloudInstTypeName string `protobuf:"bytes,4,opt,name=cloud_inst_type_name,json=cloudInstTypeName,proto3" json:"cloud_inst_type_name,omitempty"` + Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"` + Annotation string `protobuf:"bytes,7,opt,name=annotation,proto3" json:"annotation,omitempty"` + Spec string `protobuf:"bytes,8,opt,name=spec,proto3" json:"spec,omitempty"` + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` + Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *PodHistory) Reset() { - *x = PodHistory{} +func (x *NodeMetadata) Reset() { + *x = NodeMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[91] + mi := &file_api_v1_k8s_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PodHistory) String() string { +func (x *NodeMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PodHistory) ProtoMessage() {} +func (*NodeMetadata) ProtoMessage() {} -func (x *PodHistory) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[91] +func (x *NodeMetadata) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7177,87 +7256,104 @@ func (x *PodHistory) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PodHistory.ProtoReflect.Descriptor instead. -func (*PodHistory) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{91} +// Deprecated: Use NodeMetadata.ProtoReflect.Descriptor instead. +func (*NodeMetadata) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{95} } -func (x *PodHistory) GetUid() string { +func (x *NodeMetadata) GetNodeName() string { if x != nil { - return x.Uid + return x.NodeName } return "" } -func (x *PodHistory) GetName() string { +func (x *NodeMetadata) GetNodeGroupName() string { if x != nil { - return x.Name + return x.NodeGroupName } return "" } -func (x *PodHistory) GetNamespace() string { +func (x *NodeMetadata) GetNodeGroupType() string { if x != nil { - return x.Namespace + return x.NodeGroupType } return "" } -func (x *PodHistory) GetPhase() string { +func (x *NodeMetadata) GetCloudInstTypeName() string { if x != nil { - return x.Phase + return x.CloudInstTypeName } return "" } -func (x *PodHistory) GetNodeName() string { +func (x *NodeMetadata) GetLabel() string { if x != nil { - return x.NodeName + return x.Label } return "" } -func (x *PodHistory) GetCreatedAt() *timestamppb.Timestamp { +func (x *NodeMetadata) GetAnnotation() string { if x != nil { - return x.CreatedAt + return x.Annotation } - return nil + return "" } -func (x *PodHistory) GetDeletedAt() *timestamppb.Timestamp { +func (x *NodeMetadata) GetSpec() string { if x != nil { - return x.DeletedAt + return x.Spec } - return nil + return "" } -type GetRelatedResourcesResponse struct { +func (x *NodeMetadata) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *NodeMetadata) GetMetadata() string { + if x != nil { + return x.Metadata + } + return "" +} + +// GetRelatedResourcesRequest is used to fetch relations for a specific kind +type GetRelatedResourcesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Relations []*K8SRelatedResource `protobuf:"bytes,1,rep,name=relations,proto3" json:"relations,omitempty"` // List of resource relations. - Nodes []*K8SResourceNode `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes,omitempty"` // List of unique nodes (resources) in the graph. - Edges []*K8SResourceEdge `protobuf:"bytes,3,rep,name=edges,proto3" json:"edges,omitempty"` // List of edges for the graph. + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. + Kind K8SObjectKind `protobuf:"varint,3,opt,name=kind,proto3,enum=api.v1.K8SObjectKind" json:"kind,omitempty"` // Type of object to get. + Uid string `protobuf:"bytes,4,opt,name=uid,proto3" json:"uid,omitempty"` // Unique identifier for the workload. + KarpenterKind *string `protobuf:"bytes,5,opt,name=karpenterKind,proto3,oneof" json:"karpenterKind,omitempty"` // used for karpenter deployments } -func (x *GetRelatedResourcesResponse) Reset() { - *x = GetRelatedResourcesResponse{} +func (x *GetRelatedResourcesRequest) Reset() { + *x = GetRelatedResourcesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[92] + mi := &file_api_v1_k8s_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRelatedResourcesResponse) String() string { +func (x *GetRelatedResourcesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRelatedResourcesResponse) ProtoMessage() {} +func (*GetRelatedResourcesRequest) ProtoMessage() {} -func (x *GetRelatedResourcesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[92] +func (x *GetRelatedResourcesRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7268,64 +7364,74 @@ func (x *GetRelatedResourcesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRelatedResourcesResponse.ProtoReflect.Descriptor instead. -func (*GetRelatedResourcesResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{92} +// Deprecated: Use GetRelatedResourcesRequest.ProtoReflect.Descriptor instead. +func (*GetRelatedResourcesRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{96} } -func (x *GetRelatedResourcesResponse) GetRelations() []*K8SRelatedResource { +func (x *GetRelatedResourcesRequest) GetTeamId() string { if x != nil { - return x.Relations + return x.TeamId } - return nil + return "" } -func (x *GetRelatedResourcesResponse) GetNodes() []*K8SResourceNode { +func (x *GetRelatedResourcesRequest) GetClusterId() string { if x != nil { - return x.Nodes + return x.ClusterId } - return nil + return "" } -func (x *GetRelatedResourcesResponse) GetEdges() []*K8SResourceEdge { +func (x *GetRelatedResourcesRequest) GetKind() K8SObjectKind { if x != nil { - return x.Edges + return x.Kind } - return nil + return K8SObjectKind_K8S_OBJECT_KIND_UNSPECIFIED } -// K8sRelatedResource represents a relationship between two Kubernetes resources -type K8SRelatedResource struct { +func (x *GetRelatedResourcesRequest) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *GetRelatedResourcesRequest) GetKarpenterKind() string { + if x != nil && x.KarpenterKind != nil { + return *x.KarpenterKind + } + return "" +} + +type GetWorkloadPodHistoryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SourceKind string `protobuf:"bytes,1,opt,name=source_kind,json=sourceKind,proto3" json:"source_kind,omitempty"` // Kind of the source resource (e.g., Deployment, ReplicaSet). - SourceUid string `protobuf:"bytes,2,opt,name=source_uid,json=sourceUid,proto3" json:"source_uid,omitempty"` // UID of the source resource. - SourceName string `protobuf:"bytes,3,opt,name=source_name,json=sourceName,proto3" json:"source_name,omitempty"` // Name of the source resource. - TargetKind string `protobuf:"bytes,4,opt,name=target_kind,json=targetKind,proto3" json:"target_kind,omitempty"` // Kind of the target resource (e.g., ReplicaSet, Pod). - TargetUid string `protobuf:"bytes,5,opt,name=target_uid,json=targetUid,proto3" json:"target_uid,omitempty"` // UID of the target resource. - TargetName string `protobuf:"bytes,6,opt,name=target_name,json=targetName,proto3" json:"target_name,omitempty"` // Name of the target resource. - RelationshipType string `protobuf:"bytes,7,opt,name=relationship_type,json=relationshipType,proto3" json:"relationship_type,omitempty"` // Type of relationship (e.g., owns, controls, selects). + WorkloadUid string `protobuf:"bytes,1,opt,name=workload_uid,json=workloadUid,proto3" json:"workload_uid,omitempty"` + ReplicaSets []*ReplicaSetHistory `protobuf:"bytes,2,rep,name=replica_sets,json=replicaSets,proto3" json:"replica_sets,omitempty"` // Populated if workload is Deployment or ArgoRollout + DirectPods []*PodHistory `protobuf:"bytes,3,rep,name=direct_pods,json=directPods,proto3" json:"direct_pods,omitempty"` // Populated if workload directly owns pods (e.g. StatefulSet, DaemonSet) + Jobs []*JobHistory `protobuf:"bytes,4,rep,name=jobs,proto3" json:"jobs,omitempty"` // Populated if workload is CronJob } -func (x *K8SRelatedResource) Reset() { - *x = K8SRelatedResource{} +func (x *GetWorkloadPodHistoryResponse) Reset() { + *x = GetWorkloadPodHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[93] + mi := &file_api_v1_k8s_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *K8SRelatedResource) String() string { +func (x *GetWorkloadPodHistoryResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*K8SRelatedResource) ProtoMessage() {} +func (*GetWorkloadPodHistoryResponse) ProtoMessage() {} -func (x *K8SRelatedResource) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[93] +func (x *GetWorkloadPodHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7336,88 +7442,69 @@ func (x *K8SRelatedResource) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use K8SRelatedResource.ProtoReflect.Descriptor instead. -func (*K8SRelatedResource) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{93} -} - -func (x *K8SRelatedResource) GetSourceKind() string { - if x != nil { - return x.SourceKind - } - return "" -} - -func (x *K8SRelatedResource) GetSourceUid() string { - if x != nil { - return x.SourceUid - } - return "" -} - -func (x *K8SRelatedResource) GetSourceName() string { - if x != nil { - return x.SourceName - } - return "" +// Deprecated: Use GetWorkloadPodHistoryResponse.ProtoReflect.Descriptor instead. +func (*GetWorkloadPodHistoryResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{97} } -func (x *K8SRelatedResource) GetTargetKind() string { +func (x *GetWorkloadPodHistoryResponse) GetWorkloadUid() string { if x != nil { - return x.TargetKind + return x.WorkloadUid } return "" } -func (x *K8SRelatedResource) GetTargetUid() string { +func (x *GetWorkloadPodHistoryResponse) GetReplicaSets() []*ReplicaSetHistory { if x != nil { - return x.TargetUid + return x.ReplicaSets } - return "" + return nil } -func (x *K8SRelatedResource) GetTargetName() string { +func (x *GetWorkloadPodHistoryResponse) GetDirectPods() []*PodHistory { if x != nil { - return x.TargetName + return x.DirectPods } - return "" + return nil } -func (x *K8SRelatedResource) GetRelationshipType() string { +func (x *GetWorkloadPodHistoryResponse) GetJobs() []*JobHistory { if x != nil { - return x.RelationshipType + return x.Jobs } - return "" + return nil } -// K8sResourceNode represents a node in the resource graph -type K8SResourceNode struct { +type JobHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Unique identifier (UID) of the resource. - Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` // Kind of the resource (e.g., Deployment, ReplicaSet, Pod). - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // Name of the resource. + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` // active, succeeded, failed + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + DeletedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` + Pods []*PodHistory `protobuf:"bytes,6,rep,name=pods,proto3" json:"pods,omitempty"` } -func (x *K8SResourceNode) Reset() { - *x = K8SResourceNode{} +func (x *JobHistory) Reset() { + *x = JobHistory{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[94] + mi := &file_api_v1_k8s_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *K8SResourceNode) String() string { +func (x *JobHistory) String() string { return protoimpl.X.MessageStringOf(x) } -func (*K8SResourceNode) ProtoMessage() {} +func (*JobHistory) ProtoMessage() {} -func (x *K8SResourceNode) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[94] +func (x *JobHistory) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7428,61 +7515,83 @@ func (x *K8SResourceNode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use K8SResourceNode.ProtoReflect.Descriptor instead. -func (*K8SResourceNode) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{94} +// Deprecated: Use JobHistory.ProtoReflect.Descriptor instead. +func (*JobHistory) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{98} } -func (x *K8SResourceNode) GetId() string { +func (x *JobHistory) GetUid() string { if x != nil { - return x.Id + return x.Uid } return "" } -func (x *K8SResourceNode) GetKind() string { +func (x *JobHistory) GetName() string { if x != nil { - return x.Kind + return x.Name } return "" } -func (x *K8SResourceNode) GetName() string { +func (x *JobHistory) GetStatus() string { if x != nil { - return x.Name + return x.Status } return "" } -// K8sResourceEdge represents an edge in the resource graph -type K8SResourceEdge struct { +func (x *JobHistory) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *JobHistory) GetDeletedAt() *timestamppb.Timestamp { + if x != nil { + return x.DeletedAt + } + return nil +} + +func (x *JobHistory) GetPods() []*PodHistory { + if x != nil { + return x.Pods + } + return nil +} + +type ReplicaSetHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Unique identifier for the edge. - Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` // UID of the source resource. - Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` // UID of the target resource. - Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` // Label for the edge (relationship type). + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + DeletedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` + Revision string `protobuf:"bytes,5,opt,name=revision,proto3" json:"revision,omitempty"` // from adjustments/annotations if available + Pods []*PodHistory `protobuf:"bytes,6,rep,name=pods,proto3" json:"pods,omitempty"` } -func (x *K8SResourceEdge) Reset() { - *x = K8SResourceEdge{} +func (x *ReplicaSetHistory) Reset() { + *x = ReplicaSetHistory{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[95] + mi := &file_api_v1_k8s_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *K8SResourceEdge) String() string { +func (x *ReplicaSetHistory) String() string { return protoimpl.X.MessageStringOf(x) } -func (*K8SResourceEdge) ProtoMessage() {} +func (*ReplicaSetHistory) ProtoMessage() {} -func (x *K8SResourceEdge) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[95] +func (x *ReplicaSetHistory) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7493,66 +7602,84 @@ func (x *K8SResourceEdge) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use K8SResourceEdge.ProtoReflect.Descriptor instead. -func (*K8SResourceEdge) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{95} +// Deprecated: Use ReplicaSetHistory.ProtoReflect.Descriptor instead. +func (*ReplicaSetHistory) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{99} } -func (x *K8SResourceEdge) GetId() string { +func (x *ReplicaSetHistory) GetUid() string { if x != nil { - return x.Id + return x.Uid } return "" } -func (x *K8SResourceEdge) GetSource() string { +func (x *ReplicaSetHistory) GetName() string { if x != nil { - return x.Source + return x.Name } return "" } -func (x *K8SResourceEdge) GetTarget() string { +func (x *ReplicaSetHistory) GetCreatedAt() *timestamppb.Timestamp { if x != nil { - return x.Target + return x.CreatedAt } - return "" + return nil } -func (x *K8SResourceEdge) GetLabel() string { +func (x *ReplicaSetHistory) GetDeletedAt() *timestamppb.Timestamp { if x != nil { - return x.Label + return x.DeletedAt + } + return nil +} + +func (x *ReplicaSetHistory) GetRevision() string { + if x != nil { + return x.Revision } return "" } -// GetClusterTypeRequest is used to determine the cluster type based on kubelet version -type GetClusterTypeRequest struct { +func (x *ReplicaSetHistory) GetPods() []*PodHistory { + if x != nil { + return x.Pods + } + return nil +} + +type PodHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. - ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` + Phase string `protobuf:"bytes,4,opt,name=phase,proto3" json:"phase,omitempty"` + NodeName string `protobuf:"bytes,5,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + DeletedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` } -func (x *GetClusterTypeRequest) Reset() { - *x = GetClusterTypeRequest{} +func (x *PodHistory) Reset() { + *x = PodHistory{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[96] + mi := &file_api_v1_k8s_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetClusterTypeRequest) String() string { +func (x *PodHistory) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetClusterTypeRequest) ProtoMessage() {} +func (*PodHistory) ProtoMessage() {} -func (x *GetClusterTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[96] +func (x *PodHistory) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7563,109 +7690,87 @@ func (x *GetClusterTypeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetClusterTypeRequest.ProtoReflect.Descriptor instead. -func (*GetClusterTypeRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{96} +// Deprecated: Use PodHistory.ProtoReflect.Descriptor instead. +func (*PodHistory) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{100} } -func (x *GetClusterTypeRequest) GetTeamId() string { +func (x *PodHistory) GetUid() string { if x != nil { - return x.TeamId + return x.Uid } return "" } -func (x *GetClusterTypeRequest) GetClusterId() string { +func (x *PodHistory) GetName() string { if x != nil { - return x.ClusterId + return x.Name } return "" } -// GetClusterTypeResponse returns the determined cluster type -type GetClusterTypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterType ClusterType `protobuf:"varint,1,opt,name=cluster_type,json=clusterType,proto3,enum=api.v1.ClusterType" json:"cluster_type,omitempty"` // Detected cluster type - KubeletVersion string `protobuf:"bytes,2,opt,name=kubelet_version,json=kubeletVersion,proto3" json:"kubelet_version,omitempty"` // The raw kubelet version string -} - -func (x *GetClusterTypeResponse) Reset() { - *x = GetClusterTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PodHistory) GetNamespace() string { + if x != nil { + return x.Namespace } + return "" } -func (x *GetClusterTypeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetClusterTypeResponse) ProtoMessage() {} - -func (x *GetClusterTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PodHistory) GetPhase() string { + if x != nil { + return x.Phase } - return mi.MessageOf(x) + return "" } -// Deprecated: Use GetClusterTypeResponse.ProtoReflect.Descriptor instead. -func (*GetClusterTypeResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{97} +func (x *PodHistory) GetNodeName() string { + if x != nil { + return x.NodeName + } + return "" } -func (x *GetClusterTypeResponse) GetClusterType() ClusterType { +func (x *PodHistory) GetCreatedAt() *timestamppb.Timestamp { if x != nil { - return x.ClusterType + return x.CreatedAt } - return ClusterType_CLUSTER_TYPE_UNSPECIFIED + return nil } -func (x *GetClusterTypeResponse) GetKubeletVersion() string { +func (x *PodHistory) GetDeletedAt() *timestamppb.Timestamp { if x != nil { - return x.KubeletVersion + return x.DeletedAt } - return "" + return nil } -type GetWorkloadsStatsRequest struct { +type GetRelatedResourcesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. - ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. - StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` - EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3,oneof" json:"end_time,omitempty"` + Relations []*K8SRelatedResource `protobuf:"bytes,1,rep,name=relations,proto3" json:"relations,omitempty"` // List of resource relations. + Nodes []*K8SResourceNode `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes,omitempty"` // List of unique nodes (resources) in the graph. + Edges []*K8SResourceEdge `protobuf:"bytes,3,rep,name=edges,proto3" json:"edges,omitempty"` // List of edges for the graph. } -func (x *GetWorkloadsStatsRequest) Reset() { - *x = GetWorkloadsStatsRequest{} +func (x *GetRelatedResourcesResponse) Reset() { + *x = GetRelatedResourcesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[98] + mi := &file_api_v1_k8s_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetWorkloadsStatsRequest) String() string { +func (x *GetRelatedResourcesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetWorkloadsStatsRequest) ProtoMessage() {} +func (*GetRelatedResourcesResponse) ProtoMessage() {} -func (x *GetWorkloadsStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[98] +func (x *GetRelatedResourcesResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7676,68 +7781,64 @@ func (x *GetWorkloadsStatsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetWorkloadsStatsRequest.ProtoReflect.Descriptor instead. -func (*GetWorkloadsStatsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{98} +// Deprecated: Use GetRelatedResourcesResponse.ProtoReflect.Descriptor instead. +func (*GetRelatedResourcesResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{101} } -func (x *GetWorkloadsStatsRequest) GetTeamId() string { - if x != nil { - return x.TeamId - } - return "" -} - -func (x *GetWorkloadsStatsRequest) GetClusterId() string { +func (x *GetRelatedResourcesResponse) GetRelations() []*K8SRelatedResource { if x != nil { - return x.ClusterId + return x.Relations } - return "" + return nil } -func (x *GetWorkloadsStatsRequest) GetStartTime() *timestamppb.Timestamp { +func (x *GetRelatedResourcesResponse) GetNodes() []*K8SResourceNode { if x != nil { - return x.StartTime + return x.Nodes } return nil } -func (x *GetWorkloadsStatsRequest) GetEndTime() *timestamppb.Timestamp { +func (x *GetRelatedResourcesResponse) GetEdges() []*K8SResourceEdge { if x != nil { - return x.EndTime + return x.Edges } return nil } -type GetWorkloadsStatsResponse struct { +// K8sRelatedResource represents a relationship between two Kubernetes resources +type K8SRelatedResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` - Optimized int32 `protobuf:"varint,2,opt,name=optimized,proto3" json:"optimized,omitempty"` - Unoptimized int32 `protobuf:"varint,3,opt,name=unoptimized,proto3" json:"unoptimized,omitempty"` - WithoutRequests int32 `protobuf:"varint,4,opt,name=without_requests,json=withoutRequests,proto3" json:"without_requests,omitempty"` - OptimizedPercentage int32 `protobuf:"varint,5,opt,name=optimized_percentage,json=optimizedPercentage,proto3" json:"optimized_percentage,omitempty"` + SourceKind string `protobuf:"bytes,1,opt,name=source_kind,json=sourceKind,proto3" json:"source_kind,omitempty"` // Kind of the source resource (e.g., Deployment, ReplicaSet). + SourceUid string `protobuf:"bytes,2,opt,name=source_uid,json=sourceUid,proto3" json:"source_uid,omitempty"` // UID of the source resource. + SourceName string `protobuf:"bytes,3,opt,name=source_name,json=sourceName,proto3" json:"source_name,omitempty"` // Name of the source resource. + TargetKind string `protobuf:"bytes,4,opt,name=target_kind,json=targetKind,proto3" json:"target_kind,omitempty"` // Kind of the target resource (e.g., ReplicaSet, Pod). + TargetUid string `protobuf:"bytes,5,opt,name=target_uid,json=targetUid,proto3" json:"target_uid,omitempty"` // UID of the target resource. + TargetName string `protobuf:"bytes,6,opt,name=target_name,json=targetName,proto3" json:"target_name,omitempty"` // Name of the target resource. + RelationshipType string `protobuf:"bytes,7,opt,name=relationship_type,json=relationshipType,proto3" json:"relationship_type,omitempty"` // Type of relationship (e.g., owns, controls, selects). } -func (x *GetWorkloadsStatsResponse) Reset() { - *x = GetWorkloadsStatsResponse{} +func (x *K8SRelatedResource) Reset() { + *x = K8SRelatedResource{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[99] + mi := &file_api_v1_k8s_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetWorkloadsStatsResponse) String() string { +func (x *K8SRelatedResource) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetWorkloadsStatsResponse) ProtoMessage() {} +func (*K8SRelatedResource) ProtoMessage() {} -func (x *GetWorkloadsStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[99] +func (x *K8SRelatedResource) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7748,74 +7849,88 @@ func (x *GetWorkloadsStatsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetWorkloadsStatsResponse.ProtoReflect.Descriptor instead. -func (*GetWorkloadsStatsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{99} +// Deprecated: Use K8SRelatedResource.ProtoReflect.Descriptor instead. +func (*K8SRelatedResource) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{102} } -func (x *GetWorkloadsStatsResponse) GetTotal() int32 { +func (x *K8SRelatedResource) GetSourceKind() string { if x != nil { - return x.Total + return x.SourceKind } - return 0 + return "" } -func (x *GetWorkloadsStatsResponse) GetOptimized() int32 { +func (x *K8SRelatedResource) GetSourceUid() string { if x != nil { - return x.Optimized + return x.SourceUid } - return 0 + return "" } -func (x *GetWorkloadsStatsResponse) GetUnoptimized() int32 { +func (x *K8SRelatedResource) GetSourceName() string { if x != nil { - return x.Unoptimized + return x.SourceName } - return 0 + return "" } -func (x *GetWorkloadsStatsResponse) GetWithoutRequests() int32 { +func (x *K8SRelatedResource) GetTargetKind() string { if x != nil { - return x.WithoutRequests + return x.TargetKind } - return 0 + return "" } -func (x *GetWorkloadsStatsResponse) GetOptimizedPercentage() int32 { +func (x *K8SRelatedResource) GetTargetUid() string { if x != nil { - return x.OptimizedPercentage + return x.TargetUid } - return 0 + return "" } -type DailyUtilizationRequest struct { +func (x *K8SRelatedResource) GetTargetName() string { + if x != nil { + return x.TargetName + } + return "" +} + +func (x *K8SRelatedResource) GetRelationshipType() string { + if x != nil { + return x.RelationshipType + } + return "" +} + +// K8sResourceNode represents a node in the resource graph +type K8SResourceNode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` - ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` - StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Unique identifier (UID) of the resource. + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` // Kind of the resource (e.g., Deployment, ReplicaSet, Pod). + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // Name of the resource. } -func (x *DailyUtilizationRequest) Reset() { - *x = DailyUtilizationRequest{} +func (x *K8SResourceNode) Reset() { + *x = K8SResourceNode{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[100] + mi := &file_api_v1_k8s_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationRequest) String() string { +func (x *K8SResourceNode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationRequest) ProtoMessage() {} +func (*K8SResourceNode) ProtoMessage() {} -func (x *DailyUtilizationRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[100] +func (x *K8SResourceNode) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7826,66 +7941,61 @@ func (x *DailyUtilizationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationRequest.ProtoReflect.Descriptor instead. -func (*DailyUtilizationRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{100} +// Deprecated: Use K8SResourceNode.ProtoReflect.Descriptor instead. +func (*K8SResourceNode) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{103} } -func (x *DailyUtilizationRequest) GetTeamId() string { +func (x *K8SResourceNode) GetId() string { if x != nil { - return x.TeamId + return x.Id } return "" } -func (x *DailyUtilizationRequest) GetClusterIds() []string { - if x != nil { - return x.ClusterIds - } - return nil -} - -func (x *DailyUtilizationRequest) GetStartTime() *timestamppb.Timestamp { +func (x *K8SResourceNode) GetKind() string { if x != nil { - return x.StartTime + return x.Kind } - return nil + return "" } -func (x *DailyUtilizationRequest) GetEndTime() *timestamppb.Timestamp { +func (x *K8SResourceNode) GetName() string { if x != nil { - return x.EndTime + return x.Name } - return nil + return "" } -type DailyUtilizationResponse struct { +// K8sResourceEdge represents an edge in the resource graph +type K8SResourceEdge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ClusterIdToDailyTotalCoreMinutes map[string]*DailyUtilizationResponse_Datapoints `protobuf:"bytes,1,rep,name=cluster_id_to_daily_total_core_minutes,json=clusterIdToDailyTotalCoreMinutes,proto3" json:"cluster_id_to_daily_total_core_minutes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - ClusterIdToMeta map[string]*Cluster `protobuf:"bytes,11,rep,name=cluster_id_to_meta,json=clusterIdToMeta,proto3" json:"cluster_id_to_meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // for easier lookups - TotalCoreMinutesInPeriod int32 `protobuf:"varint,21,opt,name=total_core_minutes_in_period,json=totalCoreMinutesInPeriod,proto3" json:"total_core_minutes_in_period,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Unique identifier for the edge. + Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` // UID of the source resource. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` // UID of the target resource. + Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` // Label for the edge (relationship type). } -func (x *DailyUtilizationResponse) Reset() { - *x = DailyUtilizationResponse{} +func (x *K8SResourceEdge) Reset() { + *x = K8SResourceEdge{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[101] + mi := &file_api_v1_k8s_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationResponse) String() string { +func (x *K8SResourceEdge) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationResponse) ProtoMessage() {} +func (*K8SResourceEdge) ProtoMessage() {} -func (x *DailyUtilizationResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[101] +func (x *K8SResourceEdge) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7896,60 +8006,66 @@ func (x *DailyUtilizationResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationResponse.ProtoReflect.Descriptor instead. -func (*DailyUtilizationResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{101} +// Deprecated: Use K8SResourceEdge.ProtoReflect.Descriptor instead. +func (*K8SResourceEdge) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{104} } -func (x *DailyUtilizationResponse) GetClusterIdToDailyTotalCoreMinutes() map[string]*DailyUtilizationResponse_Datapoints { +func (x *K8SResourceEdge) GetId() string { if x != nil { - return x.ClusterIdToDailyTotalCoreMinutes + return x.Id } - return nil + return "" } -func (x *DailyUtilizationResponse) GetClusterIdToMeta() map[string]*Cluster { +func (x *K8SResourceEdge) GetSource() string { if x != nil { - return x.ClusterIdToMeta + return x.Source } - return nil + return "" } -func (x *DailyUtilizationResponse) GetTotalCoreMinutesInPeriod() int32 { +func (x *K8SResourceEdge) GetTarget() string { if x != nil { - return x.TotalCoreMinutesInPeriod + return x.Target } - return 0 + return "" } -type DailyUtilizationInstanceTypeRequest struct { +func (x *K8SResourceEdge) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +// GetClusterTypeRequest is used to determine the cluster type based on kubelet version +type GetClusterTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` - ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` - StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. } -func (x *DailyUtilizationInstanceTypeRequest) Reset() { - *x = DailyUtilizationInstanceTypeRequest{} +func (x *GetClusterTypeRequest) Reset() { + *x = GetClusterTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[102] + mi := &file_api_v1_k8s_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationInstanceTypeRequest) String() string { +func (x *GetClusterTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationInstanceTypeRequest) ProtoMessage() {} +func (*GetClusterTypeRequest) ProtoMessage() {} -func (x *DailyUtilizationInstanceTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[102] +func (x *GetClusterTypeRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7960,65 +8076,52 @@ func (x *DailyUtilizationInstanceTypeRequest) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationInstanceTypeRequest.ProtoReflect.Descriptor instead. -func (*DailyUtilizationInstanceTypeRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{102} +// Deprecated: Use GetClusterTypeRequest.ProtoReflect.Descriptor instead. +func (*GetClusterTypeRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{105} } -func (x *DailyUtilizationInstanceTypeRequest) GetTeamId() string { +func (x *GetClusterTypeRequest) GetTeamId() string { if x != nil { return x.TeamId } return "" } -func (x *DailyUtilizationInstanceTypeRequest) GetClusterIds() []string { +func (x *GetClusterTypeRequest) GetClusterId() string { if x != nil { - return x.ClusterIds + return x.ClusterId } - return nil + return "" } -func (x *DailyUtilizationInstanceTypeRequest) GetStartTime() *timestamppb.Timestamp { - if x != nil { - return x.StartTime - } - return nil -} +// GetClusterTypeResponse returns the determined cluster type +type GetClusterTypeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *DailyUtilizationInstanceTypeRequest) GetEndTime() *timestamppb.Timestamp { - if x != nil { - return x.EndTime - } - return nil -} - -type DailyUtilizationInstanceTypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterIdToDatapoints map[string]*DailyUtilizationInstanceTypeResponse_Datapoints `protobuf:"bytes,1,rep,name=cluster_id_to_datapoints,json=clusterIdToDatapoints,proto3" json:"cluster_id_to_datapoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - ClusterIdToMeta map[string]*Cluster `protobuf:"bytes,11,rep,name=cluster_id_to_meta,json=clusterIdToMeta,proto3" json:"cluster_id_to_meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ClusterType ClusterType `protobuf:"varint,1,opt,name=cluster_type,json=clusterType,proto3,enum=api.v1.ClusterType" json:"cluster_type,omitempty"` // Detected cluster type + KubeletVersion string `protobuf:"bytes,2,opt,name=kubelet_version,json=kubeletVersion,proto3" json:"kubelet_version,omitempty"` // The raw kubelet version string } -func (x *DailyUtilizationInstanceTypeResponse) Reset() { - *x = DailyUtilizationInstanceTypeResponse{} +func (x *GetClusterTypeResponse) Reset() { + *x = GetClusterTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[103] + mi := &file_api_v1_k8s_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationInstanceTypeResponse) String() string { +func (x *GetClusterTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationInstanceTypeResponse) ProtoMessage() {} +func (*GetClusterTypeResponse) ProtoMessage() {} -func (x *DailyUtilizationInstanceTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[103] +func (x *GetClusterTypeResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8029,53 +8132,53 @@ func (x *DailyUtilizationInstanceTypeResponse) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationInstanceTypeResponse.ProtoReflect.Descriptor instead. -func (*DailyUtilizationInstanceTypeResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{103} +// Deprecated: Use GetClusterTypeResponse.ProtoReflect.Descriptor instead. +func (*GetClusterTypeResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{106} } -func (x *DailyUtilizationInstanceTypeResponse) GetClusterIdToDatapoints() map[string]*DailyUtilizationInstanceTypeResponse_Datapoints { +func (x *GetClusterTypeResponse) GetClusterType() ClusterType { if x != nil { - return x.ClusterIdToDatapoints + return x.ClusterType } - return nil + return ClusterType_CLUSTER_TYPE_UNSPECIFIED } -func (x *DailyUtilizationInstanceTypeResponse) GetClusterIdToMeta() map[string]*Cluster { +func (x *GetClusterTypeResponse) GetKubeletVersion() string { if x != nil { - return x.ClusterIdToMeta + return x.KubeletVersion } - return nil + return "" } -type DailyUtilizationNodeTypeRequest struct { +type GetWorkloadsStatsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` - ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` - StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. + StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` + EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3,oneof" json:"end_time,omitempty"` } -func (x *DailyUtilizationNodeTypeRequest) Reset() { - *x = DailyUtilizationNodeTypeRequest{} +func (x *GetWorkloadsStatsRequest) Reset() { + *x = GetWorkloadsStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[104] + mi := &file_api_v1_k8s_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationNodeTypeRequest) String() string { +func (x *GetWorkloadsStatsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationNodeTypeRequest) ProtoMessage() {} +func (*GetWorkloadsStatsRequest) ProtoMessage() {} -func (x *DailyUtilizationNodeTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[104] +func (x *GetWorkloadsStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8086,65 +8189,68 @@ func (x *DailyUtilizationNodeTypeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationNodeTypeRequest.ProtoReflect.Descriptor instead. -func (*DailyUtilizationNodeTypeRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{104} +// Deprecated: Use GetWorkloadsStatsRequest.ProtoReflect.Descriptor instead. +func (*GetWorkloadsStatsRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{107} } -func (x *DailyUtilizationNodeTypeRequest) GetTeamId() string { +func (x *GetWorkloadsStatsRequest) GetTeamId() string { if x != nil { return x.TeamId } return "" } -func (x *DailyUtilizationNodeTypeRequest) GetClusterIds() []string { +func (x *GetWorkloadsStatsRequest) GetClusterId() string { if x != nil { - return x.ClusterIds + return x.ClusterId } - return nil + return "" } -func (x *DailyUtilizationNodeTypeRequest) GetStartTime() *timestamppb.Timestamp { +func (x *GetWorkloadsStatsRequest) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime } return nil } -func (x *DailyUtilizationNodeTypeRequest) GetEndTime() *timestamppb.Timestamp { +func (x *GetWorkloadsStatsRequest) GetEndTime() *timestamppb.Timestamp { if x != nil { return x.EndTime } return nil } -type DailyUtilizationNodeTypeResponse struct { +type GetWorkloadsStatsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ClusterIdToDatapoints map[string]*DailyUtilizationNodeTypeResponse_Datapoints `protobuf:"bytes,1,rep,name=cluster_id_to_datapoints,json=clusterIdToDatapoints,proto3" json:"cluster_id_to_datapoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - ClusterIdToMeta map[string]*Cluster `protobuf:"bytes,11,rep,name=cluster_id_to_meta,json=clusterIdToMeta,proto3" json:"cluster_id_to_meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Optimized int32 `protobuf:"varint,2,opt,name=optimized,proto3" json:"optimized,omitempty"` + Unoptimized int32 `protobuf:"varint,3,opt,name=unoptimized,proto3" json:"unoptimized,omitempty"` + WithoutRequests int32 `protobuf:"varint,4,opt,name=without_requests,json=withoutRequests,proto3" json:"without_requests,omitempty"` + OptimizedPercentage int32 `protobuf:"varint,5,opt,name=optimized_percentage,json=optimizedPercentage,proto3" json:"optimized_percentage,omitempty"` } -func (x *DailyUtilizationNodeTypeResponse) Reset() { - *x = DailyUtilizationNodeTypeResponse{} +func (x *GetWorkloadsStatsResponse) Reset() { + *x = GetWorkloadsStatsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[105] + mi := &file_api_v1_k8s_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationNodeTypeResponse) String() string { +func (x *GetWorkloadsStatsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationNodeTypeResponse) ProtoMessage() {} +func (*GetWorkloadsStatsResponse) ProtoMessage() {} -func (x *DailyUtilizationNodeTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[105] +func (x *GetWorkloadsStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8155,53 +8261,74 @@ func (x *DailyUtilizationNodeTypeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationNodeTypeResponse.ProtoReflect.Descriptor instead. -func (*DailyUtilizationNodeTypeResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{105} +// Deprecated: Use GetWorkloadsStatsResponse.ProtoReflect.Descriptor instead. +func (*GetWorkloadsStatsResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{108} } -func (x *DailyUtilizationNodeTypeResponse) GetClusterIdToDatapoints() map[string]*DailyUtilizationNodeTypeResponse_Datapoints { +func (x *GetWorkloadsStatsResponse) GetTotal() int32 { if x != nil { - return x.ClusterIdToDatapoints + return x.Total } - return nil + return 0 } -func (x *DailyUtilizationNodeTypeResponse) GetClusterIdToMeta() map[string]*Cluster { +func (x *GetWorkloadsStatsResponse) GetOptimized() int32 { if x != nil { - return x.ClusterIdToMeta + return x.Optimized } - return nil + return 0 } -// LookupNodeInstanceRequest is used to debug and inspect instance lookup for a node -type LookupNodeInstanceRequest struct { +func (x *GetWorkloadsStatsResponse) GetUnoptimized() int32 { + if x != nil { + return x.Unoptimized + } + return 0 +} + +func (x *GetWorkloadsStatsResponse) GetWithoutRequests() int32 { + if x != nil { + return x.WithoutRequests + } + return 0 +} + +func (x *GetWorkloadsStatsResponse) GetOptimizedPercentage() int32 { + if x != nil { + return x.OptimizedPercentage + } + return 0 +} + +type DailyUtilizationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. - ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. - NodeId string `protobuf:"bytes,3,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` // Unique identifier for the node. + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` + StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` } -func (x *LookupNodeInstanceRequest) Reset() { - *x = LookupNodeInstanceRequest{} +func (x *DailyUtilizationRequest) Reset() { + *x = DailyUtilizationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[106] + mi := &file_api_v1_k8s_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LookupNodeInstanceRequest) String() string { +func (x *DailyUtilizationRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LookupNodeInstanceRequest) ProtoMessage() {} +func (*DailyUtilizationRequest) ProtoMessage() {} -func (x *LookupNodeInstanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[106] +func (x *DailyUtilizationRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8212,62 +8339,66 @@ func (x *LookupNodeInstanceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LookupNodeInstanceRequest.ProtoReflect.Descriptor instead. -func (*LookupNodeInstanceRequest) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{106} +// Deprecated: Use DailyUtilizationRequest.ProtoReflect.Descriptor instead. +func (*DailyUtilizationRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{109} } -func (x *LookupNodeInstanceRequest) GetTeamId() string { +func (x *DailyUtilizationRequest) GetTeamId() string { if x != nil { return x.TeamId } return "" } -func (x *LookupNodeInstanceRequest) GetClusterId() string { +func (x *DailyUtilizationRequest) GetClusterIds() []string { if x != nil { - return x.ClusterId + return x.ClusterIds } - return "" + return nil } -func (x *LookupNodeInstanceRequest) GetNodeId() string { +func (x *DailyUtilizationRequest) GetStartTime() *timestamppb.Timestamp { if x != nil { - return x.NodeId + return x.StartTime } - return "" + return nil } -// InstanceLookupParams contains the parameters used to lookup an instance from cache -type InstanceLookupParams struct { +func (x *DailyUtilizationRequest) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +type DailyUtilizationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CloudProviderId int64 `protobuf:"varint,1,opt,name=cloud_provider_id,json=cloudProviderId,proto3" json:"cloud_provider_id,omitempty"` // Cloud provider ID used in lookup - RegionId int64 `protobuf:"varint,2,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` // Region ID used in lookup - AvailabilityZone string `protobuf:"bytes,3,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"` // Availability zone name used in lookup - InstanceType string `protobuf:"bytes,4,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"` // Instance type name used in lookup - OperatingSystemId int64 `protobuf:"varint,5,opt,name=operating_system_id,json=operatingSystemId,proto3" json:"operating_system_id,omitempty"` // Operating system ID used in lookup + ClusterIdToDailyTotalCoreMinutes map[string]*DailyUtilizationResponse_Datapoints `protobuf:"bytes,1,rep,name=cluster_id_to_daily_total_core_minutes,json=clusterIdToDailyTotalCoreMinutes,proto3" json:"cluster_id_to_daily_total_core_minutes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ClusterIdToMeta map[string]*Cluster `protobuf:"bytes,11,rep,name=cluster_id_to_meta,json=clusterIdToMeta,proto3" json:"cluster_id_to_meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // for easier lookups + TotalCoreMinutesInPeriod int32 `protobuf:"varint,21,opt,name=total_core_minutes_in_period,json=totalCoreMinutesInPeriod,proto3" json:"total_core_minutes_in_period,omitempty"` } -func (x *InstanceLookupParams) Reset() { - *x = InstanceLookupParams{} +func (x *DailyUtilizationResponse) Reset() { + *x = DailyUtilizationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[107] + mi := &file_api_v1_k8s_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InstanceLookupParams) String() string { +func (x *DailyUtilizationResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InstanceLookupParams) ProtoMessage() {} +func (*DailyUtilizationResponse) ProtoMessage() {} -func (x *InstanceLookupParams) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[107] +func (x *DailyUtilizationResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8278,76 +8409,60 @@ func (x *InstanceLookupParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InstanceLookupParams.ProtoReflect.Descriptor instead. -func (*InstanceLookupParams) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{107} -} - -func (x *InstanceLookupParams) GetCloudProviderId() int64 { - if x != nil { - return x.CloudProviderId - } - return 0 +// Deprecated: Use DailyUtilizationResponse.ProtoReflect.Descriptor instead. +func (*DailyUtilizationResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{110} } -func (x *InstanceLookupParams) GetRegionId() int64 { +func (x *DailyUtilizationResponse) GetClusterIdToDailyTotalCoreMinutes() map[string]*DailyUtilizationResponse_Datapoints { if x != nil { - return x.RegionId + return x.ClusterIdToDailyTotalCoreMinutes } - return 0 + return nil } -func (x *InstanceLookupParams) GetAvailabilityZone() string { +func (x *DailyUtilizationResponse) GetClusterIdToMeta() map[string]*Cluster { if x != nil { - return x.AvailabilityZone + return x.ClusterIdToMeta } - return "" + return nil } -func (x *InstanceLookupParams) GetInstanceType() string { +func (x *DailyUtilizationResponse) GetTotalCoreMinutesInPeriod() int32 { if x != nil { - return x.InstanceType + return x.TotalCoreMinutesInPeriod } - return "" + return 0 } -func (x *InstanceLookupParams) GetOperatingSystemId() int64 { - if x != nil { - return x.OperatingSystemId - } - return 0 -} - -// LookupNodeInstanceResponse contains the results of instance lookup for a node -type LookupNodeInstanceResponse struct { +type DailyUtilizationInstanceTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DynamicInstance *Instance `protobuf:"bytes,1,opt,name=dynamic_instance,json=dynamicInstance,proto3" json:"dynamic_instance,omitempty"` // Instance retrieved dynamically from cache using node attributes - CachedInstance *Instance `protobuf:"bytes,2,opt,name=cached_instance,json=cachedInstance,proto3" json:"cached_instance,omitempty"` // Instance retrieved from node.InstanceID if available - LookupParams *InstanceLookupParams `protobuf:"bytes,3,opt,name=lookup_params,json=lookupParams,proto3" json:"lookup_params,omitempty"` // Parameters used to lookup the dynamic instance - DynamicInstanceFound bool `protobuf:"varint,4,opt,name=dynamic_instance_found,json=dynamicInstanceFound,proto3" json:"dynamic_instance_found,omitempty"` // Whether dynamic instance lookup succeeded - CachedInstanceFound bool `protobuf:"varint,5,opt,name=cached_instance_found,json=cachedInstanceFound,proto3" json:"cached_instance_found,omitempty"` // Whether cached instance lookup succeeded + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` + StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` } -func (x *LookupNodeInstanceResponse) Reset() { - *x = LookupNodeInstanceResponse{} +func (x *DailyUtilizationInstanceTypeRequest) Reset() { + *x = DailyUtilizationInstanceTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[108] + mi := &file_api_v1_k8s_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LookupNodeInstanceResponse) String() string { +func (x *DailyUtilizationInstanceTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LookupNodeInstanceResponse) ProtoMessage() {} +func (*DailyUtilizationInstanceTypeRequest) ProtoMessage() {} -func (x *LookupNodeInstanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[108] +func (x *DailyUtilizationInstanceTypeRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8358,71 +8473,65 @@ func (x *LookupNodeInstanceResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LookupNodeInstanceResponse.ProtoReflect.Descriptor instead. -func (*LookupNodeInstanceResponse) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{108} +// Deprecated: Use DailyUtilizationInstanceTypeRequest.ProtoReflect.Descriptor instead. +func (*DailyUtilizationInstanceTypeRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{111} } -func (x *LookupNodeInstanceResponse) GetDynamicInstance() *Instance { +func (x *DailyUtilizationInstanceTypeRequest) GetTeamId() string { if x != nil { - return x.DynamicInstance + return x.TeamId } - return nil + return "" } -func (x *LookupNodeInstanceResponse) GetCachedInstance() *Instance { +func (x *DailyUtilizationInstanceTypeRequest) GetClusterIds() []string { if x != nil { - return x.CachedInstance + return x.ClusterIds } return nil } -func (x *LookupNodeInstanceResponse) GetLookupParams() *InstanceLookupParams { +func (x *DailyUtilizationInstanceTypeRequest) GetStartTime() *timestamppb.Timestamp { if x != nil { - return x.LookupParams + return x.StartTime } return nil } -func (x *LookupNodeInstanceResponse) GetDynamicInstanceFound() bool { - if x != nil { - return x.DynamicInstanceFound - } - return false -} - -func (x *LookupNodeInstanceResponse) GetCachedInstanceFound() bool { +func (x *DailyUtilizationInstanceTypeRequest) GetEndTime() *timestamppb.Timestamp { if x != nil { - return x.CachedInstanceFound + return x.EndTime } - return false + return nil } -type GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics struct { +type DailyUtilizationInstanceTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NodeGroupMetrics []*NodeGroupMetric `protobuf:"bytes,1,rep,name=node_group_metrics,json=nodeGroupMetrics,proto3" json:"node_group_metrics,omitempty"` + ClusterIdToDatapoints map[string]*DailyUtilizationInstanceTypeResponse_Datapoints `protobuf:"bytes,1,rep,name=cluster_id_to_datapoints,json=clusterIdToDatapoints,proto3" json:"cluster_id_to_datapoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ClusterIdToMeta map[string]*Cluster `protobuf:"bytes,11,rep,name=cluster_id_to_meta,json=clusterIdToMeta,proto3" json:"cluster_id_to_meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) Reset() { - *x = GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics{} +func (x *DailyUtilizationInstanceTypeResponse) Reset() { + *x = DailyUtilizationInstanceTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[110] + mi := &file_api_v1_k8s_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) String() string { +func (x *DailyUtilizationInstanceTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) ProtoMessage() {} +func (*DailyUtilizationInstanceTypeResponse) ProtoMessage() {} -func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[110] +func (x *DailyUtilizationInstanceTypeResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8433,43 +8542,53 @@ func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics.ProtoReflect.Descriptor instead. -func (*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{27, 0} +// Deprecated: Use DailyUtilizationInstanceTypeResponse.ProtoReflect.Descriptor instead. +func (*DailyUtilizationInstanceTypeResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{112} } -func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) GetNodeGroupMetrics() []*NodeGroupMetric { +func (x *DailyUtilizationInstanceTypeResponse) GetClusterIdToDatapoints() map[string]*DailyUtilizationInstanceTypeResponse_Datapoints { if x != nil { - return x.NodeGroupMetrics + return x.ClusterIdToDatapoints } return nil } -type DailyUtilizationResponse_Datapoints struct { +func (x *DailyUtilizationInstanceTypeResponse) GetClusterIdToMeta() map[string]*Cluster { + if x != nil { + return x.ClusterIdToMeta + } + return nil +} + +type DailyUtilizationNodeTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Datapoints []*DailyUtilizationResponse_Datapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterIds []string `protobuf:"bytes,2,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` + StartTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` } -func (x *DailyUtilizationResponse_Datapoints) Reset() { - *x = DailyUtilizationResponse_Datapoints{} +func (x *DailyUtilizationNodeTypeRequest) Reset() { + *x = DailyUtilizationNodeTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[121] + mi := &file_api_v1_k8s_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationResponse_Datapoints) String() string { +func (x *DailyUtilizationNodeTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationResponse_Datapoints) ProtoMessage() {} +func (*DailyUtilizationNodeTypeRequest) ProtoMessage() {} -func (x *DailyUtilizationResponse_Datapoints) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[121] +func (x *DailyUtilizationNodeTypeRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8480,44 +8599,65 @@ func (x *DailyUtilizationResponse_Datapoints) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationResponse_Datapoints.ProtoReflect.Descriptor instead. -func (*DailyUtilizationResponse_Datapoints) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{101, 0} +// Deprecated: Use DailyUtilizationNodeTypeRequest.ProtoReflect.Descriptor instead. +func (*DailyUtilizationNodeTypeRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{113} } -func (x *DailyUtilizationResponse_Datapoints) GetDatapoints() []*DailyUtilizationResponse_Datapoint { +func (x *DailyUtilizationNodeTypeRequest) GetTeamId() string { if x != nil { - return x.Datapoints + return x.TeamId + } + return "" +} + +func (x *DailyUtilizationNodeTypeRequest) GetClusterIds() []string { + if x != nil { + return x.ClusterIds } return nil } -type DailyUtilizationResponse_Datapoint struct { +func (x *DailyUtilizationNodeTypeRequest) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *DailyUtilizationNodeTypeRequest) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +type DailyUtilizationNodeTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp (seconds since epoch). - Value int32 `protobuf:"varint,6,opt,name=value,proto3" json:"value,omitempty"` // some value + ClusterIdToDatapoints map[string]*DailyUtilizationNodeTypeResponse_Datapoints `protobuf:"bytes,1,rep,name=cluster_id_to_datapoints,json=clusterIdToDatapoints,proto3" json:"cluster_id_to_datapoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ClusterIdToMeta map[string]*Cluster `protobuf:"bytes,11,rep,name=cluster_id_to_meta,json=clusterIdToMeta,proto3" json:"cluster_id_to_meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *DailyUtilizationResponse_Datapoint) Reset() { - *x = DailyUtilizationResponse_Datapoint{} +func (x *DailyUtilizationNodeTypeResponse) Reset() { + *x = DailyUtilizationNodeTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[122] + mi := &file_api_v1_k8s_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationResponse_Datapoint) String() string { +func (x *DailyUtilizationNodeTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationResponse_Datapoint) ProtoMessage() {} +func (*DailyUtilizationNodeTypeResponse) ProtoMessage() {} -func (x *DailyUtilizationResponse_Datapoint) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[122] +func (x *DailyUtilizationNodeTypeResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8528,50 +8668,53 @@ func (x *DailyUtilizationResponse_Datapoint) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationResponse_Datapoint.ProtoReflect.Descriptor instead. -func (*DailyUtilizationResponse_Datapoint) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{101, 1} +// Deprecated: Use DailyUtilizationNodeTypeResponse.ProtoReflect.Descriptor instead. +func (*DailyUtilizationNodeTypeResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{114} } -func (x *DailyUtilizationResponse_Datapoint) GetTimestamp() int64 { +func (x *DailyUtilizationNodeTypeResponse) GetClusterIdToDatapoints() map[string]*DailyUtilizationNodeTypeResponse_Datapoints { if x != nil { - return x.Timestamp + return x.ClusterIdToDatapoints } - return 0 + return nil } -func (x *DailyUtilizationResponse_Datapoint) GetValue() int32 { +func (x *DailyUtilizationNodeTypeResponse) GetClusterIdToMeta() map[string]*Cluster { if x != nil { - return x.Value + return x.ClusterIdToMeta } - return 0 + return nil } -type DailyUtilizationInstanceTypeResponse_Datapoints struct { +// LookupNodeInstanceRequest is used to debug and inspect instance lookup for a node +type LookupNodeInstanceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Datapoints []*DailyUtilizationInstanceTypeResponse_Datapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` // Unique identifier for the team. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Unique identifier for the cluster. + NodeId string `protobuf:"bytes,3,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` // Unique identifier for the node. } -func (x *DailyUtilizationInstanceTypeResponse_Datapoints) Reset() { - *x = DailyUtilizationInstanceTypeResponse_Datapoints{} +func (x *LookupNodeInstanceRequest) Reset() { + *x = LookupNodeInstanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[125] + mi := &file_api_v1_k8s_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationInstanceTypeResponse_Datapoints) String() string { +func (x *LookupNodeInstanceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationInstanceTypeResponse_Datapoints) ProtoMessage() {} +func (*LookupNodeInstanceRequest) ProtoMessage() {} -func (x *DailyUtilizationInstanceTypeResponse_Datapoints) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[125] +func (x *LookupNodeInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8582,44 +8725,62 @@ func (x *DailyUtilizationInstanceTypeResponse_Datapoints) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationInstanceTypeResponse_Datapoints.ProtoReflect.Descriptor instead. -func (*DailyUtilizationInstanceTypeResponse_Datapoints) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{103, 0} +// Deprecated: Use LookupNodeInstanceRequest.ProtoReflect.Descriptor instead. +func (*LookupNodeInstanceRequest) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{115} } -func (x *DailyUtilizationInstanceTypeResponse_Datapoints) GetDatapoints() []*DailyUtilizationInstanceTypeResponse_Datapoint { +func (x *LookupNodeInstanceRequest) GetTeamId() string { if x != nil { - return x.Datapoints + return x.TeamId } - return nil + return "" } -type DailyUtilizationInstanceTypeResponse_Datapoint struct { +func (x *LookupNodeInstanceRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *LookupNodeInstanceRequest) GetNodeId() string { + if x != nil { + return x.NodeId + } + return "" +} + +// InstanceLookupParams contains the parameters used to lookup an instance from cache +type InstanceLookupParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp (seconds since epoch). - InstanceTypeToDailyTotalCoreMinutes map[string]int32 `protobuf:"bytes,11,rep,name=instance_type_to_daily_total_core_minutes,json=instanceTypeToDailyTotalCoreMinutes,proto3" json:"instance_type_to_daily_total_core_minutes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + CloudProviderId int64 `protobuf:"varint,1,opt,name=cloud_provider_id,json=cloudProviderId,proto3" json:"cloud_provider_id,omitempty"` // Cloud provider ID used in lookup + RegionId int64 `protobuf:"varint,2,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` // Region ID used in lookup + AvailabilityZone string `protobuf:"bytes,3,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"` // Availability zone name used in lookup + InstanceType string `protobuf:"bytes,4,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"` // Instance type name used in lookup + OperatingSystemId int64 `protobuf:"varint,5,opt,name=operating_system_id,json=operatingSystemId,proto3" json:"operating_system_id,omitempty"` // Operating system ID used in lookup } -func (x *DailyUtilizationInstanceTypeResponse_Datapoint) Reset() { - *x = DailyUtilizationInstanceTypeResponse_Datapoint{} +func (x *InstanceLookupParams) Reset() { + *x = InstanceLookupParams{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1_k8s_proto_msgTypes[126] + mi := &file_api_v1_k8s_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DailyUtilizationInstanceTypeResponse_Datapoint) String() string { +func (x *InstanceLookupParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationInstanceTypeResponse_Datapoint) ProtoMessage() {} +func (*InstanceLookupParams) ProtoMessage() {} -func (x *DailyUtilizationInstanceTypeResponse_Datapoint) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_k8s_proto_msgTypes[126] +func (x *InstanceLookupParams) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8630,35 +8791,183 @@ func (x *DailyUtilizationInstanceTypeResponse_Datapoint) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationInstanceTypeResponse_Datapoint.ProtoReflect.Descriptor instead. -func (*DailyUtilizationInstanceTypeResponse_Datapoint) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{103, 1} +// Deprecated: Use InstanceLookupParams.ProtoReflect.Descriptor instead. +func (*InstanceLookupParams) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{116} } -func (x *DailyUtilizationInstanceTypeResponse_Datapoint) GetTimestamp() int64 { +func (x *InstanceLookupParams) GetCloudProviderId() int64 { if x != nil { - return x.Timestamp + return x.CloudProviderId } return 0 } -func (x *DailyUtilizationInstanceTypeResponse_Datapoint) GetInstanceTypeToDailyTotalCoreMinutes() map[string]int32 { +func (x *InstanceLookupParams) GetRegionId() int64 { if x != nil { - return x.InstanceTypeToDailyTotalCoreMinutes + return x.RegionId } - return nil -} - -type DailyUtilizationNodeTypeResponse_Datapoints struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Datapoints []*DailyUtilizationNodeTypeResponse_Datapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"` + return 0 } -func (x *DailyUtilizationNodeTypeResponse_Datapoints) Reset() { - *x = DailyUtilizationNodeTypeResponse_Datapoints{} +func (x *InstanceLookupParams) GetAvailabilityZone() string { + if x != nil { + return x.AvailabilityZone + } + return "" +} + +func (x *InstanceLookupParams) GetInstanceType() string { + if x != nil { + return x.InstanceType + } + return "" +} + +func (x *InstanceLookupParams) GetOperatingSystemId() int64 { + if x != nil { + return x.OperatingSystemId + } + return 0 +} + +// LookupNodeInstanceResponse contains the results of instance lookup for a node +type LookupNodeInstanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DynamicInstance *Instance `protobuf:"bytes,1,opt,name=dynamic_instance,json=dynamicInstance,proto3" json:"dynamic_instance,omitempty"` // Instance retrieved dynamically from cache using node attributes + CachedInstance *Instance `protobuf:"bytes,2,opt,name=cached_instance,json=cachedInstance,proto3" json:"cached_instance,omitempty"` // Instance retrieved from node.InstanceID if available + LookupParams *InstanceLookupParams `protobuf:"bytes,3,opt,name=lookup_params,json=lookupParams,proto3" json:"lookup_params,omitempty"` // Parameters used to lookup the dynamic instance + DynamicInstanceFound bool `protobuf:"varint,4,opt,name=dynamic_instance_found,json=dynamicInstanceFound,proto3" json:"dynamic_instance_found,omitempty"` // Whether dynamic instance lookup succeeded + CachedInstanceFound bool `protobuf:"varint,5,opt,name=cached_instance_found,json=cachedInstanceFound,proto3" json:"cached_instance_found,omitempty"` // Whether cached instance lookup succeeded +} + +func (x *LookupNodeInstanceResponse) Reset() { + *x = LookupNodeInstanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LookupNodeInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LookupNodeInstanceResponse) ProtoMessage() {} + +func (x *LookupNodeInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[117] + 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 LookupNodeInstanceResponse.ProtoReflect.Descriptor instead. +func (*LookupNodeInstanceResponse) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{117} +} + +func (x *LookupNodeInstanceResponse) GetDynamicInstance() *Instance { + if x != nil { + return x.DynamicInstance + } + return nil +} + +func (x *LookupNodeInstanceResponse) GetCachedInstance() *Instance { + if x != nil { + return x.CachedInstance + } + return nil +} + +func (x *LookupNodeInstanceResponse) GetLookupParams() *InstanceLookupParams { + if x != nil { + return x.LookupParams + } + return nil +} + +func (x *LookupNodeInstanceResponse) GetDynamicInstanceFound() bool { + if x != nil { + return x.DynamicInstanceFound + } + return false +} + +func (x *LookupNodeInstanceResponse) GetCachedInstanceFound() bool { + if x != nil { + return x.CachedInstanceFound + } + return false +} + +type GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeGroupMetrics []*NodeGroupMetric `protobuf:"bytes,1,rep,name=node_group_metrics,json=nodeGroupMetrics,proto3" json:"node_group_metrics,omitempty"` +} + +func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) Reset() { + *x = GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) ProtoMessage() {} + +func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[119] + 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 GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics.ProtoReflect.Descriptor instead. +func (*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{27, 0} +} + +func (x *GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics) GetNodeGroupMetrics() []*NodeGroupMetric { + if x != nil { + return x.NodeGroupMetrics + } + return nil +} + +type DailyUtilizationResponse_Datapoints struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Datapoints []*DailyUtilizationResponse_Datapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"` +} + +func (x *DailyUtilizationResponse_Datapoints) Reset() { + *x = DailyUtilizationResponse_Datapoints{} if protoimpl.UnsafeEnabled { mi := &file_api_v1_k8s_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8666,13 +8975,13 @@ func (x *DailyUtilizationNodeTypeResponse_Datapoints) Reset() { } } -func (x *DailyUtilizationNodeTypeResponse_Datapoints) String() string { +func (x *DailyUtilizationResponse_Datapoints) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationNodeTypeResponse_Datapoints) ProtoMessage() {} +func (*DailyUtilizationResponse_Datapoints) ProtoMessage() {} -func (x *DailyUtilizationNodeTypeResponse_Datapoints) ProtoReflect() protoreflect.Message { +func (x *DailyUtilizationResponse_Datapoints) ProtoReflect() protoreflect.Message { mi := &file_api_v1_k8s_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8684,29 +8993,29 @@ func (x *DailyUtilizationNodeTypeResponse_Datapoints) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationNodeTypeResponse_Datapoints.ProtoReflect.Descriptor instead. -func (*DailyUtilizationNodeTypeResponse_Datapoints) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{105, 0} +// Deprecated: Use DailyUtilizationResponse_Datapoints.ProtoReflect.Descriptor instead. +func (*DailyUtilizationResponse_Datapoints) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{110, 0} } -func (x *DailyUtilizationNodeTypeResponse_Datapoints) GetDatapoints() []*DailyUtilizationNodeTypeResponse_Datapoint { +func (x *DailyUtilizationResponse_Datapoints) GetDatapoints() []*DailyUtilizationResponse_Datapoint { if x != nil { return x.Datapoints } return nil } -type DailyUtilizationNodeTypeResponse_Datapoint struct { +type DailyUtilizationResponse_Datapoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp (seconds since epoch). - NodeTypeToDailyTotalCoreMinutes map[string]int32 `protobuf:"bytes,11,rep,name=node_type_to_daily_total_core_minutes,json=nodeTypeToDailyTotalCoreMinutes,proto3" json:"node_type_to_daily_total_core_minutes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp (seconds since epoch). + Value int32 `protobuf:"varint,6,opt,name=value,proto3" json:"value,omitempty"` // some value } -func (x *DailyUtilizationNodeTypeResponse_Datapoint) Reset() { - *x = DailyUtilizationNodeTypeResponse_Datapoint{} +func (x *DailyUtilizationResponse_Datapoint) Reset() { + *x = DailyUtilizationResponse_Datapoint{} if protoimpl.UnsafeEnabled { mi := &file_api_v1_k8s_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8714,13 +9023,13 @@ func (x *DailyUtilizationNodeTypeResponse_Datapoint) Reset() { } } -func (x *DailyUtilizationNodeTypeResponse_Datapoint) String() string { +func (x *DailyUtilizationResponse_Datapoint) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DailyUtilizationNodeTypeResponse_Datapoint) ProtoMessage() {} +func (*DailyUtilizationResponse_Datapoint) ProtoMessage() {} -func (x *DailyUtilizationNodeTypeResponse_Datapoint) ProtoReflect() protoreflect.Message { +func (x *DailyUtilizationResponse_Datapoint) ProtoReflect() protoreflect.Message { mi := &file_api_v1_k8s_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8732,42 +9041,246 @@ func (x *DailyUtilizationNodeTypeResponse_Datapoint) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use DailyUtilizationNodeTypeResponse_Datapoint.ProtoReflect.Descriptor instead. -func (*DailyUtilizationNodeTypeResponse_Datapoint) Descriptor() ([]byte, []int) { - return file_api_v1_k8s_proto_rawDescGZIP(), []int{105, 1} +// Deprecated: Use DailyUtilizationResponse_Datapoint.ProtoReflect.Descriptor instead. +func (*DailyUtilizationResponse_Datapoint) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{110, 1} } -func (x *DailyUtilizationNodeTypeResponse_Datapoint) GetTimestamp() int64 { +func (x *DailyUtilizationResponse_Datapoint) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } -func (x *DailyUtilizationNodeTypeResponse_Datapoint) GetNodeTypeToDailyTotalCoreMinutes() map[string]int32 { +func (x *DailyUtilizationResponse_Datapoint) GetValue() int32 { if x != nil { - return x.NodeTypeToDailyTotalCoreMinutes + return x.Value + } + return 0 +} + +type DailyUtilizationInstanceTypeResponse_Datapoints struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Datapoints []*DailyUtilizationInstanceTypeResponse_Datapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"` +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoints) Reset() { + *x = DailyUtilizationInstanceTypeResponse_Datapoints{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DailyUtilizationInstanceTypeResponse_Datapoints) ProtoMessage() {} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoints) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[134] + 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 DailyUtilizationInstanceTypeResponse_Datapoints.ProtoReflect.Descriptor instead. +func (*DailyUtilizationInstanceTypeResponse_Datapoints) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{112, 0} +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoints) GetDatapoints() []*DailyUtilizationInstanceTypeResponse_Datapoint { + if x != nil { + return x.Datapoints } return nil } -var File_api_v1_k8s_proto protoreflect.FileDescriptor +type DailyUtilizationInstanceTypeResponse_Datapoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var file_api_v1_k8s_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x38, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xff, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x1c, 0x0a, 0x07, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp (seconds since epoch). + InstanceTypeToDailyTotalCoreMinutes map[string]int32 `protobuf:"bytes,11,rep,name=instance_type_to_daily_total_core_minutes,json=instanceTypeToDailyTotalCoreMinutes,proto3" json:"instance_type_to_daily_total_core_minutes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoint) Reset() { + *x = DailyUtilizationInstanceTypeResponse_Datapoint{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DailyUtilizationInstanceTypeResponse_Datapoint) ProtoMessage() {} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoint) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[135] + 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 DailyUtilizationInstanceTypeResponse_Datapoint.ProtoReflect.Descriptor instead. +func (*DailyUtilizationInstanceTypeResponse_Datapoint) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{112, 1} +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoint) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *DailyUtilizationInstanceTypeResponse_Datapoint) GetInstanceTypeToDailyTotalCoreMinutes() map[string]int32 { + if x != nil { + return x.InstanceTypeToDailyTotalCoreMinutes + } + return nil +} + +type DailyUtilizationNodeTypeResponse_Datapoints struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Datapoints []*DailyUtilizationNodeTypeResponse_Datapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"` +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoints) Reset() { + *x = DailyUtilizationNodeTypeResponse_Datapoints{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DailyUtilizationNodeTypeResponse_Datapoints) ProtoMessage() {} + +func (x *DailyUtilizationNodeTypeResponse_Datapoints) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[139] + 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 DailyUtilizationNodeTypeResponse_Datapoints.ProtoReflect.Descriptor instead. +func (*DailyUtilizationNodeTypeResponse_Datapoints) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{114, 0} +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoints) GetDatapoints() []*DailyUtilizationNodeTypeResponse_Datapoint { + if x != nil { + return x.Datapoints + } + return nil +} + +type DailyUtilizationNodeTypeResponse_Datapoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp (seconds since epoch). + NodeTypeToDailyTotalCoreMinutes map[string]int32 `protobuf:"bytes,11,rep,name=node_type_to_daily_total_core_minutes,json=nodeTypeToDailyTotalCoreMinutes,proto3" json:"node_type_to_daily_total_core_minutes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoint) Reset() { + *x = DailyUtilizationNodeTypeResponse_Datapoint{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_k8s_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DailyUtilizationNodeTypeResponse_Datapoint) ProtoMessage() {} + +func (x *DailyUtilizationNodeTypeResponse_Datapoint) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_k8s_proto_msgTypes[140] + 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 DailyUtilizationNodeTypeResponse_Datapoint.ProtoReflect.Descriptor instead. +func (*DailyUtilizationNodeTypeResponse_Datapoint) Descriptor() ([]byte, []int) { + return file_api_v1_k8s_proto_rawDescGZIP(), []int{114, 1} +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoint) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *DailyUtilizationNodeTypeResponse_Datapoint) GetNodeTypeToDailyTotalCoreMinutes() map[string]int32 { + if x != nil { + return x.NodeTypeToDailyTotalCoreMinutes + } + return nil +} + +var File_api_v1_k8s_proto protoreflect.FileDescriptor + +var file_api_v1_k8s_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x38, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xff, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x1c, 0x0a, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, @@ -9429,1441 +9942,1520 @@ var file_api_v1_k8s_proto_rawDesc = []byte{ 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x57, - 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0xdb, 0x02, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x05, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, - 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x6b, 0x69, - 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x10, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x77, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x1d, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x19, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2b, - 0x0a, 0x05, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, - 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, - 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x16, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, + 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x72, 0x0a, + 0x20, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x22, 0x43, 0x0a, 0x21, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0xdb, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, + 0x2b, 0x0a, 0x05, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x22, 0x7d, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, - 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x1b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0xe2, 0x0c, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e, 0x63, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x12, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x13, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, - 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x6d, - 0x6f, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x3e, 0x0a, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, - 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x6c, 0x65, - 0x61, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x44, 0x0a, 0x17, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, - 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x15, 0x6d, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x1c, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, - 0x1a, 0x6d, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x11, 0x63, - 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x50, - 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x73, 0x74, - 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x62, - 0x65, 0x65, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x42, 0x65, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x69, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x67, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, - 0x67, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x2c, - 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x44, 0x69, 0x73, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, - 0x7a, 0x78, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x7a, 0x78, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, - 0x0d, 0x7a, 0x78, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x33, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x7a, 0x78, 0x70, 0x48, - 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x0c, 0x64, 0x61, 0x6b, 0x72, 0x5f, - 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x65, 0x74, 0x65, 0x64, 0x22, 0x77, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x1d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x19, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, + 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x02, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x05, 0x6b, 0x69, 0x6e, 0x64, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x6b, + 0x69, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x6b, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x16, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xbc, + 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x7d, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x1b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xf6, 0x0c, 0x0a, + 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x17, 0x0a, 0x07, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x2d, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, + 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, + 0x10, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e, + 0x63, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, + 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x13, 0x6d, + 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x6d, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x14, 0x6c, 0x65, 0x61, + 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x17, 0x6d, 0x6f, 0x73, + 0x74, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x15, 0x6d, 0x6f, 0x73, 0x74, 0x55, 0x6e, + 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x53, 0x0a, 0x1c, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x1a, 0x6d, 0x6f, 0x73, 0x74, 0x55, 0x6e, + 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x11, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0e, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, + 0x2f, 0x0a, 0x14, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, + 0x12, 0x28, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x65, 0x65, 0x6e, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x42, + 0x65, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, + 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x11, + 0x67, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, + 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x67, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, + 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x7a, 0x78, 0x70, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x7a, + 0x78, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0d, 0x7a, 0x78, 0x70, 0x5f, 0x68, 0x65, + 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x61, 0x6b, 0x72, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6e, 0x6f, 0x64, - 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x3e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x7a, 0x78, 0x70, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x36, 0x0a, 0x0c, 0x64, 0x61, 0x6b, 0x72, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x61, + 0x6b, 0x72, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3c, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6f, 0x70, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x46, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x51, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x6e, 0x64, + 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x54, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x73, 0x0a, 0x09, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 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, 0x42, 0x0a, 0x10, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x22, 0x21, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x94, 0x06, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x7a, 0x78, 0x70, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x07, 0x7a, 0x78, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0d, 0x7a, 0x78, 0x70, + 0x5f, 0x68, 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4f, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x69, 0x6d, 0x70, - 0x61, 0x63, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x51, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x10, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x54, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x73, - 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 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, - 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x22, 0x21, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xcc, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x7a, - 0x78, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x7a, 0x78, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0d, - 0x7a, 0x78, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x7a, 0x78, 0x70, 0x48, 0x65, - 0x6c, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0f, 0x7a, 0x78, 0x70, 0x5f, 0x6e, 0x65, - 0x74, 0x6d, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x7a, 0x78, 0x70, 0x48, 0x65, 0x6c, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0f, 0x7a, 0x78, 0x70, 0x5f, 0x6e, 0x65, 0x74, 0x6d, 0x6f, + 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0d, 0x7a, 0x78, 0x70, 0x4e, 0x65, 0x74, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x45, 0x0a, 0x14, 0x7a, 0x78, 0x70, 0x5f, 0x6e, 0x65, 0x74, 0x6d, 0x6f, 0x6e, 0x5f, + 0x68, 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x7a, 0x78, 0x70, 0x4e, 0x65, 0x74, 0x6d, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x14, 0x7a, 0x78, 0x70, 0x5f, 0x6e, 0x65, 0x74, 0x6d, - 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x7a, 0x78, 0x70, 0x4e, 0x65, 0x74, - 0x6d, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x0c, 0x64, - 0x61, 0x6b, 0x72, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x61, 0x6b, 0x72, 0x4f, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x11, 0x64, 0x61, 0x6b, 0x72, 0x5f, 0x6f, 0x70, 0x5f, 0x68, - 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x7a, 0x78, 0x70, 0x4e, 0x65, 0x74, 0x6d, 0x6f, 0x6e, + 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x0c, 0x64, 0x61, 0x6b, 0x72, + 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x64, 0x61, 0x6b, 0x72, 0x4f, 0x70, 0x48, 0x65, 0x6c, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x10, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x15, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6d, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x61, 0x6b, 0x72, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3f, 0x0a, 0x11, 0x64, 0x61, 0x6b, 0x72, 0x5f, 0x6f, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6d, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0e, 0x64, 0x61, 0x6b, 0x72, 0x4f, 0x70, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3d, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x5f, 0x61, 0x77, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x73, + 0x12, 0x41, 0x0a, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x5f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x7a, + 0x75, 0x72, 0x65, 0x12, 0x3d, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x5f, 0x67, 0x63, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x47, + 0x63, 0x70, 0x12, 0x3d, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x5f, 0x6f, 0x63, 0x69, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4f, 0x63, + 0x69, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x48, 0x65, 0x6c, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe3, 0x01, 0x0a, 0x22, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, + 0x6f, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x47, 0x0a, 0x15, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, + 0x5f, 0x68, 0x65, 0x6c, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x4f, 0x70, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe3, 0x01, 0x0a, 0x22, 0x47, + 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, + 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x73, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, + 0x22, 0x5f, 0x0a, 0x23, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, + 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x12, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xdd, 0x01, 0x0a, 0x1f, 0x47, 0x61, 0x6c, + 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x42, 0x79, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x6f, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x0d, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x22, 0x5f, 0x0a, 0x23, 0x47, - 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x61, 0x6c, 0x61, 0x78, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xf4, 0x01, 0x0a, - 0x12, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xdd, 0x01, 0x0a, 0x1f, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x73, 0x12, 0x37, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, - 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, - 0x79, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x4f, 0x70, 0x74, 0x73, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, - 0x70, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x20, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x8c, - 0x02, 0x0a, 0x0f, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 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, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x63, - 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, - 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe5, 0x01, - 0x0a, 0x23, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, - 0x3b, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, - 0x79, 0x50, 0x4f, 0x56, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x79, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x47, 0x0a, 0x0e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, - 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x4f, 0x70, 0x74, 0x73, 0x22, 0xb6, 0x03, 0x0a, 0x24, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x4e, 0x6f, 0x64, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, + 0x47, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x20, 0x47, 0x61, 0x6c, 0x61, + 0x78, 0x79, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, + 0x6e, 0x67, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x0f, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4b, 0x65, 0x79, 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, + 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x12, 0x2d, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0xe5, 0x01, 0x0a, 0x23, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, + 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, + 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, + 0x79, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, + 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x0d, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x22, 0xb6, 0x03, 0x0a, 0x24, 0x47, + 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x56, + 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, - 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x56, 0x0a, 0x08, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x12, 0x59, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, - 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, - 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x1a, 0x4c, 0x0a, 0x0d, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x52, 0x0a, 0x0e, 0x57, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 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, 0x2a, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaf, - 0x02, 0x0a, 0x13, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, - 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x63, 0x6f, 0x73, - 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, - 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x42, 0x0a, 0x10, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, - 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x22, 0x98, 0x01, 0x0a, 0x18, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x1d, 0x6e, 0x75, 0x6d, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x19, 0x6e, 0x75, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x49, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xfa, 0x04, 0x0a, 0x14, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6e, - 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, - 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, - 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x35, 0x0a, 0x08, 0x65, 0x6e, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4c, - 0x6f, 0x67, 0x49, 0x64, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x76, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, - 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0xac, 0x04, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, - 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, - 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x38, 0x0a, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x72, - 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x35, 0x0a, 0x08, 0x65, 0x6e, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x22, - 0x4a, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x18, - 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x74, 0x6f, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x22, 0x35, 0x0a, 0x19, - 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 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, 0x64, 0x0a, 0x1d, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, - 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 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, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5c, 0x0a, 0x21, 0x53, 0x65, 0x6e, - 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3a, 0x0a, 0x1e, 0x53, 0x65, 0x6e, 0x64, 0x57, - 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 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, 0x95, 0x03, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x3e, 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, 0x48, 0x00, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, - 0x65, 0x6e, 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, 0x48, 0x01, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x4d, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x65, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x45, 0x78, 0x70, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x6f, 0x73, 0x74, - 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x6f, - 0x73, 0x74, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x90, 0x02, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x13, 0x6d, 0x6f, - 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x6d, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x6e, - 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x14, 0x6c, 0x65, 0x61, 0x73, - 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x6e, - 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x17, 0x6d, 0x6f, 0x73, 0x74, - 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6e, - 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x15, 0x6d, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x64, - 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x9f, - 0x01, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x65, 0x61, 0x6d, 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, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x22, 0x4f, 0x0a, 0x1a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, - 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x4b, 0x38, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x22, 0x78, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x57, 0x0a, 0x1a, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x41, 0x0a, 0x17, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, - 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x1b, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x59, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x1a, 0x4c, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x52, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 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, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xaf, 0x02, 0x0a, 0x13, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x57, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x73, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x2d, + 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, + 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x18, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x70, + 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x40, + 0x0a, 0x1d, 0x6e, 0x75, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6e, 0x75, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x22, 0xfa, 0x04, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, + 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0d, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, + 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, + 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, + 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 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, 0x35, 0x0a, 0x08, 0x65, + 0x6e, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, + 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x76, 0x0a, + 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x6f, 0x67, + 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x04, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x6b, 0x0a, 0x14, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x69, 0x64, - 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, - 0x6f, 0x4b, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, - 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x0a, - 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x1a, 0x5b, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4b, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0d, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xfc, 0x01, 0x0a, 0x1c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x75, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, - 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 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, 0x2e, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xcc, 0x04, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6a, 0x0a, 0x18, 0x70, 0x6f, 0x64, 0x5f, 0x75, - 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x70, - 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x17, 0x70, 0x6f, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x5f, 0x74, - 0x6f, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, - 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x50, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x70, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, - 0x6f, 0x50, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x6b, 0x69, - 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0x5d, 0x0a, 0x19, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, - 0x6f, 0x4e, 0x6f, 0x64, 0x65, 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, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x18, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, - 0x50, 0x6f, 0x64, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xaa, 0x02, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x29, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, - 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, - 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6b, - 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4b, 0x69, 0x6e, - 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x53, 0x65, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x70, - 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x6a, 0x6f, 0x62, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x6a, 0x6f, 0x62, - 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 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, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x22, 0xf3, 0x01, 0x0a, - 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 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, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, - 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x70, 0x6f, - 0x64, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 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, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xb5, - 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, - 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x64, 0x67, 0x65, 0x52, - 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x22, 0x83, 0x02, 0x0a, 0x12, 0x4b, 0x38, 0x73, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, - 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x0f, 0x4b, 0x38, 0x73, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x64, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x4f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, - 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, - 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, 0x79, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 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, 0x27, 0x0a, 0x0f, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x75, - 0x62, 0x65, 0x6c, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, - 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, - 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, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x15, 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, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, + 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, + 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, + 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, + 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x48, - 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x75, - 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x75, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x29, 0x0a, - 0x10, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x17, - 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 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, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x22, 0x4a, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 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, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x74, + 0x6f, 0x22, 0x35, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 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, 0x64, 0x0a, 0x1d, 0x53, 0x65, 0x6e, 0x64, + 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 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, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5c, + 0x0a, 0x21, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3a, 0x0a, 0x1e, + 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 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, 0x95, 0x03, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x73, 0x12, 0x3e, 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, 0x35, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 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, 0xcc, 0x05, 0x0a, 0x18, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x98, 0x01, 0x0a, 0x26, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, - 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, - 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x46, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, - 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x12, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x3e, 0x0a, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, - 0x6e, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x49, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, - 0x58, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, - 0x0a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x3f, 0x0a, 0x09, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x80, 0x01, 0x0a, 0x25, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, - 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 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, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x23, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, - 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x15, 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, 0x16, 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, 0x96, 0x07, 0x0a, 0x24, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x80, 0x01, 0x0a, 0x18, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, - 0x6f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, - 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, - 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x12, 0x56, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xbb, 0x02, 0x0a, 0x09, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0xb7, 0x01, 0x0a, 0x29, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, - 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x23, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x56, - 0x0a, 0x28, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, - 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x75, 0x74, 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, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x1a, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x70, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 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, 0x48, + 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x15, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x78, + 0x70, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x70, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x33, 0x0a, 0x16, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x73, + 0x74, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x13, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x45, 0x78, + 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x4d, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, + 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x90, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x3c, 0x0a, 0x13, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, + 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x6d, 0x6f, 0x73, 0x74, + 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, + 0x14, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x6c, 0x65, 0x61, 0x73, 0x74, + 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, + 0x17, 0x6d, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x15, 0x6d, 0x6f, + 0x73, 0x74, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, + 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x4f, 0x0a, 0x1a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, + 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, + 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x4b, 0x38, 0x73, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x78, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x22, 0x57, 0x0a, 0x1a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x39, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x41, 0x0a, 0x17, 0x4b, 0x38, + 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc8, 0x02, + 0x0a, 0x1b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 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, 0x6b, 0x0a, 0x14, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x75, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4b, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4b, 0x69, + 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x1a, 0x5b, 0x0a, 0x16, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4b, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x14, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 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, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xcd, 0x01, 0x0a, 0x1f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 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, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfc, 0x01, 0x0a, 0x1c, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x18, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, + 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, + 0x69, 0x64, 0x54, 0x6f, 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, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x63, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x43, 0x0a, 0x16, + 0x41, 0x64, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x22, 0x66, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 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, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x46, 0x0a, 0x19, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x22, 0x2a, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x3f, 0x0a, + 0x0a, 0x54, 0x61, 0x67, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x74, + 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x3a, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xcc, 0x04, 0x0a, 0x10, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x6a, 0x0a, 0x18, 0x70, 0x6f, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x64, 0x55, + 0x69, 0x64, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x70, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4e, + 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x17, 0x70, + 0x6f, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x50, + 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x13, 0x70, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x50, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0x5d, 0x0a, + 0x19, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 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, 0x2a, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x18, + 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x54, 0x6f, 0x50, 0x6f, 0x64, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x50, 0x6f, + 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaa, 0x02, 0x0a, 0x0c, + 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x49, 0x6e, + 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x73, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, + 0x29, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x0d, + 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x4b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6b, 0x61, 0x72, 0x70, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x69, 0x64, 0x12, 0x3c, + 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0b, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x64, + 0x73, 0x12, 0x26, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, + 0x62, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 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, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xec, 0x06, 0x0a, 0x20, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x18, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x04, + 0x70, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, + 0x70, 0x6f, 0x64, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x53, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, + 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x50, + 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, + 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xb5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2d, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, + 0x2d, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x22, 0x83, + 0x02, 0x0a, 0x12, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x67, 0x0a, 0x0f, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x64, + 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x4f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x79, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 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, 0x27, 0x0a, 0x0f, 0x6b, + 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 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, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 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, 0x48, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, + 0x7a, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x75, 0x6e, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x17, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 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, 0x16, 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, 0xcc, 0x05, 0x0a, 0x18, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x6a, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x26, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, + 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x69, 0x6e, + 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x49, + 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x58, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x1a, 0x3f, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x80, 0x01, 0x0a, 0x25, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x75, 0x74, 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, 0x41, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 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, + 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x23, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 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, 0x16, 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, 0x96, + 0x07, 0x0a, 0x24, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x18, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x60, - 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0a, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, + 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x15, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, + 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x12, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, + 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x0a, 0x44, 0x61, + 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x1a, 0xa7, 0x02, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, + 0x1a, 0xbb, 0x02, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0xa7, 0x01, 0x0a, - 0x25, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, - 0x69, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, - 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1f, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0xb7, 0x01, 0x0a, + 0x29, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x74, + 0x6f, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x5f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x23, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x52, 0x0a, 0x24, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7d, 0x0a, 0x1a, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, - 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, 0x49, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x14, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 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, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6c, - 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x56, 0x0a, 0x28, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x81, + 0x01, 0x0a, 0x1a, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, + 0x74, 0x61, 0x70, 0x6f, 0x69, 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, + 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, + 0x6f, 0x4d, 0x65, 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, 0x25, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcd, 0x01, 0x0a, 0x1f, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, - 0x61, 0x6d, 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, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xe1, 0x01, 0x0a, - 0x14, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2b, - 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, - 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x22, 0xc1, 0x02, 0x0a, 0x1a, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3b, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0f, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0c, 0x6c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x32, 0x0a, 0x15, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x2a, 0xd5, 0x02, 0x0a, 0x17, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, - 0x4f, 0x56, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, - 0x12, 0x2b, 0x0a, 0x27, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, - 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, - 0x22, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, - 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x45, 0x47, - 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, + 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x15, 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, 0x16, 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, 0xec, 0x06, 0x0a, 0x20, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x18, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x15, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, + 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x6a, 0x0a, 0x12, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x54, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x60, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xa7, 0x02, 0x0a, 0x09, 0x44, 0x61, 0x74, + 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0xa7, 0x01, 0x0a, 0x25, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1f, 0x6e, + 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x52, + 0x0a, 0x24, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x54, 0x6f, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x7d, 0x0a, 0x1a, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, + 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 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, 0x49, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, + 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x53, 0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, + 0x4d, 0x65, 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, 0x25, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6c, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x17, 0x0a, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x0a, + 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, + 0x6f, 0x6e, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xc1, 0x02, 0x0a, 0x1a, 0x4c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x41, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x2a, 0xd5, 0x02, 0x0a, + 0x17, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x2b, 0x0a, 0x27, 0x47, 0x41, 0x4c, 0x41, + 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, - 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, - 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, - 0x43, 0x54, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x03, 0x12, 0x2d, - 0x0a, 0x29, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, - 0x53, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x04, 0x12, 0x2b, 0x0a, - 0x27, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, - 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4b, 0x38, 0x53, - 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, - 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x5a, 0x58, 0x50, 0x4f, 0x52, 0x54, - 0x45, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x2a, 0xb3, 0x04, 0x0a, - 0x14, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, - 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, - 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x22, 0x0a, 0x1e, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, - 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x41, 0x49, 0x4e, - 0x54, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, - 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, - 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, - 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x42, 0x59, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x43, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, - 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x47, - 0x50, 0x55, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x04, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, - 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, - 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x41, + 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x28, 0x0a, + 0x24, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, + 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x52, 0x4f, + 0x56, 0x49, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4c, 0x41, 0x58, + 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x43, 0x54, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, + 0x49, 0x5a, 0x45, 0x44, 0x10, 0x03, 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, + 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, + 0x4f, 0x55, 0x52, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, + 0x50, 0x4f, 0x56, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4b, 0x38, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, + 0x10, 0x05, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, + 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, + 0x59, 0x5f, 0x5a, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, + 0x4f, 0x4e, 0x10, 0x06, 0x2a, 0xb3, 0x04, 0x0a, 0x14, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, + 0x4f, 0x56, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x28, 0x0a, + 0x24, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x47, 0x41, 0x4c, 0x41, 0x58, + 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x47, + 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x2a, + 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x43, + 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x06, - 0x12, 0x23, 0x0a, 0x1f, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, - 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x45, 0x47, - 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, + 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x10, 0x04, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, + 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, + 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, + 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, + 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x23, 0x0a, 0x1f, 0x47, 0x41, 0x4c, 0x41, + 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x2e, 0x0a, + 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, + 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x12, 0x2a, 0x0a, + 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x43, 0x54, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x09, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, + 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, + 0x4f, 0x55, 0x52, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, - 0x59, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x5a, - 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, - 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, - 0x59, 0x5f, 0x50, 0x43, 0x54, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, - 0x09, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, - 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, - 0x53, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x0a, 0x12, 0x27, 0x0a, - 0x23, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0b, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, - 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x42, 0x59, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x0c, 0x2a, 0xca, 0x05, 0x0a, 0x18, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, - 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, - 0x2c, 0x0a, 0x28, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, - 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, - 0x25, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4b, 0x38, - 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4c, 0x41, - 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, - 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, - 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x42, 0x59, 0x5f, 0x50, 0x43, 0x54, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, - 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, - 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x42, 0x59, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, 0x4f, 0x55, 0x52, - 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, - 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x42, 0x59, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x05, 0x12, 0x2a, - 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, - 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4e, - 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x41, - 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x41, 0x46, 0x46, 0x49, 0x4e, - 0x49, 0x54, 0x59, 0x10, 0x07, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, + 0x59, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0b, 0x12, 0x2a, + 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0c, 0x2a, 0xca, 0x05, 0x0a, 0x18, 0x47, + 0x61, 0x6c, 0x61, 0x78, 0x79, 0x50, 0x4f, 0x56, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x41, 0x4c, 0x41, 0x58, + 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, - 0x54, 0x4f, 0x52, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, - 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x09, 0x12, 0x2c, 0x0a, - 0x28, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x4f, - 0x4c, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x0a, 0x12, 0x2f, 0x0a, 0x2b, 0x47, - 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x4f, - 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0b, 0x12, 0x30, 0x0a, 0x2c, - 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x2f, - 0x0a, 0x2b, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, - 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, - 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x0d, 0x12, - 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, - 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, - 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0e, 0x2a, - 0x75, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x18, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x33, 0x53, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x52, 0x4b, 0x45, 0x32, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4c, 0x55, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, - 0x4e, 0x45, 0x52, 0x44, 0x10, 0x03, 0x32, 0xde, 0x19, 0x0a, 0x0a, 0x4b, 0x38, 0x53, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x46, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x43, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x61, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x23, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, + 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4b, 0x38, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, + 0x12, 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, + 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, + 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, + 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x43, 0x54, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, + 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x5f, + 0x50, 0x45, 0x52, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, + 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x05, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, + 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, + 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x42, 0x59, 0x5f, 0x41, 0x46, 0x46, 0x49, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x07, 0x12, 0x2e, 0x0a, + 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x08, 0x12, 0x26, 0x0a, + 0x22, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x10, 0x09, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, + 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x4f, 0x4c, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x53, 0x10, 0x0a, 0x12, 0x2f, 0x0a, 0x2b, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, 0x4f, + 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x42, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4c, 0x41, + 0x53, 0x53, 0x10, 0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, 0x5f, 0x50, + 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, + 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x2f, 0x0a, 0x2b, 0x47, 0x41, 0x4c, 0x41, 0x58, 0x59, + 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x50, + 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x0d, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4c, 0x41, 0x58, + 0x59, 0x5f, 0x50, 0x4f, 0x56, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, + 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0e, 0x2a, 0x75, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x33, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4c, + 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4b, 0x45, 0x32, 0x10, + 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x44, 0x10, 0x03, 0x32, 0xba, + 0x1c, 0x0a, 0x0a, 0x4b, 0x38, 0x53, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4e, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, + 0x43, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, + 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x61, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x57, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, + 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, 0x74, 0x69, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x46, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, + 0x6f, 0x75, 0x70, 0x73, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, - 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, - 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, - 0x63, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x03, 0x88, 0x02, 0x01, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3a, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x1b, 0x47, 0x61, - 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, - 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x27, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, - 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x79, 0x0a, 0x1c, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x49, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1b, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x1b, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, + 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, + 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, + 0x79, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x1c, 0x47, + 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, - 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1c, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x17, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x67, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, - 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, - 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x21, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, - 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, - 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x64, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, + 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x58, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x16, 0x53, 0x65, + 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5b, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x38, 0x73, 0x57, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x6f, + 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, + 0x0a, 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, - 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xdc, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x6f, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xdc, 0x02, 0x0a, 0x16, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, - 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, - 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd5, 0x02, 0x0a, 0x12, 0x55, 0x74, 0x69, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, - 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, - 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x1c, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6d, 0x0a, 0x18, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x81, - 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x4b, - 0x38, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x69, 0x6e, - 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, - 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x06, 0x41, 0x70, 0x69, - 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x41, 0x70, 0x69, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x58, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd5, 0x02, 0x0a, 0x12, 0x55, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x55, 0x0a, 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x1c, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, + 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x81, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x42, 0x08, 0x4b, 0x38, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, 0x72, + 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x67, + 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x41, + 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10879,7 +11471,7 @@ func file_api_v1_k8s_proto_rawDescGZIP() []byte { } var file_api_v1_k8s_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_api_v1_k8s_proto_msgTypes = make([]protoimpl.MessageInfo, 135) +var file_api_v1_k8s_proto_msgTypes = make([]protoimpl.MessageInfo, 144) var file_api_v1_k8s_proto_goTypes = []interface{}{ (GalaxyPOVClusterGroupBy)(0), // 0: api.v1.GalaxyPOVClusterGroupBy (GalaxyPOVNodeGroupBy)(0), // 1: api.v1.GalaxyPOVNodeGroupBy @@ -10929,420 +11521,443 @@ var file_api_v1_k8s_proto_goTypes = []interface{}{ (*ClusterElement)(nil), // 45: api.v1.ClusterElement (*GetAllNamespacesRequest)(nil), // 46: api.v1.GetAllNamespacesRequest (*GetAllNamespacesResponse)(nil), // 47: api.v1.GetAllNamespacesResponse - (*GetAllWorkloadNamesRequest)(nil), // 48: api.v1.GetAllWorkloadNamesRequest - (*GetAllWorkloadNamesResponse)(nil), // 49: api.v1.GetAllWorkloadNamesResponse - (*GetAllWorkloadLabelsRequest)(nil), // 50: api.v1.GetAllWorkloadLabelsRequest - (*GetAllWorkloadLabelsResponse)(nil), // 51: api.v1.GetAllWorkloadLabelsResponse - (*GetAllNodeGroupNamesRequest)(nil), // 52: api.v1.GetAllNodeGroupNamesRequest - (*GetAllNodeGroupNamesResponse)(nil), // 53: api.v1.GetAllNodeGroupNamesResponse - (*Cluster)(nil), // 54: api.v1.Cluster - (*OperatorInfo)(nil), // 55: api.v1.OperatorInfo - (*Container)(nil), // 56: api.v1.Container - (*GetLatestOperatorVersionRequest)(nil), // 57: api.v1.GetLatestOperatorVersionRequest - (*GetLatestOperatorVersionResponse)(nil), // 58: api.v1.GetLatestOperatorVersionResponse - (*GalaxyGetClusterPerspectiveRequest)(nil), // 59: api.v1.GalaxyGetClusterPerspectiveRequest - (*GalaxyGetClusterPerspectiveResponse)(nil), // 60: api.v1.GalaxyGetClusterPerspectiveResponse - (*GalaxyClusterGroup)(nil), // 61: api.v1.GalaxyClusterGroup - (*GalaxyGetNodePerspectiveRequest)(nil), // 62: api.v1.GalaxyGetNodePerspectiveRequest - (*GalaxyGetNodePerspectiveResponse)(nil), // 63: api.v1.GalaxyGetNodePerspectiveResponse - (*GalaxyNodeGroup)(nil), // 64: api.v1.GalaxyNodeGroup - (*GalaxyGetWorkloadPerspectiveRequest)(nil), // 65: api.v1.GalaxyGetWorkloadPerspectiveRequest - (*GalaxyGetWorkloadPerspectiveResponse)(nil), // 66: api.v1.GalaxyGetWorkloadPerspectiveResponse - (*GalaxyWorkloadGroup)(nil), // 67: api.v1.GalaxyWorkloadGroup - (*PerspectiveDatapointOpts)(nil), // 68: api.v1.PerspectiveDatapointOpts - (*ListAuditLogsRequest)(nil), // 69: api.v1.ListAuditLogsRequest - (*ListAuditLogsResponse)(nil), // 70: api.v1.ListAuditLogsResponse - (*ListAuditLogOriginatorsRequest)(nil), // 71: api.v1.ListAuditLogOriginatorsRequest - (*ListAuditLogOriginatorsResponse)(nil), // 72: api.v1.ListAuditLogOriginatorsResponse - (*SendWorkloadEmailRequest)(nil), // 73: api.v1.SendWorkloadEmailRequest - (*SendWorkloadEmailResponse)(nil), // 74: api.v1.SendWorkloadEmailResponse - (*SendWeeklySummaryEmailRequest)(nil), // 75: api.v1.SendWeeklySummaryEmailRequest - (*SendWeeklySummaryEmailRequestData)(nil), // 76: api.v1.SendWeeklySummaryEmailRequestData - (*SendWeeklySummaryEmailResponse)(nil), // 77: api.v1.SendWeeklySummaryEmailResponse - (*GetClustersNodeInfoRequest)(nil), // 78: api.v1.GetClustersNodeInfoRequest - (*GetClustersNodeInfoResponse)(nil), // 79: api.v1.GetClustersNodeInfoResponse - (*SearchK8SResourcesRequest)(nil), // 80: api.v1.SearchK8sResourcesRequest - (*SearchK8SResourcesResponse)(nil), // 81: api.v1.SearchK8sResourcesResponse - (*K8SSearchResult)(nil), // 82: api.v1.K8sSearchResult - (*SearchK8SWorkloadsRequest)(nil), // 83: api.v1.SearchK8sWorkloadsRequest - (*SearchK8SWorkloadsResponse)(nil), // 84: api.v1.SearchK8sWorkloadsResponse - (*K8SWorkloadSearchResult)(nil), // 85: api.v1.K8sWorkloadSearchResult - (*MetadataForWorkloadsRequest)(nil), // 86: api.v1.MetadataForWorkloadsRequest - (*MetadataForWorkloadsResponse)(nil), // 87: api.v1.MetadataForWorkloadsResponse - (*WorkloadMetadata)(nil), // 88: api.v1.WorkloadMetadata - (*PodMetadata)(nil), // 89: api.v1.PodMetadata - (*NodeMetadata)(nil), // 90: api.v1.NodeMetadata - (*GetRelatedResourcesRequest)(nil), // 91: api.v1.GetRelatedResourcesRequest - (*GetWorkloadPodHistoryResponse)(nil), // 92: api.v1.GetWorkloadPodHistoryResponse - (*JobHistory)(nil), // 93: api.v1.JobHistory - (*ReplicaSetHistory)(nil), // 94: api.v1.ReplicaSetHistory - (*PodHistory)(nil), // 95: api.v1.PodHistory - (*GetRelatedResourcesResponse)(nil), // 96: api.v1.GetRelatedResourcesResponse - (*K8SRelatedResource)(nil), // 97: api.v1.K8sRelatedResource - (*K8SResourceNode)(nil), // 98: api.v1.K8sResourceNode - (*K8SResourceEdge)(nil), // 99: api.v1.K8sResourceEdge - (*GetClusterTypeRequest)(nil), // 100: api.v1.GetClusterTypeRequest - (*GetClusterTypeResponse)(nil), // 101: api.v1.GetClusterTypeResponse - (*GetWorkloadsStatsRequest)(nil), // 102: api.v1.GetWorkloadsStatsRequest - (*GetWorkloadsStatsResponse)(nil), // 103: api.v1.GetWorkloadsStatsResponse - (*DailyUtilizationRequest)(nil), // 104: api.v1.DailyUtilizationRequest - (*DailyUtilizationResponse)(nil), // 105: api.v1.DailyUtilizationResponse - (*DailyUtilizationInstanceTypeRequest)(nil), // 106: api.v1.DailyUtilizationInstanceTypeRequest - (*DailyUtilizationInstanceTypeResponse)(nil), // 107: api.v1.DailyUtilizationInstanceTypeResponse - (*DailyUtilizationNodeTypeRequest)(nil), // 108: api.v1.DailyUtilizationNodeTypeRequest - (*DailyUtilizationNodeTypeResponse)(nil), // 109: api.v1.DailyUtilizationNodeTypeResponse - (*LookupNodeInstanceRequest)(nil), // 110: api.v1.LookupNodeInstanceRequest - (*InstanceLookupParams)(nil), // 111: api.v1.InstanceLookupParams - (*LookupNodeInstanceResponse)(nil), // 112: api.v1.LookupNodeInstanceResponse - nil, // 113: api.v1.GetAllNodeGroupsResponse.NodeGroupMapEntry - (*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics)(nil), // 114: api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics - nil, // 115: api.v1.GetNodeGroupsUtilizationResponse.NodeGroupToUtilMetricsEntry - nil, // 116: api.v1.GetNodeGroupsUtilizationResponse.InstanceTypeToUtilMetricsEntry - nil, // 117: api.v1.GetNodeGroupsUtilizationResponse.ReservationTypeToUtilMetricsEntry - nil, // 118: api.v1.GetNodeGroupsUtilizationResponse.LogicalAzToUtilMetricsEntry - nil, // 119: api.v1.GalaxyGetWorkloadPerspectiveResponse.ClustersEntry - nil, // 120: api.v1.GalaxyGetWorkloadPerspectiveResponse.WorkloadsEntry - nil, // 121: api.v1.MetadataForWorkloadsRequest.WorkloadUidToKindEntry - nil, // 122: api.v1.MetadataForWorkloadsResponse.WorkloadUidToMetadataEntry - nil, // 123: api.v1.WorkloadMetadata.PodUidToNodeMetadataEntry - nil, // 124: api.v1.WorkloadMetadata.PodUidToPodMetadataEntry - (*DailyUtilizationResponse_Datapoints)(nil), // 125: api.v1.DailyUtilizationResponse.Datapoints - (*DailyUtilizationResponse_Datapoint)(nil), // 126: api.v1.DailyUtilizationResponse.Datapoint - nil, // 127: api.v1.DailyUtilizationResponse.ClusterIdToDailyTotalCoreMinutesEntry - nil, // 128: api.v1.DailyUtilizationResponse.ClusterIdToMetaEntry - (*DailyUtilizationInstanceTypeResponse_Datapoints)(nil), // 129: api.v1.DailyUtilizationInstanceTypeResponse.Datapoints - (*DailyUtilizationInstanceTypeResponse_Datapoint)(nil), // 130: api.v1.DailyUtilizationInstanceTypeResponse.Datapoint - nil, // 131: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToDatapointsEntry - nil, // 132: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToMetaEntry - nil, // 133: api.v1.DailyUtilizationInstanceTypeResponse.Datapoint.InstanceTypeToDailyTotalCoreMinutesEntry - (*DailyUtilizationNodeTypeResponse_Datapoints)(nil), // 134: api.v1.DailyUtilizationNodeTypeResponse.Datapoints - (*DailyUtilizationNodeTypeResponse_Datapoint)(nil), // 135: api.v1.DailyUtilizationNodeTypeResponse.Datapoint - nil, // 136: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToDatapointsEntry - nil, // 137: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToMetaEntry - nil, // 138: api.v1.DailyUtilizationNodeTypeResponse.Datapoint.NodeTypeToDailyTotalCoreMinutesEntry - (*timestamppb.Timestamp)(nil), // 139: google.protobuf.Timestamp - (*WorkloadFilters)(nil), // 140: api.v1.WorkloadFilters - (K8SObjectKind)(0), // 141: api.v1.K8sObjectKind - (*Pagination)(nil), // 142: api.v1.Pagination - (*WorkloadItem)(nil), // 143: api.v1.WorkloadItem - (*NodeGroup)(nil), // 144: api.v1.NodeGroup - (*money.Money)(nil), // 145: google.type.Money - (*ResourceMetrics)(nil), // 146: api.v1.ResourceMetrics - (*CostInfo)(nil), // 147: api.v1.CostInfo - (*NodeInfo)(nil), // 148: api.v1.NodeInfo - (*CostDataPoint)(nil), // 149: api.v1.CostDataPoint - (*ResourceDataPoint)(nil), // 150: api.v1.ResourceDataPoint - (*Node)(nil), // 151: api.v1.Node - (*ResourceSummary)(nil), // 152: api.v1.ResourceSummary - (*ForecastResourceMetrics)(nil), // 153: api.v1.ForecastResourceMetrics - (*AuditLogEntry)(nil), // 154: api.v1.AuditLogEntry - (*Instance)(nil), // 155: api.v1.Instance + (*SearchNamespacesByClusterRequest)(nil), // 48: api.v1.SearchNamespacesByClusterRequest + (*SearchNamespacesByClusterResponse)(nil), // 49: api.v1.SearchNamespacesByClusterResponse + (*GetAllWorkloadNamesRequest)(nil), // 50: api.v1.GetAllWorkloadNamesRequest + (*GetAllWorkloadNamesResponse)(nil), // 51: api.v1.GetAllWorkloadNamesResponse + (*GetAllWorkloadLabelsRequest)(nil), // 52: api.v1.GetAllWorkloadLabelsRequest + (*GetAllWorkloadLabelsResponse)(nil), // 53: api.v1.GetAllWorkloadLabelsResponse + (*GetAllNodeGroupNamesRequest)(nil), // 54: api.v1.GetAllNodeGroupNamesRequest + (*GetAllNodeGroupNamesResponse)(nil), // 55: api.v1.GetAllNodeGroupNamesResponse + (*Cluster)(nil), // 56: api.v1.Cluster + (*OperatorInfo)(nil), // 57: api.v1.OperatorInfo + (*Container)(nil), // 58: api.v1.Container + (*GetLatestOperatorVersionRequest)(nil), // 59: api.v1.GetLatestOperatorVersionRequest + (*GetLatestOperatorVersionResponse)(nil), // 60: api.v1.GetLatestOperatorVersionResponse + (*GalaxyGetClusterPerspectiveRequest)(nil), // 61: api.v1.GalaxyGetClusterPerspectiveRequest + (*GalaxyGetClusterPerspectiveResponse)(nil), // 62: api.v1.GalaxyGetClusterPerspectiveResponse + (*GalaxyClusterGroup)(nil), // 63: api.v1.GalaxyClusterGroup + (*GalaxyGetNodePerspectiveRequest)(nil), // 64: api.v1.GalaxyGetNodePerspectiveRequest + (*GalaxyGetNodePerspectiveResponse)(nil), // 65: api.v1.GalaxyGetNodePerspectiveResponse + (*GalaxyNodeGroup)(nil), // 66: api.v1.GalaxyNodeGroup + (*GalaxyGetWorkloadPerspectiveRequest)(nil), // 67: api.v1.GalaxyGetWorkloadPerspectiveRequest + (*GalaxyGetWorkloadPerspectiveResponse)(nil), // 68: api.v1.GalaxyGetWorkloadPerspectiveResponse + (*GalaxyWorkloadGroup)(nil), // 69: api.v1.GalaxyWorkloadGroup + (*PerspectiveDatapointOpts)(nil), // 70: api.v1.PerspectiveDatapointOpts + (*ListAuditLogsRequest)(nil), // 71: api.v1.ListAuditLogsRequest + (*ListAuditLogsResponse)(nil), // 72: api.v1.ListAuditLogsResponse + (*ListAuditLogOriginatorsRequest)(nil), // 73: api.v1.ListAuditLogOriginatorsRequest + (*ListAuditLogOriginatorsResponse)(nil), // 74: api.v1.ListAuditLogOriginatorsResponse + (*SendWorkloadEmailRequest)(nil), // 75: api.v1.SendWorkloadEmailRequest + (*SendWorkloadEmailResponse)(nil), // 76: api.v1.SendWorkloadEmailResponse + (*SendWeeklySummaryEmailRequest)(nil), // 77: api.v1.SendWeeklySummaryEmailRequest + (*SendWeeklySummaryEmailRequestData)(nil), // 78: api.v1.SendWeeklySummaryEmailRequestData + (*SendWeeklySummaryEmailResponse)(nil), // 79: api.v1.SendWeeklySummaryEmailResponse + (*GetClustersNodeInfoRequest)(nil), // 80: api.v1.GetClustersNodeInfoRequest + (*GetClustersNodeInfoResponse)(nil), // 81: api.v1.GetClustersNodeInfoResponse + (*SearchK8SResourcesRequest)(nil), // 82: api.v1.SearchK8sResourcesRequest + (*SearchK8SResourcesResponse)(nil), // 83: api.v1.SearchK8sResourcesResponse + (*K8SSearchResult)(nil), // 84: api.v1.K8sSearchResult + (*SearchK8SWorkloadsRequest)(nil), // 85: api.v1.SearchK8sWorkloadsRequest + (*SearchK8SWorkloadsResponse)(nil), // 86: api.v1.SearchK8sWorkloadsResponse + (*K8SWorkloadSearchResult)(nil), // 87: api.v1.K8sWorkloadSearchResult + (*MetadataForWorkloadsRequest)(nil), // 88: api.v1.MetadataForWorkloadsRequest + (*MetadataForWorkloadsResponse)(nil), // 89: api.v1.MetadataForWorkloadsResponse + (*AddClusterTagsRequest)(nil), // 90: api.v1.AddClusterTagsRequest + (*AddClusterTagsResponse)(nil), // 91: api.v1.AddClusterTagsResponse + (*RemoveClusterTagsRequest)(nil), // 92: api.v1.RemoveClusterTagsRequest + (*RemoveClusterTagsResponse)(nil), // 93: api.v1.RemoveClusterTagsResponse + (*ListTagsRequest)(nil), // 94: api.v1.ListTagsRequest + (*TagSummary)(nil), // 95: api.v1.TagSummary + (*ListTagsResponse)(nil), // 96: api.v1.ListTagsResponse + (*WorkloadMetadata)(nil), // 97: api.v1.WorkloadMetadata + (*PodMetadata)(nil), // 98: api.v1.PodMetadata + (*NodeMetadata)(nil), // 99: api.v1.NodeMetadata + (*GetRelatedResourcesRequest)(nil), // 100: api.v1.GetRelatedResourcesRequest + (*GetWorkloadPodHistoryResponse)(nil), // 101: api.v1.GetWorkloadPodHistoryResponse + (*JobHistory)(nil), // 102: api.v1.JobHistory + (*ReplicaSetHistory)(nil), // 103: api.v1.ReplicaSetHistory + (*PodHistory)(nil), // 104: api.v1.PodHistory + (*GetRelatedResourcesResponse)(nil), // 105: api.v1.GetRelatedResourcesResponse + (*K8SRelatedResource)(nil), // 106: api.v1.K8sRelatedResource + (*K8SResourceNode)(nil), // 107: api.v1.K8sResourceNode + (*K8SResourceEdge)(nil), // 108: api.v1.K8sResourceEdge + (*GetClusterTypeRequest)(nil), // 109: api.v1.GetClusterTypeRequest + (*GetClusterTypeResponse)(nil), // 110: api.v1.GetClusterTypeResponse + (*GetWorkloadsStatsRequest)(nil), // 111: api.v1.GetWorkloadsStatsRequest + (*GetWorkloadsStatsResponse)(nil), // 112: api.v1.GetWorkloadsStatsResponse + (*DailyUtilizationRequest)(nil), // 113: api.v1.DailyUtilizationRequest + (*DailyUtilizationResponse)(nil), // 114: api.v1.DailyUtilizationResponse + (*DailyUtilizationInstanceTypeRequest)(nil), // 115: api.v1.DailyUtilizationInstanceTypeRequest + (*DailyUtilizationInstanceTypeResponse)(nil), // 116: api.v1.DailyUtilizationInstanceTypeResponse + (*DailyUtilizationNodeTypeRequest)(nil), // 117: api.v1.DailyUtilizationNodeTypeRequest + (*DailyUtilizationNodeTypeResponse)(nil), // 118: api.v1.DailyUtilizationNodeTypeResponse + (*LookupNodeInstanceRequest)(nil), // 119: api.v1.LookupNodeInstanceRequest + (*InstanceLookupParams)(nil), // 120: api.v1.InstanceLookupParams + (*LookupNodeInstanceResponse)(nil), // 121: api.v1.LookupNodeInstanceResponse + nil, // 122: api.v1.GetAllNodeGroupsResponse.NodeGroupMapEntry + (*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics)(nil), // 123: api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics + nil, // 124: api.v1.GetNodeGroupsUtilizationResponse.NodeGroupToUtilMetricsEntry + nil, // 125: api.v1.GetNodeGroupsUtilizationResponse.InstanceTypeToUtilMetricsEntry + nil, // 126: api.v1.GetNodeGroupsUtilizationResponse.ReservationTypeToUtilMetricsEntry + nil, // 127: api.v1.GetNodeGroupsUtilizationResponse.LogicalAzToUtilMetricsEntry + nil, // 128: api.v1.GalaxyGetWorkloadPerspectiveResponse.ClustersEntry + nil, // 129: api.v1.GalaxyGetWorkloadPerspectiveResponse.WorkloadsEntry + nil, // 130: api.v1.MetadataForWorkloadsRequest.WorkloadUidToKindEntry + nil, // 131: api.v1.MetadataForWorkloadsResponse.WorkloadUidToMetadataEntry + nil, // 132: api.v1.WorkloadMetadata.PodUidToNodeMetadataEntry + nil, // 133: api.v1.WorkloadMetadata.PodUidToPodMetadataEntry + (*DailyUtilizationResponse_Datapoints)(nil), // 134: api.v1.DailyUtilizationResponse.Datapoints + (*DailyUtilizationResponse_Datapoint)(nil), // 135: api.v1.DailyUtilizationResponse.Datapoint + nil, // 136: api.v1.DailyUtilizationResponse.ClusterIdToDailyTotalCoreMinutesEntry + nil, // 137: api.v1.DailyUtilizationResponse.ClusterIdToMetaEntry + (*DailyUtilizationInstanceTypeResponse_Datapoints)(nil), // 138: api.v1.DailyUtilizationInstanceTypeResponse.Datapoints + (*DailyUtilizationInstanceTypeResponse_Datapoint)(nil), // 139: api.v1.DailyUtilizationInstanceTypeResponse.Datapoint + nil, // 140: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToDatapointsEntry + nil, // 141: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToMetaEntry + nil, // 142: api.v1.DailyUtilizationInstanceTypeResponse.Datapoint.InstanceTypeToDailyTotalCoreMinutesEntry + (*DailyUtilizationNodeTypeResponse_Datapoints)(nil), // 143: api.v1.DailyUtilizationNodeTypeResponse.Datapoints + (*DailyUtilizationNodeTypeResponse_Datapoint)(nil), // 144: api.v1.DailyUtilizationNodeTypeResponse.Datapoint + nil, // 145: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToDatapointsEntry + nil, // 146: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToMetaEntry + nil, // 147: api.v1.DailyUtilizationNodeTypeResponse.Datapoint.NodeTypeToDailyTotalCoreMinutesEntry + (*timestamppb.Timestamp)(nil), // 148: google.protobuf.Timestamp + (*WorkloadFilters)(nil), // 149: api.v1.WorkloadFilters + (K8SObjectKind)(0), // 150: api.v1.K8sObjectKind + (*Pagination)(nil), // 151: api.v1.Pagination + (*WorkloadItem)(nil), // 152: api.v1.WorkloadItem + (*NodeGroup)(nil), // 153: api.v1.NodeGroup + (*money.Money)(nil), // 154: google.type.Money + (*ResourceMetrics)(nil), // 155: api.v1.ResourceMetrics + (*CostInfo)(nil), // 156: api.v1.CostInfo + (*NodeInfo)(nil), // 157: api.v1.NodeInfo + (*CostDataPoint)(nil), // 158: api.v1.CostDataPoint + (*ResourceDataPoint)(nil), // 159: api.v1.ResourceDataPoint + (*Node)(nil), // 160: api.v1.Node + (*ResourceSummary)(nil), // 161: api.v1.ResourceSummary + (*ForecastResourceMetrics)(nil), // 162: api.v1.ForecastResourceMetrics + (*AuditLogEntry)(nil), // 163: api.v1.AuditLogEntry + (*Instance)(nil), // 164: api.v1.Instance } var file_api_v1_k8s_proto_depIdxs = []int32{ - 139, // 0: api.v1.GetNodeRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 1: api.v1.GetNodeRequest.end_time:type_name -> google.protobuf.Timestamp - 139, // 2: api.v1.GetWorkloadPodHistoryRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 3: api.v1.GetWorkloadPodHistoryRequest.end_time:type_name -> google.protobuf.Timestamp - 139, // 4: api.v1.GetNodeGroupRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 5: api.v1.GetNodeGroupRequest.end_time:type_name -> google.protobuf.Timestamp - 139, // 6: api.v1.GetWorkloadsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 7: api.v1.GetWorkloadsRequest.end_time:type_name -> google.protobuf.Timestamp - 140, // 8: api.v1.GetWorkloadsRequest.filters:type_name -> api.v1.WorkloadFilters - 141, // 9: api.v1.GetResourcesRequest.kind:type_name -> api.v1.K8sObjectKind - 142, // 10: api.v1.GetResourcesRequest.pagination:type_name -> api.v1.Pagination - 142, // 11: api.v1.GetPodsRequest.pagination:type_name -> api.v1.Pagination - 139, // 12: api.v1.GetPodsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 13: api.v1.GetPodsRequest.end_time:type_name -> google.protobuf.Timestamp - 143, // 14: api.v1.GetPodsResponse.workload_items:type_name -> api.v1.WorkloadItem - 142, // 15: api.v1.GetPodsResponse.pagination:type_name -> api.v1.Pagination - 139, // 16: api.v1.GetWorkloadRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 17: api.v1.GetWorkloadRequest.end_time:type_name -> google.protobuf.Timestamp - 139, // 18: api.v1.GetClustersRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 19: api.v1.GetClustersRequest.end_time:type_name -> google.protobuf.Timestamp - 142, // 20: api.v1.ListClustersRequest.pagination:type_name -> api.v1.Pagination - 139, // 21: api.v1.GetClusterRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 22: api.v1.GetClusterRequest.end_time:type_name -> google.protobuf.Timestamp - 54, // 23: api.v1.UpdateClusterResponse.cluster:type_name -> api.v1.Cluster - 143, // 24: api.v1.GetResourcesResponse.workload_items:type_name -> api.v1.WorkloadItem - 142, // 25: api.v1.GetResourcesResponse.pagination:type_name -> api.v1.Pagination - 54, // 26: api.v1.CreateClusterResponse.cluster:type_name -> api.v1.Cluster - 139, // 27: api.v1.GetNodeGroupsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 28: api.v1.GetNodeGroupsRequest.end_time:type_name -> google.protobuf.Timestamp - 144, // 29: api.v1.GetNodeGroupsResponse.node_groups:type_name -> api.v1.NodeGroup - 113, // 30: api.v1.GetAllNodeGroupsResponse.node_group_map:type_name -> api.v1.GetAllNodeGroupsResponse.NodeGroupMapEntry - 144, // 31: api.v1.NodeGroupSet.node_groups:type_name -> api.v1.NodeGroup - 139, // 32: api.v1.GetNodeGroupsUtilizationRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 33: api.v1.GetNodeGroupsUtilizationRequest.end_time:type_name -> google.protobuf.Timestamp - 115, // 34: api.v1.GetNodeGroupsUtilizationResponse.node_group_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.NodeGroupToUtilMetricsEntry - 116, // 35: api.v1.GetNodeGroupsUtilizationResponse.instance_type_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.InstanceTypeToUtilMetricsEntry - 117, // 36: api.v1.GetNodeGroupsUtilizationResponse.reservation_type_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ReservationTypeToUtilMetricsEntry - 118, // 37: api.v1.GetNodeGroupsUtilizationResponse.logical_az_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.LogicalAzToUtilMetricsEntry - 145, // 38: api.v1.NodeGroupMetric.hourly_cost:type_name -> google.type.Money - 145, // 39: api.v1.NodeGroupMetric.hourly_cpu_cost:type_name -> google.type.Money - 145, // 40: api.v1.NodeGroupMetric.hourly_memory_cost:type_name -> google.type.Money - 145, // 41: api.v1.NodeGroupMetric.hourly_gpu_cost:type_name -> google.type.Money - 139, // 42: api.v1.NodeGroupMetric.bucket_time:type_name -> google.protobuf.Timestamp - 144, // 43: api.v1.GetNodeGroupResponse.node_group:type_name -> api.v1.NodeGroup - 54, // 44: api.v1.GetClusterResponse.cluster:type_name -> api.v1.Cluster - 54, // 45: api.v1.GetClustersResponse.clusters:type_name -> api.v1.Cluster - 146, // 46: api.v1.GetClustersResponse.resource_metrics:type_name -> api.v1.ResourceMetrics - 147, // 47: api.v1.GetClustersResponse.cost_info:type_name -> api.v1.CostInfo - 148, // 48: api.v1.GetClustersResponse.node_info:type_name -> api.v1.NodeInfo - 149, // 49: api.v1.GetClustersResponse.cost_data_points:type_name -> api.v1.CostDataPoint - 150, // 50: api.v1.GetClustersResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint - 54, // 51: api.v1.ListClustersResponse.clusters:type_name -> api.v1.Cluster - 142, // 52: api.v1.ListClustersResponse.pagination:type_name -> api.v1.Pagination - 151, // 53: api.v1.GetNodeResponse.node:type_name -> api.v1.Node - 146, // 54: api.v1.GetNodeResponse.resource_metrics:type_name -> api.v1.ResourceMetrics - 147, // 55: api.v1.GetNodeResponse.cost_info:type_name -> api.v1.CostInfo - 149, // 56: api.v1.GetNodeResponse.cost_data_points:type_name -> api.v1.CostDataPoint - 150, // 57: api.v1.GetNodeResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint - 143, // 58: api.v1.GetWorkloadsResponse.workload_items:type_name -> api.v1.WorkloadItem - 147, // 59: api.v1.GetWorkloadsResponse.cost_info:type_name -> api.v1.CostInfo - 146, // 60: api.v1.GetWorkloadsResponse.resource_metrics:type_name -> api.v1.ResourceMetrics - 152, // 61: api.v1.GetWorkloadsResponse.resource_summary:type_name -> api.v1.ResourceSummary - 143, // 62: api.v1.GetWorkloadResponse.workload_item:type_name -> api.v1.WorkloadItem - 147, // 63: api.v1.GetWorkloadResponse.cost_info:type_name -> api.v1.CostInfo - 146, // 64: api.v1.GetWorkloadResponse.resource_metrics:type_name -> api.v1.ResourceMetrics - 152, // 65: api.v1.GetWorkloadResponse.resource_summary:type_name -> api.v1.ResourceSummary - 149, // 66: api.v1.GetWorkloadResponse.cost_data_points:type_name -> api.v1.CostDataPoint - 150, // 67: api.v1.GetWorkloadResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint - 139, // 68: api.v1.GetForecastWorkloadsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 69: api.v1.GetForecastWorkloadsRequest.end_time:type_name -> google.protobuf.Timestamp - 143, // 70: api.v1.GetForecastWorkloadsResponse.workload_items:type_name -> api.v1.WorkloadItem - 147, // 71: api.v1.GetForecastWorkloadsResponse.cost_info:type_name -> api.v1.CostInfo - 153, // 72: api.v1.GetForecastWorkloadsResponse.resource_metrics:type_name -> api.v1.ForecastResourceMetrics - 152, // 73: api.v1.GetForecastWorkloadsResponse.resource_summary:type_name -> api.v1.ResourceSummary - 139, // 74: api.v1.GetForecastWorkloadRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 75: api.v1.GetForecastWorkloadRequest.end_time:type_name -> google.protobuf.Timestamp - 143, // 76: api.v1.GetForecastWorkloadResponse.workload_item:type_name -> api.v1.WorkloadItem - 147, // 77: api.v1.GetForecastWorkloadResponse.cost_info:type_name -> api.v1.CostInfo - 153, // 78: api.v1.GetForecastWorkloadResponse.resource_metrics:type_name -> api.v1.ForecastResourceMetrics - 152, // 79: api.v1.GetForecastWorkloadResponse.resource_summary:type_name -> api.v1.ResourceSummary - 149, // 80: api.v1.GetForecastWorkloadResponse.cost_data_points:type_name -> api.v1.CostDataPoint - 150, // 81: api.v1.GetForecastWorkloadResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint - 54, // 82: api.v1.GetClusterMetadataResponse.clusters:type_name -> api.v1.Cluster + 148, // 0: api.v1.GetNodeRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 1: api.v1.GetNodeRequest.end_time:type_name -> google.protobuf.Timestamp + 148, // 2: api.v1.GetWorkloadPodHistoryRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 3: api.v1.GetWorkloadPodHistoryRequest.end_time:type_name -> google.protobuf.Timestamp + 148, // 4: api.v1.GetNodeGroupRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 5: api.v1.GetNodeGroupRequest.end_time:type_name -> google.protobuf.Timestamp + 148, // 6: api.v1.GetWorkloadsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 7: api.v1.GetWorkloadsRequest.end_time:type_name -> google.protobuf.Timestamp + 149, // 8: api.v1.GetWorkloadsRequest.filters:type_name -> api.v1.WorkloadFilters + 150, // 9: api.v1.GetResourcesRequest.kind:type_name -> api.v1.K8sObjectKind + 151, // 10: api.v1.GetResourcesRequest.pagination:type_name -> api.v1.Pagination + 151, // 11: api.v1.GetPodsRequest.pagination:type_name -> api.v1.Pagination + 148, // 12: api.v1.GetPodsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 13: api.v1.GetPodsRequest.end_time:type_name -> google.protobuf.Timestamp + 152, // 14: api.v1.GetPodsResponse.workload_items:type_name -> api.v1.WorkloadItem + 151, // 15: api.v1.GetPodsResponse.pagination:type_name -> api.v1.Pagination + 148, // 16: api.v1.GetWorkloadRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 17: api.v1.GetWorkloadRequest.end_time:type_name -> google.protobuf.Timestamp + 148, // 18: api.v1.GetClustersRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 19: api.v1.GetClustersRequest.end_time:type_name -> google.protobuf.Timestamp + 151, // 20: api.v1.ListClustersRequest.pagination:type_name -> api.v1.Pagination + 148, // 21: api.v1.GetClusterRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 22: api.v1.GetClusterRequest.end_time:type_name -> google.protobuf.Timestamp + 56, // 23: api.v1.UpdateClusterResponse.cluster:type_name -> api.v1.Cluster + 152, // 24: api.v1.GetResourcesResponse.workload_items:type_name -> api.v1.WorkloadItem + 151, // 25: api.v1.GetResourcesResponse.pagination:type_name -> api.v1.Pagination + 56, // 26: api.v1.CreateClusterResponse.cluster:type_name -> api.v1.Cluster + 148, // 27: api.v1.GetNodeGroupsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 28: api.v1.GetNodeGroupsRequest.end_time:type_name -> google.protobuf.Timestamp + 153, // 29: api.v1.GetNodeGroupsResponse.node_groups:type_name -> api.v1.NodeGroup + 122, // 30: api.v1.GetAllNodeGroupsResponse.node_group_map:type_name -> api.v1.GetAllNodeGroupsResponse.NodeGroupMapEntry + 153, // 31: api.v1.NodeGroupSet.node_groups:type_name -> api.v1.NodeGroup + 148, // 32: api.v1.GetNodeGroupsUtilizationRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 33: api.v1.GetNodeGroupsUtilizationRequest.end_time:type_name -> google.protobuf.Timestamp + 124, // 34: api.v1.GetNodeGroupsUtilizationResponse.node_group_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.NodeGroupToUtilMetricsEntry + 125, // 35: api.v1.GetNodeGroupsUtilizationResponse.instance_type_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.InstanceTypeToUtilMetricsEntry + 126, // 36: api.v1.GetNodeGroupsUtilizationResponse.reservation_type_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ReservationTypeToUtilMetricsEntry + 127, // 37: api.v1.GetNodeGroupsUtilizationResponse.logical_az_to_util_metrics:type_name -> api.v1.GetNodeGroupsUtilizationResponse.LogicalAzToUtilMetricsEntry + 154, // 38: api.v1.NodeGroupMetric.hourly_cost:type_name -> google.type.Money + 154, // 39: api.v1.NodeGroupMetric.hourly_cpu_cost:type_name -> google.type.Money + 154, // 40: api.v1.NodeGroupMetric.hourly_memory_cost:type_name -> google.type.Money + 154, // 41: api.v1.NodeGroupMetric.hourly_gpu_cost:type_name -> google.type.Money + 148, // 42: api.v1.NodeGroupMetric.bucket_time:type_name -> google.protobuf.Timestamp + 153, // 43: api.v1.GetNodeGroupResponse.node_group:type_name -> api.v1.NodeGroup + 56, // 44: api.v1.GetClusterResponse.cluster:type_name -> api.v1.Cluster + 56, // 45: api.v1.GetClustersResponse.clusters:type_name -> api.v1.Cluster + 155, // 46: api.v1.GetClustersResponse.resource_metrics:type_name -> api.v1.ResourceMetrics + 156, // 47: api.v1.GetClustersResponse.cost_info:type_name -> api.v1.CostInfo + 157, // 48: api.v1.GetClustersResponse.node_info:type_name -> api.v1.NodeInfo + 158, // 49: api.v1.GetClustersResponse.cost_data_points:type_name -> api.v1.CostDataPoint + 159, // 50: api.v1.GetClustersResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint + 56, // 51: api.v1.ListClustersResponse.clusters:type_name -> api.v1.Cluster + 151, // 52: api.v1.ListClustersResponse.pagination:type_name -> api.v1.Pagination + 160, // 53: api.v1.GetNodeResponse.node:type_name -> api.v1.Node + 155, // 54: api.v1.GetNodeResponse.resource_metrics:type_name -> api.v1.ResourceMetrics + 156, // 55: api.v1.GetNodeResponse.cost_info:type_name -> api.v1.CostInfo + 158, // 56: api.v1.GetNodeResponse.cost_data_points:type_name -> api.v1.CostDataPoint + 159, // 57: api.v1.GetNodeResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint + 152, // 58: api.v1.GetWorkloadsResponse.workload_items:type_name -> api.v1.WorkloadItem + 156, // 59: api.v1.GetWorkloadsResponse.cost_info:type_name -> api.v1.CostInfo + 155, // 60: api.v1.GetWorkloadsResponse.resource_metrics:type_name -> api.v1.ResourceMetrics + 161, // 61: api.v1.GetWorkloadsResponse.resource_summary:type_name -> api.v1.ResourceSummary + 152, // 62: api.v1.GetWorkloadResponse.workload_item:type_name -> api.v1.WorkloadItem + 156, // 63: api.v1.GetWorkloadResponse.cost_info:type_name -> api.v1.CostInfo + 155, // 64: api.v1.GetWorkloadResponse.resource_metrics:type_name -> api.v1.ResourceMetrics + 161, // 65: api.v1.GetWorkloadResponse.resource_summary:type_name -> api.v1.ResourceSummary + 158, // 66: api.v1.GetWorkloadResponse.cost_data_points:type_name -> api.v1.CostDataPoint + 159, // 67: api.v1.GetWorkloadResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint + 148, // 68: api.v1.GetForecastWorkloadsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 69: api.v1.GetForecastWorkloadsRequest.end_time:type_name -> google.protobuf.Timestamp + 152, // 70: api.v1.GetForecastWorkloadsResponse.workload_items:type_name -> api.v1.WorkloadItem + 156, // 71: api.v1.GetForecastWorkloadsResponse.cost_info:type_name -> api.v1.CostInfo + 162, // 72: api.v1.GetForecastWorkloadsResponse.resource_metrics:type_name -> api.v1.ForecastResourceMetrics + 161, // 73: api.v1.GetForecastWorkloadsResponse.resource_summary:type_name -> api.v1.ResourceSummary + 148, // 74: api.v1.GetForecastWorkloadRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 75: api.v1.GetForecastWorkloadRequest.end_time:type_name -> google.protobuf.Timestamp + 152, // 76: api.v1.GetForecastWorkloadResponse.workload_item:type_name -> api.v1.WorkloadItem + 156, // 77: api.v1.GetForecastWorkloadResponse.cost_info:type_name -> api.v1.CostInfo + 162, // 78: api.v1.GetForecastWorkloadResponse.resource_metrics:type_name -> api.v1.ForecastResourceMetrics + 161, // 79: api.v1.GetForecastWorkloadResponse.resource_summary:type_name -> api.v1.ResourceSummary + 158, // 80: api.v1.GetForecastWorkloadResponse.cost_data_points:type_name -> api.v1.CostDataPoint + 159, // 81: api.v1.GetForecastWorkloadResponse.resource_data_points:type_name -> api.v1.ResourceDataPoint + 56, // 82: api.v1.GetClusterMetadataResponse.clusters:type_name -> api.v1.Cluster 45, // 83: api.v1.GetAllNamespacesResponse.cluster_id_with_namespaces:type_name -> api.v1.ClusterElement - 141, // 84: api.v1.GetAllWorkloadNamesRequest.kinds:type_name -> api.v1.K8sObjectKind + 150, // 84: api.v1.GetAllWorkloadNamesRequest.kinds:type_name -> api.v1.K8sObjectKind 45, // 85: api.v1.GetAllWorkloadNamesResponse.cluster_id_with_workload_name:type_name -> api.v1.ClusterElement - 141, // 86: api.v1.GetAllWorkloadLabelsRequest.kinds:type_name -> api.v1.K8sObjectKind + 150, // 86: api.v1.GetAllWorkloadLabelsRequest.kinds:type_name -> api.v1.K8sObjectKind 45, // 87: api.v1.GetAllWorkloadLabelsResponse.cluster_id_with_labels:type_name -> api.v1.ClusterElement 45, // 88: api.v1.GetAllNodeGroupNamesResponse.cluster_id_with_node_group_names:type_name -> api.v1.ClusterElement - 146, // 89: api.v1.Cluster.resource_metrics:type_name -> api.v1.ResourceMetrics - 147, // 90: api.v1.Cluster.cost_info:type_name -> api.v1.CostInfo - 148, // 91: api.v1.Cluster.node_info:type_name -> api.v1.NodeInfo - 149, // 92: api.v1.Cluster.cost_data_points:type_name -> api.v1.CostDataPoint - 150, // 93: api.v1.Cluster.resource_data_points:type_name -> api.v1.ResourceDataPoint - 151, // 94: api.v1.Cluster.most_expensive_node:type_name -> api.v1.Node - 151, // 95: api.v1.Cluster.least_expensive_node:type_name -> api.v1.Node - 151, // 96: api.v1.Cluster.most_underutilized_node:type_name -> api.v1.Node - 56, // 97: api.v1.Cluster.most_underutilized_container:type_name -> api.v1.Container - 55, // 98: api.v1.Cluster.zxp_info:type_name -> api.v1.OperatorInfo - 55, // 99: api.v1.Cluster.zxp_helm_info:type_name -> api.v1.OperatorInfo - 55, // 100: api.v1.Cluster.dakr_op_info:type_name -> api.v1.OperatorInfo - 55, // 101: api.v1.Cluster.node_op_info:type_name -> api.v1.OperatorInfo - 55, // 102: api.v1.Cluster.security_op_info:type_name -> api.v1.OperatorInfo - 55, // 103: api.v1.Cluster.network_op_info:type_name -> api.v1.OperatorInfo - 146, // 104: api.v1.Container.resource_metrics:type_name -> api.v1.ResourceMetrics - 55, // 105: api.v1.GetLatestOperatorVersionResponse.zxp_info:type_name -> api.v1.OperatorInfo - 55, // 106: api.v1.GetLatestOperatorVersionResponse.zxp_helm_info:type_name -> api.v1.OperatorInfo - 55, // 107: api.v1.GetLatestOperatorVersionResponse.zxp_netmon_info:type_name -> api.v1.OperatorInfo - 55, // 108: api.v1.GetLatestOperatorVersionResponse.zxp_netmon_helm_info:type_name -> api.v1.OperatorInfo - 55, // 109: api.v1.GetLatestOperatorVersionResponse.dakr_op_info:type_name -> api.v1.OperatorInfo - 55, // 110: api.v1.GetLatestOperatorVersionResponse.dakr_op_helm_info:type_name -> api.v1.OperatorInfo - 55, // 111: api.v1.GetLatestOperatorVersionResponse.node_op_info:type_name -> api.v1.OperatorInfo - 55, // 112: api.v1.GetLatestOperatorVersionResponse.security_op_info:type_name -> api.v1.OperatorInfo - 55, // 113: api.v1.GetLatestOperatorVersionResponse.security_op_helm_info:type_name -> api.v1.OperatorInfo - 0, // 114: api.v1.GalaxyGetClusterPerspectiveRequest.group_by:type_name -> api.v1.GalaxyPOVClusterGroupBy - 68, // 115: api.v1.GalaxyGetClusterPerspectiveRequest.datapoint_opts:type_name -> api.v1.PerspectiveDatapointOpts - 61, // 116: api.v1.GalaxyGetClusterPerspectiveResponse.groupings:type_name -> api.v1.GalaxyClusterGroup - 147, // 117: api.v1.GalaxyClusterGroup.cost_info:type_name -> api.v1.CostInfo - 146, // 118: api.v1.GalaxyClusterGroup.resource_metrics:type_name -> api.v1.ResourceMetrics - 148, // 119: api.v1.GalaxyClusterGroup.node_info:type_name -> api.v1.NodeInfo - 1, // 120: api.v1.GalaxyGetNodePerspectiveRequest.group_by:type_name -> api.v1.GalaxyPOVNodeGroupBy - 68, // 121: api.v1.GalaxyGetNodePerspectiveRequest.datapoint_opts:type_name -> api.v1.PerspectiveDatapointOpts - 64, // 122: api.v1.GalaxyGetNodePerspectiveResponse.groupings:type_name -> api.v1.GalaxyNodeGroup - 147, // 123: api.v1.GalaxyNodeGroup.cost_info:type_name -> api.v1.CostInfo - 146, // 124: api.v1.GalaxyNodeGroup.resource_metrics:type_name -> api.v1.ResourceMetrics - 148, // 125: api.v1.GalaxyNodeGroup.node_info:type_name -> api.v1.NodeInfo - 2, // 126: api.v1.GalaxyGetWorkloadPerspectiveRequest.group_by:type_name -> api.v1.GalaxyPOVWorkloadGroupBy - 68, // 127: api.v1.GalaxyGetWorkloadPerspectiveRequest.datapoint_opts:type_name -> api.v1.PerspectiveDatapointOpts - 67, // 128: api.v1.GalaxyGetWorkloadPerspectiveResponse.groupings:type_name -> api.v1.GalaxyWorkloadGroup - 119, // 129: api.v1.GalaxyGetWorkloadPerspectiveResponse.clusters:type_name -> api.v1.GalaxyGetWorkloadPerspectiveResponse.ClustersEntry - 120, // 130: api.v1.GalaxyGetWorkloadPerspectiveResponse.workloads:type_name -> api.v1.GalaxyGetWorkloadPerspectiveResponse.WorkloadsEntry - 147, // 131: api.v1.GalaxyWorkloadGroup.cost_info:type_name -> api.v1.CostInfo - 146, // 132: api.v1.GalaxyWorkloadGroup.resource_metrics:type_name -> api.v1.ResourceMetrics - 152, // 133: api.v1.GalaxyWorkloadGroup.resource_summary:type_name -> api.v1.ResourceSummary - 141, // 134: api.v1.ListAuditLogsRequest.workload_type:type_name -> api.v1.K8sObjectKind - 139, // 135: api.v1.ListAuditLogsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 136: api.v1.ListAuditLogsRequest.end_time:type_name -> google.protobuf.Timestamp - 142, // 137: api.v1.ListAuditLogsRequest.pagination:type_name -> api.v1.Pagination - 154, // 138: api.v1.ListAuditLogsResponse.logs:type_name -> api.v1.AuditLogEntry - 142, // 139: api.v1.ListAuditLogsResponse.pagination:type_name -> api.v1.Pagination - 141, // 140: api.v1.ListAuditLogOriginatorsRequest.workload_type:type_name -> api.v1.K8sObjectKind - 139, // 141: api.v1.ListAuditLogOriginatorsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 142: api.v1.ListAuditLogOriginatorsRequest.end_time:type_name -> google.protobuf.Timestamp - 76, // 143: api.v1.SendWeeklySummaryEmailRequest.request:type_name -> api.v1.SendWeeklySummaryEmailRequestData - 139, // 144: api.v1.GetClustersNodeInfoRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 145: api.v1.GetClustersNodeInfoRequest.end_time:type_name -> google.protobuf.Timestamp - 148, // 146: api.v1.GetClustersNodeInfoResponse.node_info:type_name -> api.v1.NodeInfo - 151, // 147: api.v1.GetClustersNodeInfoResponse.most_expensive_node:type_name -> api.v1.Node - 151, // 148: api.v1.GetClustersNodeInfoResponse.least_expensive_node:type_name -> api.v1.Node - 151, // 149: api.v1.GetClustersNodeInfoResponse.most_underutilized_node:type_name -> api.v1.Node - 82, // 150: api.v1.SearchK8sResourcesResponse.results:type_name -> api.v1.K8sSearchResult - 85, // 151: api.v1.SearchK8sWorkloadsResponse.results:type_name -> api.v1.K8sWorkloadSearchResult - 121, // 152: api.v1.MetadataForWorkloadsRequest.workload_uid_to_kind:type_name -> api.v1.MetadataForWorkloadsRequest.WorkloadUidToKindEntry - 122, // 153: api.v1.MetadataForWorkloadsResponse.workload_uid_to_metadata:type_name -> api.v1.MetadataForWorkloadsResponse.WorkloadUidToMetadataEntry - 123, // 154: api.v1.WorkloadMetadata.pod_uid_to_node_metadata:type_name -> api.v1.WorkloadMetadata.PodUidToNodeMetadataEntry - 124, // 155: api.v1.WorkloadMetadata.pod_uid_to_pod_metadata:type_name -> api.v1.WorkloadMetadata.PodUidToPodMetadataEntry - 141, // 156: api.v1.WorkloadMetadata.kind:type_name -> api.v1.K8sObjectKind - 141, // 157: api.v1.GetRelatedResourcesRequest.kind:type_name -> api.v1.K8sObjectKind - 94, // 158: api.v1.GetWorkloadPodHistoryResponse.replica_sets:type_name -> api.v1.ReplicaSetHistory - 95, // 159: api.v1.GetWorkloadPodHistoryResponse.direct_pods:type_name -> api.v1.PodHistory - 93, // 160: api.v1.GetWorkloadPodHistoryResponse.jobs:type_name -> api.v1.JobHistory - 139, // 161: api.v1.JobHistory.created_at:type_name -> google.protobuf.Timestamp - 139, // 162: api.v1.JobHistory.deleted_at:type_name -> google.protobuf.Timestamp - 95, // 163: api.v1.JobHistory.pods:type_name -> api.v1.PodHistory - 139, // 164: api.v1.ReplicaSetHistory.created_at:type_name -> google.protobuf.Timestamp - 139, // 165: api.v1.ReplicaSetHistory.deleted_at:type_name -> google.protobuf.Timestamp - 95, // 166: api.v1.ReplicaSetHistory.pods:type_name -> api.v1.PodHistory - 139, // 167: api.v1.PodHistory.created_at:type_name -> google.protobuf.Timestamp - 139, // 168: api.v1.PodHistory.deleted_at:type_name -> google.protobuf.Timestamp - 97, // 169: api.v1.GetRelatedResourcesResponse.relations:type_name -> api.v1.K8sRelatedResource - 98, // 170: api.v1.GetRelatedResourcesResponse.nodes:type_name -> api.v1.K8sResourceNode - 99, // 171: api.v1.GetRelatedResourcesResponse.edges:type_name -> api.v1.K8sResourceEdge - 3, // 172: api.v1.GetClusterTypeResponse.cluster_type:type_name -> api.v1.ClusterType - 139, // 173: api.v1.GetWorkloadsStatsRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 174: api.v1.GetWorkloadsStatsRequest.end_time:type_name -> google.protobuf.Timestamp - 139, // 175: api.v1.DailyUtilizationRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 176: api.v1.DailyUtilizationRequest.end_time:type_name -> google.protobuf.Timestamp - 127, // 177: api.v1.DailyUtilizationResponse.cluster_id_to_daily_total_core_minutes:type_name -> api.v1.DailyUtilizationResponse.ClusterIdToDailyTotalCoreMinutesEntry - 128, // 178: api.v1.DailyUtilizationResponse.cluster_id_to_meta:type_name -> api.v1.DailyUtilizationResponse.ClusterIdToMetaEntry - 139, // 179: api.v1.DailyUtilizationInstanceTypeRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 180: api.v1.DailyUtilizationInstanceTypeRequest.end_time:type_name -> google.protobuf.Timestamp - 131, // 181: api.v1.DailyUtilizationInstanceTypeResponse.cluster_id_to_datapoints:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToDatapointsEntry - 132, // 182: api.v1.DailyUtilizationInstanceTypeResponse.cluster_id_to_meta:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToMetaEntry - 139, // 183: api.v1.DailyUtilizationNodeTypeRequest.start_time:type_name -> google.protobuf.Timestamp - 139, // 184: api.v1.DailyUtilizationNodeTypeRequest.end_time:type_name -> google.protobuf.Timestamp - 136, // 185: api.v1.DailyUtilizationNodeTypeResponse.cluster_id_to_datapoints:type_name -> api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToDatapointsEntry - 137, // 186: api.v1.DailyUtilizationNodeTypeResponse.cluster_id_to_meta:type_name -> api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToMetaEntry - 155, // 187: api.v1.LookupNodeInstanceResponse.dynamic_instance:type_name -> api.v1.Instance - 155, // 188: api.v1.LookupNodeInstanceResponse.cached_instance:type_name -> api.v1.Instance - 111, // 189: api.v1.LookupNodeInstanceResponse.lookup_params:type_name -> api.v1.InstanceLookupParams - 144, // 190: api.v1.GetAllNodeGroupsResponse.NodeGroupMapEntry.value:type_name -> api.v1.NodeGroup - 32, // 191: api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics.node_group_metrics:type_name -> api.v1.NodeGroupMetric - 114, // 192: api.v1.GetNodeGroupsUtilizationResponse.NodeGroupToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics - 114, // 193: api.v1.GetNodeGroupsUtilizationResponse.InstanceTypeToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics - 114, // 194: api.v1.GetNodeGroupsUtilizationResponse.ReservationTypeToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics - 114, // 195: api.v1.GetNodeGroupsUtilizationResponse.LogicalAzToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics - 54, // 196: api.v1.GalaxyGetWorkloadPerspectiveResponse.ClustersEntry.value:type_name -> api.v1.Cluster - 143, // 197: api.v1.GalaxyGetWorkloadPerspectiveResponse.WorkloadsEntry.value:type_name -> api.v1.WorkloadItem - 141, // 198: api.v1.MetadataForWorkloadsRequest.WorkloadUidToKindEntry.value:type_name -> api.v1.K8sObjectKind - 88, // 199: api.v1.MetadataForWorkloadsResponse.WorkloadUidToMetadataEntry.value:type_name -> api.v1.WorkloadMetadata - 90, // 200: api.v1.WorkloadMetadata.PodUidToNodeMetadataEntry.value:type_name -> api.v1.NodeMetadata - 89, // 201: api.v1.WorkloadMetadata.PodUidToPodMetadataEntry.value:type_name -> api.v1.PodMetadata - 126, // 202: api.v1.DailyUtilizationResponse.Datapoints.datapoints:type_name -> api.v1.DailyUtilizationResponse.Datapoint - 125, // 203: api.v1.DailyUtilizationResponse.ClusterIdToDailyTotalCoreMinutesEntry.value:type_name -> api.v1.DailyUtilizationResponse.Datapoints - 54, // 204: api.v1.DailyUtilizationResponse.ClusterIdToMetaEntry.value:type_name -> api.v1.Cluster - 130, // 205: api.v1.DailyUtilizationInstanceTypeResponse.Datapoints.datapoints:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.Datapoint - 133, // 206: api.v1.DailyUtilizationInstanceTypeResponse.Datapoint.instance_type_to_daily_total_core_minutes:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.Datapoint.InstanceTypeToDailyTotalCoreMinutesEntry - 129, // 207: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToDatapointsEntry.value:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.Datapoints - 54, // 208: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToMetaEntry.value:type_name -> api.v1.Cluster - 135, // 209: api.v1.DailyUtilizationNodeTypeResponse.Datapoints.datapoints:type_name -> api.v1.DailyUtilizationNodeTypeResponse.Datapoint - 138, // 210: api.v1.DailyUtilizationNodeTypeResponse.Datapoint.node_type_to_daily_total_core_minutes:type_name -> api.v1.DailyUtilizationNodeTypeResponse.Datapoint.NodeTypeToDailyTotalCoreMinutesEntry - 134, // 211: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToDatapointsEntry.value:type_name -> api.v1.DailyUtilizationNodeTypeResponse.Datapoints - 54, // 212: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToMetaEntry.value:type_name -> api.v1.Cluster - 102, // 213: api.v1.K8SService.GetWorkloadsStats:input_type -> api.v1.GetWorkloadsStatsRequest - 13, // 214: api.v1.K8SService.GetClusters:input_type -> api.v1.GetClustersRequest - 14, // 215: api.v1.K8SService.ListClusters:input_type -> api.v1.ListClustersRequest - 15, // 216: api.v1.K8SService.GetCluster:input_type -> api.v1.GetClusterRequest - 6, // 217: api.v1.K8SService.GetClusterMetadata:input_type -> api.v1.GetClusterMetadataRequest - 46, // 218: api.v1.K8SService.GetAllNamespaces:input_type -> api.v1.GetAllNamespacesRequest - 48, // 219: api.v1.K8SService.GetAllWorkloadNames:input_type -> api.v1.GetAllWorkloadNamesRequest - 50, // 220: api.v1.K8SService.GetAllWorkloadLabels:input_type -> api.v1.GetAllWorkloadLabelsRequest - 52, // 221: api.v1.K8SService.GetAllNodeGroupNames:input_type -> api.v1.GetAllNodeGroupNamesRequest - 86, // 222: api.v1.K8SService.MetadataForWorkloads:input_type -> api.v1.MetadataForWorkloadsRequest - 25, // 223: api.v1.K8SService.GetNodeGroups:input_type -> api.v1.GetNodeGroupsRequest - 26, // 224: api.v1.K8SService.GetAllNodeGroups:input_type -> api.v1.GetAllNodeGroupsRequest - 30, // 225: api.v1.K8SService.GetNodeGroupsUtilization:input_type -> api.v1.GetNodeGroupsUtilizationRequest - 7, // 226: api.v1.K8SService.GetNodeGroup:input_type -> api.v1.GetNodeGroupRequest - 4, // 227: api.v1.K8SService.GetNode:input_type -> api.v1.GetNodeRequest - 8, // 228: api.v1.K8SService.GetWorkloads:input_type -> api.v1.GetWorkloadsRequest - 12, // 229: api.v1.K8SService.GetWorkload:input_type -> api.v1.GetWorkloadRequest - 40, // 230: api.v1.K8SService.GetForecastWorkloads:input_type -> api.v1.GetForecastWorkloadsRequest - 42, // 231: api.v1.K8SService.GetForecastWorkload:input_type -> api.v1.GetForecastWorkloadRequest - 9, // 232: api.v1.K8SService.GetResources:input_type -> api.v1.GetResourcesRequest - 10, // 233: api.v1.K8SService.GetPods:input_type -> api.v1.GetPodsRequest - 57, // 234: api.v1.K8SService.GetLatestOperatorVersion:input_type -> api.v1.GetLatestOperatorVersionRequest - 59, // 235: api.v1.K8SService.GalaxyGetClusterPerspective:input_type -> api.v1.GalaxyGetClusterPerspectiveRequest - 62, // 236: api.v1.K8SService.GalaxyGetNodePerspective:input_type -> api.v1.GalaxyGetNodePerspectiveRequest - 65, // 237: api.v1.K8SService.GalaxyGetWorkloadPerspective:input_type -> api.v1.GalaxyGetWorkloadPerspectiveRequest - 69, // 238: api.v1.K8SService.ListAuditLogs:input_type -> api.v1.ListAuditLogsRequest - 71, // 239: api.v1.K8SService.ListAuditLogOriginators:input_type -> api.v1.ListAuditLogOriginatorsRequest - 73, // 240: api.v1.K8SService.SendWorkloadEmail:input_type -> api.v1.SendWorkloadEmailRequest - 75, // 241: api.v1.K8SService.SendWeeklySummaryEmail:input_type -> api.v1.SendWeeklySummaryEmailRequest - 78, // 242: api.v1.K8SService.GetClustersNodeInfo:input_type -> api.v1.GetClustersNodeInfoRequest - 80, // 243: api.v1.K8SService.SearchK8sResources:input_type -> api.v1.SearchK8sResourcesRequest - 83, // 244: api.v1.K8SService.SearchK8sWorkloads:input_type -> api.v1.SearchK8sWorkloadsRequest - 100, // 245: api.v1.K8SService.GetClusterType:input_type -> api.v1.GetClusterTypeRequest - 91, // 246: api.v1.K8SService.GetRelationsForKind:input_type -> api.v1.GetRelatedResourcesRequest - 110, // 247: api.v1.K8SService.LookupNodeInstance:input_type -> api.v1.LookupNodeInstanceRequest - 5, // 248: api.v1.K8SService.GetWorkloadPodHistory:input_type -> api.v1.GetWorkloadPodHistoryRequest - 21, // 249: api.v1.ClusterMutationService.CreateCluster:input_type -> api.v1.CreateClusterRequest - 16, // 250: api.v1.ClusterMutationService.DeleteCluster:input_type -> api.v1.DeleteClusterRequest - 18, // 251: api.v1.ClusterMutationService.UpdateCluster:input_type -> api.v1.UpdateClusterRequest - 23, // 252: api.v1.ClusterMutationService.ResetClusterToken:input_type -> api.v1.ResetClusterTokenRequest - 104, // 253: api.v1.UtilizationService.DailyUtilization:input_type -> api.v1.DailyUtilizationRequest - 106, // 254: api.v1.UtilizationService.DailyUtilizationInstanceType:input_type -> api.v1.DailyUtilizationInstanceTypeRequest - 108, // 255: api.v1.UtilizationService.DailyUtilizationNodeType:input_type -> api.v1.DailyUtilizationNodeTypeRequest - 103, // 256: api.v1.K8SService.GetWorkloadsStats:output_type -> api.v1.GetWorkloadsStatsResponse - 35, // 257: api.v1.K8SService.GetClusters:output_type -> api.v1.GetClustersResponse - 36, // 258: api.v1.K8SService.ListClusters:output_type -> api.v1.ListClustersResponse - 34, // 259: api.v1.K8SService.GetCluster:output_type -> api.v1.GetClusterResponse - 44, // 260: api.v1.K8SService.GetClusterMetadata:output_type -> api.v1.GetClusterMetadataResponse - 47, // 261: api.v1.K8SService.GetAllNamespaces:output_type -> api.v1.GetAllNamespacesResponse - 49, // 262: api.v1.K8SService.GetAllWorkloadNames:output_type -> api.v1.GetAllWorkloadNamesResponse - 51, // 263: api.v1.K8SService.GetAllWorkloadLabels:output_type -> api.v1.GetAllWorkloadLabelsResponse - 53, // 264: api.v1.K8SService.GetAllNodeGroupNames:output_type -> api.v1.GetAllNodeGroupNamesResponse - 87, // 265: api.v1.K8SService.MetadataForWorkloads:output_type -> api.v1.MetadataForWorkloadsResponse - 27, // 266: api.v1.K8SService.GetNodeGroups:output_type -> api.v1.GetNodeGroupsResponse - 28, // 267: api.v1.K8SService.GetAllNodeGroups:output_type -> api.v1.GetAllNodeGroupsResponse - 31, // 268: api.v1.K8SService.GetNodeGroupsUtilization:output_type -> api.v1.GetNodeGroupsUtilizationResponse - 33, // 269: api.v1.K8SService.GetNodeGroup:output_type -> api.v1.GetNodeGroupResponse - 37, // 270: api.v1.K8SService.GetNode:output_type -> api.v1.GetNodeResponse - 38, // 271: api.v1.K8SService.GetWorkloads:output_type -> api.v1.GetWorkloadsResponse - 39, // 272: api.v1.K8SService.GetWorkload:output_type -> api.v1.GetWorkloadResponse - 41, // 273: api.v1.K8SService.GetForecastWorkloads:output_type -> api.v1.GetForecastWorkloadsResponse - 43, // 274: api.v1.K8SService.GetForecastWorkload:output_type -> api.v1.GetForecastWorkloadResponse - 20, // 275: api.v1.K8SService.GetResources:output_type -> api.v1.GetResourcesResponse - 11, // 276: api.v1.K8SService.GetPods:output_type -> api.v1.GetPodsResponse - 58, // 277: api.v1.K8SService.GetLatestOperatorVersion:output_type -> api.v1.GetLatestOperatorVersionResponse - 60, // 278: api.v1.K8SService.GalaxyGetClusterPerspective:output_type -> api.v1.GalaxyGetClusterPerspectiveResponse - 63, // 279: api.v1.K8SService.GalaxyGetNodePerspective:output_type -> api.v1.GalaxyGetNodePerspectiveResponse - 66, // 280: api.v1.K8SService.GalaxyGetWorkloadPerspective:output_type -> api.v1.GalaxyGetWorkloadPerspectiveResponse - 70, // 281: api.v1.K8SService.ListAuditLogs:output_type -> api.v1.ListAuditLogsResponse - 72, // 282: api.v1.K8SService.ListAuditLogOriginators:output_type -> api.v1.ListAuditLogOriginatorsResponse - 74, // 283: api.v1.K8SService.SendWorkloadEmail:output_type -> api.v1.SendWorkloadEmailResponse - 77, // 284: api.v1.K8SService.SendWeeklySummaryEmail:output_type -> api.v1.SendWeeklySummaryEmailResponse - 79, // 285: api.v1.K8SService.GetClustersNodeInfo:output_type -> api.v1.GetClustersNodeInfoResponse - 81, // 286: api.v1.K8SService.SearchK8sResources:output_type -> api.v1.SearchK8sResourcesResponse - 84, // 287: api.v1.K8SService.SearchK8sWorkloads:output_type -> api.v1.SearchK8sWorkloadsResponse - 101, // 288: api.v1.K8SService.GetClusterType:output_type -> api.v1.GetClusterTypeResponse - 96, // 289: api.v1.K8SService.GetRelationsForKind:output_type -> api.v1.GetRelatedResourcesResponse - 112, // 290: api.v1.K8SService.LookupNodeInstance:output_type -> api.v1.LookupNodeInstanceResponse - 92, // 291: api.v1.K8SService.GetWorkloadPodHistory:output_type -> api.v1.GetWorkloadPodHistoryResponse - 22, // 292: api.v1.ClusterMutationService.CreateCluster:output_type -> api.v1.CreateClusterResponse - 17, // 293: api.v1.ClusterMutationService.DeleteCluster:output_type -> api.v1.DeleteClusterResponse - 19, // 294: api.v1.ClusterMutationService.UpdateCluster:output_type -> api.v1.UpdateClusterResponse - 24, // 295: api.v1.ClusterMutationService.ResetClusterToken:output_type -> api.v1.ResetClusterTokenResponse - 105, // 296: api.v1.UtilizationService.DailyUtilization:output_type -> api.v1.DailyUtilizationResponse - 107, // 297: api.v1.UtilizationService.DailyUtilizationInstanceType:output_type -> api.v1.DailyUtilizationInstanceTypeResponse - 109, // 298: api.v1.UtilizationService.DailyUtilizationNodeType:output_type -> api.v1.DailyUtilizationNodeTypeResponse - 256, // [256:299] is the sub-list for method output_type - 213, // [213:256] is the sub-list for method input_type - 213, // [213:213] is the sub-list for extension type_name - 213, // [213:213] is the sub-list for extension extendee - 0, // [0:213] is the sub-list for field type_name + 155, // 89: api.v1.Cluster.resource_metrics:type_name -> api.v1.ResourceMetrics + 156, // 90: api.v1.Cluster.cost_info:type_name -> api.v1.CostInfo + 157, // 91: api.v1.Cluster.node_info:type_name -> api.v1.NodeInfo + 158, // 92: api.v1.Cluster.cost_data_points:type_name -> api.v1.CostDataPoint + 159, // 93: api.v1.Cluster.resource_data_points:type_name -> api.v1.ResourceDataPoint + 160, // 94: api.v1.Cluster.most_expensive_node:type_name -> api.v1.Node + 160, // 95: api.v1.Cluster.least_expensive_node:type_name -> api.v1.Node + 160, // 96: api.v1.Cluster.most_underutilized_node:type_name -> api.v1.Node + 58, // 97: api.v1.Cluster.most_underutilized_container:type_name -> api.v1.Container + 57, // 98: api.v1.Cluster.zxp_info:type_name -> api.v1.OperatorInfo + 57, // 99: api.v1.Cluster.zxp_helm_info:type_name -> api.v1.OperatorInfo + 57, // 100: api.v1.Cluster.dakr_op_info:type_name -> api.v1.OperatorInfo + 57, // 101: api.v1.Cluster.node_op_info:type_name -> api.v1.OperatorInfo + 57, // 102: api.v1.Cluster.security_op_info:type_name -> api.v1.OperatorInfo + 57, // 103: api.v1.Cluster.network_op_info:type_name -> api.v1.OperatorInfo + 155, // 104: api.v1.Container.resource_metrics:type_name -> api.v1.ResourceMetrics + 57, // 105: api.v1.GetLatestOperatorVersionResponse.zxp_info:type_name -> api.v1.OperatorInfo + 57, // 106: api.v1.GetLatestOperatorVersionResponse.zxp_helm_info:type_name -> api.v1.OperatorInfo + 57, // 107: api.v1.GetLatestOperatorVersionResponse.zxp_netmon_info:type_name -> api.v1.OperatorInfo + 57, // 108: api.v1.GetLatestOperatorVersionResponse.zxp_netmon_helm_info:type_name -> api.v1.OperatorInfo + 57, // 109: api.v1.GetLatestOperatorVersionResponse.dakr_op_info:type_name -> api.v1.OperatorInfo + 57, // 110: api.v1.GetLatestOperatorVersionResponse.dakr_op_helm_info:type_name -> api.v1.OperatorInfo + 57, // 111: api.v1.GetLatestOperatorVersionResponse.node_op_info_aws:type_name -> api.v1.OperatorInfo + 57, // 112: api.v1.GetLatestOperatorVersionResponse.node_op_info_azure:type_name -> api.v1.OperatorInfo + 57, // 113: api.v1.GetLatestOperatorVersionResponse.node_op_info_gcp:type_name -> api.v1.OperatorInfo + 57, // 114: api.v1.GetLatestOperatorVersionResponse.node_op_info_oci:type_name -> api.v1.OperatorInfo + 57, // 115: api.v1.GetLatestOperatorVersionResponse.security_op_info:type_name -> api.v1.OperatorInfo + 57, // 116: api.v1.GetLatestOperatorVersionResponse.security_op_helm_info:type_name -> api.v1.OperatorInfo + 0, // 117: api.v1.GalaxyGetClusterPerspectiveRequest.group_by:type_name -> api.v1.GalaxyPOVClusterGroupBy + 70, // 118: api.v1.GalaxyGetClusterPerspectiveRequest.datapoint_opts:type_name -> api.v1.PerspectiveDatapointOpts + 63, // 119: api.v1.GalaxyGetClusterPerspectiveResponse.groupings:type_name -> api.v1.GalaxyClusterGroup + 156, // 120: api.v1.GalaxyClusterGroup.cost_info:type_name -> api.v1.CostInfo + 155, // 121: api.v1.GalaxyClusterGroup.resource_metrics:type_name -> api.v1.ResourceMetrics + 157, // 122: api.v1.GalaxyClusterGroup.node_info:type_name -> api.v1.NodeInfo + 1, // 123: api.v1.GalaxyGetNodePerspectiveRequest.group_by:type_name -> api.v1.GalaxyPOVNodeGroupBy + 70, // 124: api.v1.GalaxyGetNodePerspectiveRequest.datapoint_opts:type_name -> api.v1.PerspectiveDatapointOpts + 66, // 125: api.v1.GalaxyGetNodePerspectiveResponse.groupings:type_name -> api.v1.GalaxyNodeGroup + 156, // 126: api.v1.GalaxyNodeGroup.cost_info:type_name -> api.v1.CostInfo + 155, // 127: api.v1.GalaxyNodeGroup.resource_metrics:type_name -> api.v1.ResourceMetrics + 157, // 128: api.v1.GalaxyNodeGroup.node_info:type_name -> api.v1.NodeInfo + 2, // 129: api.v1.GalaxyGetWorkloadPerspectiveRequest.group_by:type_name -> api.v1.GalaxyPOVWorkloadGroupBy + 70, // 130: api.v1.GalaxyGetWorkloadPerspectiveRequest.datapoint_opts:type_name -> api.v1.PerspectiveDatapointOpts + 69, // 131: api.v1.GalaxyGetWorkloadPerspectiveResponse.groupings:type_name -> api.v1.GalaxyWorkloadGroup + 128, // 132: api.v1.GalaxyGetWorkloadPerspectiveResponse.clusters:type_name -> api.v1.GalaxyGetWorkloadPerspectiveResponse.ClustersEntry + 129, // 133: api.v1.GalaxyGetWorkloadPerspectiveResponse.workloads:type_name -> api.v1.GalaxyGetWorkloadPerspectiveResponse.WorkloadsEntry + 156, // 134: api.v1.GalaxyWorkloadGroup.cost_info:type_name -> api.v1.CostInfo + 155, // 135: api.v1.GalaxyWorkloadGroup.resource_metrics:type_name -> api.v1.ResourceMetrics + 161, // 136: api.v1.GalaxyWorkloadGroup.resource_summary:type_name -> api.v1.ResourceSummary + 150, // 137: api.v1.ListAuditLogsRequest.workload_type:type_name -> api.v1.K8sObjectKind + 148, // 138: api.v1.ListAuditLogsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 139: api.v1.ListAuditLogsRequest.end_time:type_name -> google.protobuf.Timestamp + 151, // 140: api.v1.ListAuditLogsRequest.pagination:type_name -> api.v1.Pagination + 163, // 141: api.v1.ListAuditLogsResponse.logs:type_name -> api.v1.AuditLogEntry + 151, // 142: api.v1.ListAuditLogsResponse.pagination:type_name -> api.v1.Pagination + 150, // 143: api.v1.ListAuditLogOriginatorsRequest.workload_type:type_name -> api.v1.K8sObjectKind + 148, // 144: api.v1.ListAuditLogOriginatorsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 145: api.v1.ListAuditLogOriginatorsRequest.end_time:type_name -> google.protobuf.Timestamp + 78, // 146: api.v1.SendWeeklySummaryEmailRequest.request:type_name -> api.v1.SendWeeklySummaryEmailRequestData + 148, // 147: api.v1.GetClustersNodeInfoRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 148: api.v1.GetClustersNodeInfoRequest.end_time:type_name -> google.protobuf.Timestamp + 157, // 149: api.v1.GetClustersNodeInfoResponse.node_info:type_name -> api.v1.NodeInfo + 160, // 150: api.v1.GetClustersNodeInfoResponse.most_expensive_node:type_name -> api.v1.Node + 160, // 151: api.v1.GetClustersNodeInfoResponse.least_expensive_node:type_name -> api.v1.Node + 160, // 152: api.v1.GetClustersNodeInfoResponse.most_underutilized_node:type_name -> api.v1.Node + 84, // 153: api.v1.SearchK8sResourcesResponse.results:type_name -> api.v1.K8sSearchResult + 87, // 154: api.v1.SearchK8sWorkloadsResponse.results:type_name -> api.v1.K8sWorkloadSearchResult + 130, // 155: api.v1.MetadataForWorkloadsRequest.workload_uid_to_kind:type_name -> api.v1.MetadataForWorkloadsRequest.WorkloadUidToKindEntry + 131, // 156: api.v1.MetadataForWorkloadsResponse.workload_uid_to_metadata:type_name -> api.v1.MetadataForWorkloadsResponse.WorkloadUidToMetadataEntry + 56, // 157: api.v1.AddClusterTagsResponse.cluster:type_name -> api.v1.Cluster + 56, // 158: api.v1.RemoveClusterTagsResponse.cluster:type_name -> api.v1.Cluster + 95, // 159: api.v1.ListTagsResponse.tags:type_name -> api.v1.TagSummary + 132, // 160: api.v1.WorkloadMetadata.pod_uid_to_node_metadata:type_name -> api.v1.WorkloadMetadata.PodUidToNodeMetadataEntry + 133, // 161: api.v1.WorkloadMetadata.pod_uid_to_pod_metadata:type_name -> api.v1.WorkloadMetadata.PodUidToPodMetadataEntry + 150, // 162: api.v1.WorkloadMetadata.kind:type_name -> api.v1.K8sObjectKind + 150, // 163: api.v1.GetRelatedResourcesRequest.kind:type_name -> api.v1.K8sObjectKind + 103, // 164: api.v1.GetWorkloadPodHistoryResponse.replica_sets:type_name -> api.v1.ReplicaSetHistory + 104, // 165: api.v1.GetWorkloadPodHistoryResponse.direct_pods:type_name -> api.v1.PodHistory + 102, // 166: api.v1.GetWorkloadPodHistoryResponse.jobs:type_name -> api.v1.JobHistory + 148, // 167: api.v1.JobHistory.created_at:type_name -> google.protobuf.Timestamp + 148, // 168: api.v1.JobHistory.deleted_at:type_name -> google.protobuf.Timestamp + 104, // 169: api.v1.JobHistory.pods:type_name -> api.v1.PodHistory + 148, // 170: api.v1.ReplicaSetHistory.created_at:type_name -> google.protobuf.Timestamp + 148, // 171: api.v1.ReplicaSetHistory.deleted_at:type_name -> google.protobuf.Timestamp + 104, // 172: api.v1.ReplicaSetHistory.pods:type_name -> api.v1.PodHistory + 148, // 173: api.v1.PodHistory.created_at:type_name -> google.protobuf.Timestamp + 148, // 174: api.v1.PodHistory.deleted_at:type_name -> google.protobuf.Timestamp + 106, // 175: api.v1.GetRelatedResourcesResponse.relations:type_name -> api.v1.K8sRelatedResource + 107, // 176: api.v1.GetRelatedResourcesResponse.nodes:type_name -> api.v1.K8sResourceNode + 108, // 177: api.v1.GetRelatedResourcesResponse.edges:type_name -> api.v1.K8sResourceEdge + 3, // 178: api.v1.GetClusterTypeResponse.cluster_type:type_name -> api.v1.ClusterType + 148, // 179: api.v1.GetWorkloadsStatsRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 180: api.v1.GetWorkloadsStatsRequest.end_time:type_name -> google.protobuf.Timestamp + 148, // 181: api.v1.DailyUtilizationRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 182: api.v1.DailyUtilizationRequest.end_time:type_name -> google.protobuf.Timestamp + 136, // 183: api.v1.DailyUtilizationResponse.cluster_id_to_daily_total_core_minutes:type_name -> api.v1.DailyUtilizationResponse.ClusterIdToDailyTotalCoreMinutesEntry + 137, // 184: api.v1.DailyUtilizationResponse.cluster_id_to_meta:type_name -> api.v1.DailyUtilizationResponse.ClusterIdToMetaEntry + 148, // 185: api.v1.DailyUtilizationInstanceTypeRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 186: api.v1.DailyUtilizationInstanceTypeRequest.end_time:type_name -> google.protobuf.Timestamp + 140, // 187: api.v1.DailyUtilizationInstanceTypeResponse.cluster_id_to_datapoints:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToDatapointsEntry + 141, // 188: api.v1.DailyUtilizationInstanceTypeResponse.cluster_id_to_meta:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToMetaEntry + 148, // 189: api.v1.DailyUtilizationNodeTypeRequest.start_time:type_name -> google.protobuf.Timestamp + 148, // 190: api.v1.DailyUtilizationNodeTypeRequest.end_time:type_name -> google.protobuf.Timestamp + 145, // 191: api.v1.DailyUtilizationNodeTypeResponse.cluster_id_to_datapoints:type_name -> api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToDatapointsEntry + 146, // 192: api.v1.DailyUtilizationNodeTypeResponse.cluster_id_to_meta:type_name -> api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToMetaEntry + 164, // 193: api.v1.LookupNodeInstanceResponse.dynamic_instance:type_name -> api.v1.Instance + 164, // 194: api.v1.LookupNodeInstanceResponse.cached_instance:type_name -> api.v1.Instance + 120, // 195: api.v1.LookupNodeInstanceResponse.lookup_params:type_name -> api.v1.InstanceLookupParams + 153, // 196: api.v1.GetAllNodeGroupsResponse.NodeGroupMapEntry.value:type_name -> api.v1.NodeGroup + 32, // 197: api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics.node_group_metrics:type_name -> api.v1.NodeGroupMetric + 123, // 198: api.v1.GetNodeGroupsUtilizationResponse.NodeGroupToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics + 123, // 199: api.v1.GetNodeGroupsUtilizationResponse.InstanceTypeToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics + 123, // 200: api.v1.GetNodeGroupsUtilizationResponse.ReservationTypeToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics + 123, // 201: api.v1.GetNodeGroupsUtilizationResponse.LogicalAzToUtilMetricsEntry.value:type_name -> api.v1.GetNodeGroupsUtilizationResponse.ListNodeGroupMetrics + 56, // 202: api.v1.GalaxyGetWorkloadPerspectiveResponse.ClustersEntry.value:type_name -> api.v1.Cluster + 152, // 203: api.v1.GalaxyGetWorkloadPerspectiveResponse.WorkloadsEntry.value:type_name -> api.v1.WorkloadItem + 150, // 204: api.v1.MetadataForWorkloadsRequest.WorkloadUidToKindEntry.value:type_name -> api.v1.K8sObjectKind + 97, // 205: api.v1.MetadataForWorkloadsResponse.WorkloadUidToMetadataEntry.value:type_name -> api.v1.WorkloadMetadata + 99, // 206: api.v1.WorkloadMetadata.PodUidToNodeMetadataEntry.value:type_name -> api.v1.NodeMetadata + 98, // 207: api.v1.WorkloadMetadata.PodUidToPodMetadataEntry.value:type_name -> api.v1.PodMetadata + 135, // 208: api.v1.DailyUtilizationResponse.Datapoints.datapoints:type_name -> api.v1.DailyUtilizationResponse.Datapoint + 134, // 209: api.v1.DailyUtilizationResponse.ClusterIdToDailyTotalCoreMinutesEntry.value:type_name -> api.v1.DailyUtilizationResponse.Datapoints + 56, // 210: api.v1.DailyUtilizationResponse.ClusterIdToMetaEntry.value:type_name -> api.v1.Cluster + 139, // 211: api.v1.DailyUtilizationInstanceTypeResponse.Datapoints.datapoints:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.Datapoint + 142, // 212: api.v1.DailyUtilizationInstanceTypeResponse.Datapoint.instance_type_to_daily_total_core_minutes:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.Datapoint.InstanceTypeToDailyTotalCoreMinutesEntry + 138, // 213: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToDatapointsEntry.value:type_name -> api.v1.DailyUtilizationInstanceTypeResponse.Datapoints + 56, // 214: api.v1.DailyUtilizationInstanceTypeResponse.ClusterIdToMetaEntry.value:type_name -> api.v1.Cluster + 144, // 215: api.v1.DailyUtilizationNodeTypeResponse.Datapoints.datapoints:type_name -> api.v1.DailyUtilizationNodeTypeResponse.Datapoint + 147, // 216: api.v1.DailyUtilizationNodeTypeResponse.Datapoint.node_type_to_daily_total_core_minutes:type_name -> api.v1.DailyUtilizationNodeTypeResponse.Datapoint.NodeTypeToDailyTotalCoreMinutesEntry + 143, // 217: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToDatapointsEntry.value:type_name -> api.v1.DailyUtilizationNodeTypeResponse.Datapoints + 56, // 218: api.v1.DailyUtilizationNodeTypeResponse.ClusterIdToMetaEntry.value:type_name -> api.v1.Cluster + 111, // 219: api.v1.K8SService.GetWorkloadsStats:input_type -> api.v1.GetWorkloadsStatsRequest + 13, // 220: api.v1.K8SService.GetClusters:input_type -> api.v1.GetClustersRequest + 14, // 221: api.v1.K8SService.ListClusters:input_type -> api.v1.ListClustersRequest + 15, // 222: api.v1.K8SService.GetCluster:input_type -> api.v1.GetClusterRequest + 6, // 223: api.v1.K8SService.GetClusterMetadata:input_type -> api.v1.GetClusterMetadataRequest + 46, // 224: api.v1.K8SService.GetAllNamespaces:input_type -> api.v1.GetAllNamespacesRequest + 48, // 225: api.v1.K8SService.SearchNamespacesByCluster:input_type -> api.v1.SearchNamespacesByClusterRequest + 50, // 226: api.v1.K8SService.GetAllWorkloadNames:input_type -> api.v1.GetAllWorkloadNamesRequest + 52, // 227: api.v1.K8SService.GetAllWorkloadLabels:input_type -> api.v1.GetAllWorkloadLabelsRequest + 54, // 228: api.v1.K8SService.GetAllNodeGroupNames:input_type -> api.v1.GetAllNodeGroupNamesRequest + 88, // 229: api.v1.K8SService.MetadataForWorkloads:input_type -> api.v1.MetadataForWorkloadsRequest + 25, // 230: api.v1.K8SService.GetNodeGroups:input_type -> api.v1.GetNodeGroupsRequest + 26, // 231: api.v1.K8SService.GetAllNodeGroups:input_type -> api.v1.GetAllNodeGroupsRequest + 30, // 232: api.v1.K8SService.GetNodeGroupsUtilization:input_type -> api.v1.GetNodeGroupsUtilizationRequest + 7, // 233: api.v1.K8SService.GetNodeGroup:input_type -> api.v1.GetNodeGroupRequest + 4, // 234: api.v1.K8SService.GetNode:input_type -> api.v1.GetNodeRequest + 8, // 235: api.v1.K8SService.GetWorkloads:input_type -> api.v1.GetWorkloadsRequest + 12, // 236: api.v1.K8SService.GetWorkload:input_type -> api.v1.GetWorkloadRequest + 40, // 237: api.v1.K8SService.GetForecastWorkloads:input_type -> api.v1.GetForecastWorkloadsRequest + 42, // 238: api.v1.K8SService.GetForecastWorkload:input_type -> api.v1.GetForecastWorkloadRequest + 9, // 239: api.v1.K8SService.GetResources:input_type -> api.v1.GetResourcesRequest + 10, // 240: api.v1.K8SService.GetPods:input_type -> api.v1.GetPodsRequest + 59, // 241: api.v1.K8SService.GetLatestOperatorVersion:input_type -> api.v1.GetLatestOperatorVersionRequest + 61, // 242: api.v1.K8SService.GalaxyGetClusterPerspective:input_type -> api.v1.GalaxyGetClusterPerspectiveRequest + 64, // 243: api.v1.K8SService.GalaxyGetNodePerspective:input_type -> api.v1.GalaxyGetNodePerspectiveRequest + 67, // 244: api.v1.K8SService.GalaxyGetWorkloadPerspective:input_type -> api.v1.GalaxyGetWorkloadPerspectiveRequest + 71, // 245: api.v1.K8SService.ListAuditLogs:input_type -> api.v1.ListAuditLogsRequest + 73, // 246: api.v1.K8SService.ListAuditLogOriginators:input_type -> api.v1.ListAuditLogOriginatorsRequest + 75, // 247: api.v1.K8SService.SendWorkloadEmail:input_type -> api.v1.SendWorkloadEmailRequest + 77, // 248: api.v1.K8SService.SendWeeklySummaryEmail:input_type -> api.v1.SendWeeklySummaryEmailRequest + 80, // 249: api.v1.K8SService.GetClustersNodeInfo:input_type -> api.v1.GetClustersNodeInfoRequest + 82, // 250: api.v1.K8SService.SearchK8sResources:input_type -> api.v1.SearchK8sResourcesRequest + 85, // 251: api.v1.K8SService.SearchK8sWorkloads:input_type -> api.v1.SearchK8sWorkloadsRequest + 109, // 252: api.v1.K8SService.GetClusterType:input_type -> api.v1.GetClusterTypeRequest + 100, // 253: api.v1.K8SService.GetRelationsForKind:input_type -> api.v1.GetRelatedResourcesRequest + 119, // 254: api.v1.K8SService.LookupNodeInstance:input_type -> api.v1.LookupNodeInstanceRequest + 5, // 255: api.v1.K8SService.GetWorkloadPodHistory:input_type -> api.v1.GetWorkloadPodHistoryRequest + 90, // 256: api.v1.K8SService.AddClusterTags:input_type -> api.v1.AddClusterTagsRequest + 92, // 257: api.v1.K8SService.RemoveClusterTags:input_type -> api.v1.RemoveClusterTagsRequest + 94, // 258: api.v1.K8SService.ListTags:input_type -> api.v1.ListTagsRequest + 21, // 259: api.v1.ClusterMutationService.CreateCluster:input_type -> api.v1.CreateClusterRequest + 16, // 260: api.v1.ClusterMutationService.DeleteCluster:input_type -> api.v1.DeleteClusterRequest + 18, // 261: api.v1.ClusterMutationService.UpdateCluster:input_type -> api.v1.UpdateClusterRequest + 23, // 262: api.v1.ClusterMutationService.ResetClusterToken:input_type -> api.v1.ResetClusterTokenRequest + 113, // 263: api.v1.UtilizationService.DailyUtilization:input_type -> api.v1.DailyUtilizationRequest + 115, // 264: api.v1.UtilizationService.DailyUtilizationInstanceType:input_type -> api.v1.DailyUtilizationInstanceTypeRequest + 117, // 265: api.v1.UtilizationService.DailyUtilizationNodeType:input_type -> api.v1.DailyUtilizationNodeTypeRequest + 112, // 266: api.v1.K8SService.GetWorkloadsStats:output_type -> api.v1.GetWorkloadsStatsResponse + 35, // 267: api.v1.K8SService.GetClusters:output_type -> api.v1.GetClustersResponse + 36, // 268: api.v1.K8SService.ListClusters:output_type -> api.v1.ListClustersResponse + 34, // 269: api.v1.K8SService.GetCluster:output_type -> api.v1.GetClusterResponse + 44, // 270: api.v1.K8SService.GetClusterMetadata:output_type -> api.v1.GetClusterMetadataResponse + 47, // 271: api.v1.K8SService.GetAllNamespaces:output_type -> api.v1.GetAllNamespacesResponse + 49, // 272: api.v1.K8SService.SearchNamespacesByCluster:output_type -> api.v1.SearchNamespacesByClusterResponse + 51, // 273: api.v1.K8SService.GetAllWorkloadNames:output_type -> api.v1.GetAllWorkloadNamesResponse + 53, // 274: api.v1.K8SService.GetAllWorkloadLabels:output_type -> api.v1.GetAllWorkloadLabelsResponse + 55, // 275: api.v1.K8SService.GetAllNodeGroupNames:output_type -> api.v1.GetAllNodeGroupNamesResponse + 89, // 276: api.v1.K8SService.MetadataForWorkloads:output_type -> api.v1.MetadataForWorkloadsResponse + 27, // 277: api.v1.K8SService.GetNodeGroups:output_type -> api.v1.GetNodeGroupsResponse + 28, // 278: api.v1.K8SService.GetAllNodeGroups:output_type -> api.v1.GetAllNodeGroupsResponse + 31, // 279: api.v1.K8SService.GetNodeGroupsUtilization:output_type -> api.v1.GetNodeGroupsUtilizationResponse + 33, // 280: api.v1.K8SService.GetNodeGroup:output_type -> api.v1.GetNodeGroupResponse + 37, // 281: api.v1.K8SService.GetNode:output_type -> api.v1.GetNodeResponse + 38, // 282: api.v1.K8SService.GetWorkloads:output_type -> api.v1.GetWorkloadsResponse + 39, // 283: api.v1.K8SService.GetWorkload:output_type -> api.v1.GetWorkloadResponse + 41, // 284: api.v1.K8SService.GetForecastWorkloads:output_type -> api.v1.GetForecastWorkloadsResponse + 43, // 285: api.v1.K8SService.GetForecastWorkload:output_type -> api.v1.GetForecastWorkloadResponse + 20, // 286: api.v1.K8SService.GetResources:output_type -> api.v1.GetResourcesResponse + 11, // 287: api.v1.K8SService.GetPods:output_type -> api.v1.GetPodsResponse + 60, // 288: api.v1.K8SService.GetLatestOperatorVersion:output_type -> api.v1.GetLatestOperatorVersionResponse + 62, // 289: api.v1.K8SService.GalaxyGetClusterPerspective:output_type -> api.v1.GalaxyGetClusterPerspectiveResponse + 65, // 290: api.v1.K8SService.GalaxyGetNodePerspective:output_type -> api.v1.GalaxyGetNodePerspectiveResponse + 68, // 291: api.v1.K8SService.GalaxyGetWorkloadPerspective:output_type -> api.v1.GalaxyGetWorkloadPerspectiveResponse + 72, // 292: api.v1.K8SService.ListAuditLogs:output_type -> api.v1.ListAuditLogsResponse + 74, // 293: api.v1.K8SService.ListAuditLogOriginators:output_type -> api.v1.ListAuditLogOriginatorsResponse + 76, // 294: api.v1.K8SService.SendWorkloadEmail:output_type -> api.v1.SendWorkloadEmailResponse + 79, // 295: api.v1.K8SService.SendWeeklySummaryEmail:output_type -> api.v1.SendWeeklySummaryEmailResponse + 81, // 296: api.v1.K8SService.GetClustersNodeInfo:output_type -> api.v1.GetClustersNodeInfoResponse + 83, // 297: api.v1.K8SService.SearchK8sResources:output_type -> api.v1.SearchK8sResourcesResponse + 86, // 298: api.v1.K8SService.SearchK8sWorkloads:output_type -> api.v1.SearchK8sWorkloadsResponse + 110, // 299: api.v1.K8SService.GetClusterType:output_type -> api.v1.GetClusterTypeResponse + 105, // 300: api.v1.K8SService.GetRelationsForKind:output_type -> api.v1.GetRelatedResourcesResponse + 121, // 301: api.v1.K8SService.LookupNodeInstance:output_type -> api.v1.LookupNodeInstanceResponse + 101, // 302: api.v1.K8SService.GetWorkloadPodHistory:output_type -> api.v1.GetWorkloadPodHistoryResponse + 91, // 303: api.v1.K8SService.AddClusterTags:output_type -> api.v1.AddClusterTagsResponse + 93, // 304: api.v1.K8SService.RemoveClusterTags:output_type -> api.v1.RemoveClusterTagsResponse + 96, // 305: api.v1.K8SService.ListTags:output_type -> api.v1.ListTagsResponse + 22, // 306: api.v1.ClusterMutationService.CreateCluster:output_type -> api.v1.CreateClusterResponse + 17, // 307: api.v1.ClusterMutationService.DeleteCluster:output_type -> api.v1.DeleteClusterResponse + 19, // 308: api.v1.ClusterMutationService.UpdateCluster:output_type -> api.v1.UpdateClusterResponse + 24, // 309: api.v1.ClusterMutationService.ResetClusterToken:output_type -> api.v1.ResetClusterTokenResponse + 114, // 310: api.v1.UtilizationService.DailyUtilization:output_type -> api.v1.DailyUtilizationResponse + 116, // 311: api.v1.UtilizationService.DailyUtilizationInstanceType:output_type -> api.v1.DailyUtilizationInstanceTypeResponse + 118, // 312: api.v1.UtilizationService.DailyUtilizationNodeType:output_type -> api.v1.DailyUtilizationNodeTypeResponse + 266, // [266:313] is the sub-list for method output_type + 219, // [219:266] is the sub-list for method input_type + 219, // [219:219] is the sub-list for extension type_name + 219, // [219:219] is the sub-list for extension extendee + 0, // [0:219] is the sub-list for field type_name } func init() { file_api_v1_k8s_proto_init() } @@ -11882,7 +12497,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllWorkloadNamesRequest); i { + switch v := v.(*SearchNamespacesByClusterRequest); i { case 0: return &v.state case 1: @@ -11894,7 +12509,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllWorkloadNamesResponse); i { + switch v := v.(*SearchNamespacesByClusterResponse); i { case 0: return &v.state case 1: @@ -11906,7 +12521,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllWorkloadLabelsRequest); i { + switch v := v.(*GetAllWorkloadNamesRequest); i { case 0: return &v.state case 1: @@ -11918,7 +12533,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllWorkloadLabelsResponse); i { + switch v := v.(*GetAllWorkloadNamesResponse); i { case 0: return &v.state case 1: @@ -11930,7 +12545,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllNodeGroupNamesRequest); i { + switch v := v.(*GetAllWorkloadLabelsRequest); i { case 0: return &v.state case 1: @@ -11942,7 +12557,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllNodeGroupNamesResponse); i { + switch v := v.(*GetAllWorkloadLabelsResponse); i { case 0: return &v.state case 1: @@ -11954,7 +12569,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cluster); i { + switch v := v.(*GetAllNodeGroupNamesRequest); i { case 0: return &v.state case 1: @@ -11966,7 +12581,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperatorInfo); i { + switch v := v.(*GetAllNodeGroupNamesResponse); i { case 0: return &v.state case 1: @@ -11978,7 +12593,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Container); i { + switch v := v.(*Cluster); i { case 0: return &v.state case 1: @@ -11990,7 +12605,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLatestOperatorVersionRequest); i { + switch v := v.(*OperatorInfo); i { case 0: return &v.state case 1: @@ -12002,7 +12617,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLatestOperatorVersionResponse); i { + switch v := v.(*Container); i { case 0: return &v.state case 1: @@ -12014,7 +12629,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyGetClusterPerspectiveRequest); i { + switch v := v.(*GetLatestOperatorVersionRequest); i { case 0: return &v.state case 1: @@ -12026,7 +12641,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyGetClusterPerspectiveResponse); i { + switch v := v.(*GetLatestOperatorVersionResponse); i { case 0: return &v.state case 1: @@ -12038,7 +12653,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyClusterGroup); i { + switch v := v.(*GalaxyGetClusterPerspectiveRequest); i { case 0: return &v.state case 1: @@ -12050,7 +12665,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyGetNodePerspectiveRequest); i { + switch v := v.(*GalaxyGetClusterPerspectiveResponse); i { case 0: return &v.state case 1: @@ -12062,7 +12677,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyGetNodePerspectiveResponse); i { + switch v := v.(*GalaxyClusterGroup); i { case 0: return &v.state case 1: @@ -12074,7 +12689,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyNodeGroup); i { + switch v := v.(*GalaxyGetNodePerspectiveRequest); i { case 0: return &v.state case 1: @@ -12086,7 +12701,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyGetWorkloadPerspectiveRequest); i { + switch v := v.(*GalaxyGetNodePerspectiveResponse); i { case 0: return &v.state case 1: @@ -12098,7 +12713,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyGetWorkloadPerspectiveResponse); i { + switch v := v.(*GalaxyNodeGroup); i { case 0: return &v.state case 1: @@ -12110,7 +12725,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GalaxyWorkloadGroup); i { + switch v := v.(*GalaxyGetWorkloadPerspectiveRequest); i { case 0: return &v.state case 1: @@ -12122,7 +12737,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PerspectiveDatapointOpts); i { + switch v := v.(*GalaxyGetWorkloadPerspectiveResponse); i { case 0: return &v.state case 1: @@ -12134,7 +12749,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAuditLogsRequest); i { + switch v := v.(*GalaxyWorkloadGroup); i { case 0: return &v.state case 1: @@ -12146,7 +12761,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAuditLogsResponse); i { + switch v := v.(*PerspectiveDatapointOpts); i { case 0: return &v.state case 1: @@ -12158,7 +12773,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAuditLogOriginatorsRequest); i { + switch v := v.(*ListAuditLogsRequest); i { case 0: return &v.state case 1: @@ -12170,7 +12785,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAuditLogOriginatorsResponse); i { + switch v := v.(*ListAuditLogsResponse); i { case 0: return &v.state case 1: @@ -12182,7 +12797,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendWorkloadEmailRequest); i { + switch v := v.(*ListAuditLogOriginatorsRequest); i { case 0: return &v.state case 1: @@ -12194,7 +12809,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendWorkloadEmailResponse); i { + switch v := v.(*ListAuditLogOriginatorsResponse); i { case 0: return &v.state case 1: @@ -12206,7 +12821,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendWeeklySummaryEmailRequest); i { + switch v := v.(*SendWorkloadEmailRequest); i { case 0: return &v.state case 1: @@ -12218,7 +12833,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendWeeklySummaryEmailRequestData); i { + switch v := v.(*SendWorkloadEmailResponse); i { case 0: return &v.state case 1: @@ -12230,7 +12845,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendWeeklySummaryEmailResponse); i { + switch v := v.(*SendWeeklySummaryEmailRequest); i { case 0: return &v.state case 1: @@ -12242,7 +12857,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClustersNodeInfoRequest); i { + switch v := v.(*SendWeeklySummaryEmailRequestData); i { case 0: return &v.state case 1: @@ -12254,7 +12869,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClustersNodeInfoResponse); i { + switch v := v.(*SendWeeklySummaryEmailResponse); i { case 0: return &v.state case 1: @@ -12266,7 +12881,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchK8SResourcesRequest); i { + switch v := v.(*GetClustersNodeInfoRequest); i { case 0: return &v.state case 1: @@ -12278,7 +12893,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchK8SResourcesResponse); i { + switch v := v.(*GetClustersNodeInfoResponse); i { case 0: return &v.state case 1: @@ -12290,7 +12905,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SSearchResult); i { + switch v := v.(*SearchK8SResourcesRequest); i { case 0: return &v.state case 1: @@ -12302,7 +12917,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchK8SWorkloadsRequest); i { + switch v := v.(*SearchK8SResourcesResponse); i { case 0: return &v.state case 1: @@ -12314,7 +12929,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchK8SWorkloadsResponse); i { + switch v := v.(*K8SSearchResult); i { case 0: return &v.state case 1: @@ -12326,7 +12941,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SWorkloadSearchResult); i { + switch v := v.(*SearchK8SWorkloadsRequest); i { case 0: return &v.state case 1: @@ -12338,7 +12953,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetadataForWorkloadsRequest); i { + switch v := v.(*SearchK8SWorkloadsResponse); i { case 0: return &v.state case 1: @@ -12350,7 +12965,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetadataForWorkloadsResponse); i { + switch v := v.(*K8SWorkloadSearchResult); i { case 0: return &v.state case 1: @@ -12362,7 +12977,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkloadMetadata); i { + switch v := v.(*MetadataForWorkloadsRequest); i { case 0: return &v.state case 1: @@ -12374,7 +12989,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PodMetadata); i { + switch v := v.(*MetadataForWorkloadsResponse); i { case 0: return &v.state case 1: @@ -12386,7 +13001,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeMetadata); i { + switch v := v.(*AddClusterTagsRequest); i { case 0: return &v.state case 1: @@ -12398,7 +13013,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRelatedResourcesRequest); i { + switch v := v.(*AddClusterTagsResponse); i { case 0: return &v.state case 1: @@ -12410,7 +13025,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkloadPodHistoryResponse); i { + switch v := v.(*RemoveClusterTagsRequest); i { case 0: return &v.state case 1: @@ -12422,7 +13037,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobHistory); i { + switch v := v.(*RemoveClusterTagsResponse); i { case 0: return &v.state case 1: @@ -12434,7 +13049,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaSetHistory); i { + switch v := v.(*ListTagsRequest); i { case 0: return &v.state case 1: @@ -12446,7 +13061,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PodHistory); i { + switch v := v.(*TagSummary); i { case 0: return &v.state case 1: @@ -12458,7 +13073,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRelatedResourcesResponse); i { + switch v := v.(*ListTagsResponse); i { case 0: return &v.state case 1: @@ -12470,7 +13085,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SRelatedResource); i { + switch v := v.(*WorkloadMetadata); i { case 0: return &v.state case 1: @@ -12482,7 +13097,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SResourceNode); i { + switch v := v.(*PodMetadata); i { case 0: return &v.state case 1: @@ -12494,7 +13109,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SResourceEdge); i { + switch v := v.(*NodeMetadata); i { case 0: return &v.state case 1: @@ -12506,7 +13121,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClusterTypeRequest); i { + switch v := v.(*GetRelatedResourcesRequest); i { case 0: return &v.state case 1: @@ -12518,7 +13133,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClusterTypeResponse); i { + switch v := v.(*GetWorkloadPodHistoryResponse); i { case 0: return &v.state case 1: @@ -12530,7 +13145,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkloadsStatsRequest); i { + switch v := v.(*JobHistory); i { case 0: return &v.state case 1: @@ -12542,7 +13157,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkloadsStatsResponse); i { + switch v := v.(*ReplicaSetHistory); i { case 0: return &v.state case 1: @@ -12554,7 +13169,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DailyUtilizationRequest); i { + switch v := v.(*PodHistory); i { case 0: return &v.state case 1: @@ -12566,7 +13181,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DailyUtilizationResponse); i { + switch v := v.(*GetRelatedResourcesResponse); i { case 0: return &v.state case 1: @@ -12578,7 +13193,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DailyUtilizationInstanceTypeRequest); i { + switch v := v.(*K8SRelatedResource); i { case 0: return &v.state case 1: @@ -12590,7 +13205,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DailyUtilizationInstanceTypeResponse); i { + switch v := v.(*K8SResourceNode); i { case 0: return &v.state case 1: @@ -12602,7 +13217,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DailyUtilizationNodeTypeRequest); i { + switch v := v.(*K8SResourceEdge); i { case 0: return &v.state case 1: @@ -12614,7 +13229,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DailyUtilizationNodeTypeResponse); i { + switch v := v.(*GetClusterTypeRequest); i { case 0: return &v.state case 1: @@ -12626,7 +13241,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LookupNodeInstanceRequest); i { + switch v := v.(*GetClusterTypeResponse); i { case 0: return &v.state case 1: @@ -12638,7 +13253,7 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InstanceLookupParams); i { + switch v := v.(*GetWorkloadsStatsRequest); i { case 0: return &v.state case 1: @@ -12650,7 +13265,19 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LookupNodeInstanceResponse); i { + switch v := v.(*GetWorkloadsStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyUtilizationRequest); i { case 0: return &v.state case 1: @@ -12662,6 +13289,102 @@ func file_api_v1_k8s_proto_init() { } } file_api_v1_k8s_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyUtilizationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyUtilizationInstanceTypeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyUtilizationInstanceTypeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyUtilizationNodeTypeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyUtilizationNodeTypeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LookupNodeInstanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstanceLookupParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LookupNodeInstanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_k8s_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNodeGroupsUtilizationResponse_ListNodeGroupMetrics); i { case 0: return &v.state @@ -12673,7 +13396,7 @@ func file_api_v1_k8s_proto_init() { return nil } } - file_api_v1_k8s_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_k8s_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DailyUtilizationResponse_Datapoints); i { case 0: return &v.state @@ -12685,7 +13408,7 @@ func file_api_v1_k8s_proto_init() { return nil } } - file_api_v1_k8s_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_k8s_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DailyUtilizationResponse_Datapoint); i { case 0: return &v.state @@ -12697,7 +13420,7 @@ func file_api_v1_k8s_proto_init() { return nil } } - file_api_v1_k8s_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_k8s_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DailyUtilizationInstanceTypeResponse_Datapoints); i { case 0: return &v.state @@ -12709,7 +13432,7 @@ func file_api_v1_k8s_proto_init() { return nil } } - file_api_v1_k8s_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_k8s_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DailyUtilizationInstanceTypeResponse_Datapoint); i { case 0: return &v.state @@ -12721,7 +13444,7 @@ func file_api_v1_k8s_proto_init() { return nil } } - file_api_v1_k8s_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_k8s_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DailyUtilizationNodeTypeResponse_Datapoints); i { case 0: return &v.state @@ -12733,7 +13456,7 @@ func file_api_v1_k8s_proto_init() { return nil } } - file_api_v1_k8s_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_k8s_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DailyUtilizationNodeTypeResponse_Datapoint); i { case 0: return &v.state @@ -12760,19 +13483,19 @@ func file_api_v1_k8s_proto_init() { file_api_v1_k8s_proto_msgTypes[26].OneofWrappers = []interface{}{} file_api_v1_k8s_proto_msgTypes[36].OneofWrappers = []interface{}{} file_api_v1_k8s_proto_msgTypes[38].OneofWrappers = []interface{}{} - file_api_v1_k8s_proto_msgTypes[50].OneofWrappers = []interface{}{} - file_api_v1_k8s_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_api_v1_k8s_proto_msgTypes[52].OneofWrappers = []interface{}{} file_api_v1_k8s_proto_msgTypes[67].OneofWrappers = []interface{}{} - file_api_v1_k8s_proto_msgTypes[74].OneofWrappers = []interface{}{} - file_api_v1_k8s_proto_msgTypes[87].OneofWrappers = []interface{}{} - file_api_v1_k8s_proto_msgTypes[98].OneofWrappers = []interface{}{} + file_api_v1_k8s_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_api_v1_k8s_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_api_v1_k8s_proto_msgTypes[96].OneofWrappers = []interface{}{} + file_api_v1_k8s_proto_msgTypes[107].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_v1_k8s_proto_rawDesc, NumEnums: 4, - NumMessages: 135, + NumMessages: 144, NumExtensions: 0, NumServices: 3, }, diff --git a/gen/api/v1/k8s_grpc.pb.go b/gen/api/v1/k8s_grpc.pb.go index 3e4c49b1..34b30db3 100644 --- a/gen/api/v1/k8s_grpc.pb.go +++ b/gen/api/v1/k8s_grpc.pb.go @@ -25,6 +25,7 @@ const ( K8SService_GetCluster_FullMethodName = "/api.v1.K8SService/GetCluster" K8SService_GetClusterMetadata_FullMethodName = "/api.v1.K8SService/GetClusterMetadata" K8SService_GetAllNamespaces_FullMethodName = "/api.v1.K8SService/GetAllNamespaces" + K8SService_SearchNamespacesByCluster_FullMethodName = "/api.v1.K8SService/SearchNamespacesByCluster" K8SService_GetAllWorkloadNames_FullMethodName = "/api.v1.K8SService/GetAllWorkloadNames" K8SService_GetAllWorkloadLabels_FullMethodName = "/api.v1.K8SService/GetAllWorkloadLabels" K8SService_GetAllNodeGroupNames_FullMethodName = "/api.v1.K8SService/GetAllNodeGroupNames" @@ -55,6 +56,9 @@ const ( K8SService_GetRelationsForKind_FullMethodName = "/api.v1.K8SService/GetRelationsForKind" K8SService_LookupNodeInstance_FullMethodName = "/api.v1.K8SService/LookupNodeInstance" K8SService_GetWorkloadPodHistory_FullMethodName = "/api.v1.K8SService/GetWorkloadPodHistory" + K8SService_AddClusterTags_FullMethodName = "/api.v1.K8SService/AddClusterTags" + K8SService_RemoveClusterTags_FullMethodName = "/api.v1.K8SService/RemoveClusterTags" + K8SService_ListTags_FullMethodName = "/api.v1.K8SService/ListTags" ) // K8SServiceClient is the client API for K8SService service. @@ -75,6 +79,8 @@ type K8SServiceClient interface { GetClusterMetadata(ctx context.Context, in *GetClusterMetadataRequest, opts ...grpc.CallOption) (*GetClusterMetadataResponse, error) // GetAllNamespaces returns a list of all namespaces for a teamID; if cluster list is empty, returns all. GetAllNamespaces(ctx context.Context, in *GetAllNamespacesRequest, opts ...grpc.CallOption) (*GetAllNamespacesResponse, error) + // SearchNamespacesByCluster searches namespaces by name within a single cluster. + SearchNamespacesByCluster(ctx context.Context, in *SearchNamespacesByClusterRequest, opts ...grpc.CallOption) (*SearchNamespacesByClusterResponse, error) // GetAllWorkloadNames returns a list of all workload names for a team ID; if cluster list is empty, returns all. GetAllWorkloadNames(ctx context.Context, in *GetAllWorkloadNamesRequest, opts ...grpc.CallOption) (*GetAllWorkloadNamesResponse, error) // GetAllWorkloadLabels returns all workload labels for a team ID; if cluster list is empty, returns all. @@ -127,6 +133,12 @@ type K8SServiceClient interface { LookupNodeInstance(ctx context.Context, in *LookupNodeInstanceRequest, opts ...grpc.CallOption) (*LookupNodeInstanceResponse, error) // GetWorkloadPodHistory retrieves historical pods for a workload. GetWorkloadPodHistory(ctx context.Context, in *GetWorkloadPodHistoryRequest, opts ...grpc.CallOption) (*GetWorkloadPodHistoryResponse, error) + // AddClusterTags adds tags to a cluster. + AddClusterTags(ctx context.Context, in *AddClusterTagsRequest, opts ...grpc.CallOption) (*AddClusterTagsResponse, error) + // RemoveClusterTags removes tags from a cluster. + RemoveClusterTags(ctx context.Context, in *RemoveClusterTagsRequest, opts ...grpc.CallOption) (*RemoveClusterTagsResponse, error) + // ListTags lists all tags for a team. + ListTags(ctx context.Context, in *ListTagsRequest, opts ...grpc.CallOption) (*ListTagsResponse, error) } type k8SServiceClient struct { @@ -192,6 +204,15 @@ func (c *k8SServiceClient) GetAllNamespaces(ctx context.Context, in *GetAllNames return out, nil } +func (c *k8SServiceClient) SearchNamespacesByCluster(ctx context.Context, in *SearchNamespacesByClusterRequest, opts ...grpc.CallOption) (*SearchNamespacesByClusterResponse, error) { + out := new(SearchNamespacesByClusterResponse) + err := c.cc.Invoke(ctx, K8SService_SearchNamespacesByCluster_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *k8SServiceClient) GetAllWorkloadNames(ctx context.Context, in *GetAllWorkloadNamesRequest, opts ...grpc.CallOption) (*GetAllWorkloadNamesResponse, error) { out := new(GetAllWorkloadNamesResponse) err := c.cc.Invoke(ctx, K8SService_GetAllWorkloadNames_FullMethodName, in, out, opts...) @@ -464,6 +485,33 @@ func (c *k8SServiceClient) GetWorkloadPodHistory(ctx context.Context, in *GetWor return out, nil } +func (c *k8SServiceClient) AddClusterTags(ctx context.Context, in *AddClusterTagsRequest, opts ...grpc.CallOption) (*AddClusterTagsResponse, error) { + out := new(AddClusterTagsResponse) + err := c.cc.Invoke(ctx, K8SService_AddClusterTags_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *k8SServiceClient) RemoveClusterTags(ctx context.Context, in *RemoveClusterTagsRequest, opts ...grpc.CallOption) (*RemoveClusterTagsResponse, error) { + out := new(RemoveClusterTagsResponse) + err := c.cc.Invoke(ctx, K8SService_RemoveClusterTags_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *k8SServiceClient) ListTags(ctx context.Context, in *ListTagsRequest, opts ...grpc.CallOption) (*ListTagsResponse, error) { + out := new(ListTagsResponse) + err := c.cc.Invoke(ctx, K8SService_ListTags_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // K8SServiceServer is the server API for K8SService service. // All implementations must embed UnimplementedK8SServiceServer // for forward compatibility @@ -482,6 +530,8 @@ type K8SServiceServer interface { GetClusterMetadata(context.Context, *GetClusterMetadataRequest) (*GetClusterMetadataResponse, error) // GetAllNamespaces returns a list of all namespaces for a teamID; if cluster list is empty, returns all. GetAllNamespaces(context.Context, *GetAllNamespacesRequest) (*GetAllNamespacesResponse, error) + // SearchNamespacesByCluster searches namespaces by name within a single cluster. + SearchNamespacesByCluster(context.Context, *SearchNamespacesByClusterRequest) (*SearchNamespacesByClusterResponse, error) // GetAllWorkloadNames returns a list of all workload names for a team ID; if cluster list is empty, returns all. GetAllWorkloadNames(context.Context, *GetAllWorkloadNamesRequest) (*GetAllWorkloadNamesResponse, error) // GetAllWorkloadLabels returns all workload labels for a team ID; if cluster list is empty, returns all. @@ -534,6 +584,12 @@ type K8SServiceServer interface { LookupNodeInstance(context.Context, *LookupNodeInstanceRequest) (*LookupNodeInstanceResponse, error) // GetWorkloadPodHistory retrieves historical pods for a workload. GetWorkloadPodHistory(context.Context, *GetWorkloadPodHistoryRequest) (*GetWorkloadPodHistoryResponse, error) + // AddClusterTags adds tags to a cluster. + AddClusterTags(context.Context, *AddClusterTagsRequest) (*AddClusterTagsResponse, error) + // RemoveClusterTags removes tags from a cluster. + RemoveClusterTags(context.Context, *RemoveClusterTagsRequest) (*RemoveClusterTagsResponse, error) + // ListTags lists all tags for a team. + ListTags(context.Context, *ListTagsRequest) (*ListTagsResponse, error) mustEmbedUnimplementedK8SServiceServer() } @@ -559,6 +615,9 @@ func (UnimplementedK8SServiceServer) GetClusterMetadata(context.Context, *GetClu func (UnimplementedK8SServiceServer) GetAllNamespaces(context.Context, *GetAllNamespacesRequest) (*GetAllNamespacesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAllNamespaces not implemented") } +func (UnimplementedK8SServiceServer) SearchNamespacesByCluster(context.Context, *SearchNamespacesByClusterRequest) (*SearchNamespacesByClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchNamespacesByCluster not implemented") +} func (UnimplementedK8SServiceServer) GetAllWorkloadNames(context.Context, *GetAllWorkloadNamesRequest) (*GetAllWorkloadNamesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAllWorkloadNames not implemented") } @@ -649,6 +708,15 @@ func (UnimplementedK8SServiceServer) LookupNodeInstance(context.Context, *Lookup func (UnimplementedK8SServiceServer) GetWorkloadPodHistory(context.Context, *GetWorkloadPodHistoryRequest) (*GetWorkloadPodHistoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetWorkloadPodHistory not implemented") } +func (UnimplementedK8SServiceServer) AddClusterTags(context.Context, *AddClusterTagsRequest) (*AddClusterTagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddClusterTags not implemented") +} +func (UnimplementedK8SServiceServer) RemoveClusterTags(context.Context, *RemoveClusterTagsRequest) (*RemoveClusterTagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveClusterTags not implemented") +} +func (UnimplementedK8SServiceServer) ListTags(context.Context, *ListTagsRequest) (*ListTagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListTags not implemented") +} func (UnimplementedK8SServiceServer) mustEmbedUnimplementedK8SServiceServer() {} // UnsafeK8SServiceServer may be embedded to opt out of forward compatibility for this service. @@ -770,6 +838,24 @@ func _K8SService_GetAllNamespaces_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _K8SService_SearchNamespacesByCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchNamespacesByClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(K8SServiceServer).SearchNamespacesByCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: K8SService_SearchNamespacesByCluster_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(K8SServiceServer).SearchNamespacesByCluster(ctx, req.(*SearchNamespacesByClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _K8SService_GetAllWorkloadNames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetAllWorkloadNamesRequest) if err := dec(in); err != nil { @@ -1310,6 +1396,60 @@ func _K8SService_GetWorkloadPodHistory_Handler(srv interface{}, ctx context.Cont return interceptor(ctx, in, info, handler) } +func _K8SService_AddClusterTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddClusterTagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(K8SServiceServer).AddClusterTags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: K8SService_AddClusterTags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(K8SServiceServer).AddClusterTags(ctx, req.(*AddClusterTagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _K8SService_RemoveClusterTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveClusterTagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(K8SServiceServer).RemoveClusterTags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: K8SService_RemoveClusterTags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(K8SServiceServer).RemoveClusterTags(ctx, req.(*RemoveClusterTagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _K8SService_ListTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListTagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(K8SServiceServer).ListTags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: K8SService_ListTags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(K8SServiceServer).ListTags(ctx, req.(*ListTagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // K8SService_ServiceDesc is the grpc.ServiceDesc for K8SService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1341,6 +1481,10 @@ var K8SService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetAllNamespaces", Handler: _K8SService_GetAllNamespaces_Handler, }, + { + MethodName: "SearchNamespacesByCluster", + Handler: _K8SService_SearchNamespacesByCluster_Handler, + }, { MethodName: "GetAllWorkloadNames", Handler: _K8SService_GetAllWorkloadNames_Handler, @@ -1461,6 +1605,18 @@ var K8SService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetWorkloadPodHistory", Handler: _K8SService_GetWorkloadPodHistory_Handler, }, + { + MethodName: "AddClusterTags", + Handler: _K8SService_AddClusterTags_Handler, + }, + { + MethodName: "RemoveClusterTags", + Handler: _K8SService_RemoveClusterTags_Handler, + }, + { + MethodName: "ListTags", + Handler: _K8SService_ListTags_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "api/v1/k8s.proto", diff --git a/gen/api/v1/metrics_collector.pb.go b/gen/api/v1/metrics_collector.pb.go index 5b653b58..e812960c 100644 --- a/gen/api/v1/metrics_collector.pb.go +++ b/gen/api/v1/metrics_collector.pb.go @@ -1519,14 +1519,15 @@ type Namespace struct { UnscheduledPods map[string]*ResourceIdentifier `protobuf:"bytes,21,rep,name=unscheduled_pods,json=unscheduledPods,proto3" json:"unscheduled_pods,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` HorizontalPodAutoscalers map[string]*ResourceIdentifier `protobuf:"bytes,22,rep,name=horizontal_pod_autoscalers,json=horizontalPodAutoscalers,proto3" json:"horizontal_pod_autoscalers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Deprecated: Marked as deprecated in api/v1/metrics_collector.proto. - Events map[string]*ResourceIdentifier `protobuf:"bytes,23,rep,name=events,proto3" json:"events,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - KedaScaledJobs map[string]*ResourceIdentifier `protobuf:"bytes,24,rep,name=keda_scaled_jobs,json=kedaScaledJobs,proto3" json:"keda_scaled_jobs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - KedaScaledObjects map[string]*ResourceIdentifier `protobuf:"bytes,25,rep,name=keda_scaled_objects,json=kedaScaledObjects,proto3" json:"keda_scaled_objects,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Hash string `protobuf:"bytes,26,opt,name=hash,proto3" json:"hash,omitempty"` - CsiStorageCapacities map[string]*ResourceIdentifier `protobuf:"bytes,27,rep,name=csi_storage_capacities,json=csiStorageCapacities,proto3" json:"csi_storage_capacities,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - KubeflowNotebooks map[string]*ResourceIdentifier `protobuf:"bytes,28,rep,name=kubeflow_notebooks,json=kubeflowNotebooks,proto3" json:"kubeflow_notebooks,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - VolcanoJobs map[string]*ResourceIdentifier `protobuf:"bytes,29,rep,name=volcano_jobs,json=volcanoJobs,proto3" json:"volcano_jobs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - SparkApplications map[string]*ResourceIdentifier `protobuf:"bytes,30,rep,name=spark_applications,json=sparkApplications,proto3" json:"spark_applications,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Events map[string]*ResourceIdentifier `protobuf:"bytes,23,rep,name=events,proto3" json:"events,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + KedaScaledJobs map[string]*ResourceIdentifier `protobuf:"bytes,24,rep,name=keda_scaled_jobs,json=kedaScaledJobs,proto3" json:"keda_scaled_jobs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + KedaScaledObjects map[string]*ResourceIdentifier `protobuf:"bytes,25,rep,name=keda_scaled_objects,json=kedaScaledObjects,proto3" json:"keda_scaled_objects,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Hash string `protobuf:"bytes,26,opt,name=hash,proto3" json:"hash,omitempty"` + CsiStorageCapacities map[string]*ResourceIdentifier `protobuf:"bytes,27,rep,name=csi_storage_capacities,json=csiStorageCapacities,proto3" json:"csi_storage_capacities,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + KubeflowNotebooks map[string]*ResourceIdentifier `protobuf:"bytes,28,rep,name=kubeflow_notebooks,json=kubeflowNotebooks,proto3" json:"kubeflow_notebooks,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + VolcanoJobs map[string]*ResourceIdentifier `protobuf:"bytes,29,rep,name=volcano_jobs,json=volcanoJobs,proto3" json:"volcano_jobs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + SparkApplications map[string]*ResourceIdentifier `protobuf:"bytes,30,rep,name=spark_applications,json=sparkApplications,proto3" json:"spark_applications,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ScheduledSparkApplications map[string]*ResourceIdentifier `protobuf:"bytes,31,rep,name=scheduled_spark_applications,json=scheduledSparkApplications,proto3" json:"scheduled_spark_applications,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Namespace) Reset() { @@ -1773,6 +1774,13 @@ func (x *Namespace) GetSparkApplications() map[string]*ResourceIdentifier { return nil } +func (x *Namespace) GetScheduledSparkApplications() map[string]*ResourceIdentifier { + if x != nil { + return x.ScheduledSparkApplications + } + return nil +} + // ClusterScopedSnapshot contains minimal cluster-scoped resource data type ClusterScopedSnapshot struct { state protoimpl.MessageState @@ -2921,7 +2929,7 @@ var file_api_v1_metrics_collector_proto_rawDesc = []byte{ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xa1, 0x25, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x01, 0x22, 0x81, 0x27, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x09, @@ -3056,164 +3064,178 @@ var file_api_v1_metrics_collector_proto_rawDesc = []byte{ 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x5a, 0x0a, 0x10, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 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, - 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, - 0x6c, 0x53, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x0f, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, - 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x0d, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 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, 0x30, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x56, 0x0a, - 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x09, 0x50, 0x76, 0x63, 0x73, 0x45, 0x6e, 0x74, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x73, 0x0a, 0x1c, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x70, 0x61, 0x72, + 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x1a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x70, 0x61, + 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x5a, + 0x0a, 0x10, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x09, 0x4a, 0x6f, - 0x62, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x57, 0x0a, 0x0d, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x0e, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 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, 0x30, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x14, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x11, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x0f, 0x44, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, + 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 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, - 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x19, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, - 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x38, 0x01, 0x1a, 0x56, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x0e, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 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, 0x30, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, - 0x67, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x5d, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, - 0x61, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x5e, 0x0a, 0x14, 0x55, 0x6e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x50, 0x6f, - 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x09, 0x50, 0x76, + 0x63, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x67, 0x0a, 0x1d, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x64, - 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, + 0x53, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 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, 0x30, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x0d, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, + 0x0e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x14, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x63, 0x63, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, + 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x19, 0x50, 0x6f, + 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x5d, 0x0a, 0x13, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, - 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, - 0x0a, 0x16, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x63, 0x0a, 0x19, 0x43, 0x73, 0x69, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x61, - 0x70, 0x61, 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x58, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4b, 0x75, 0x62, 0x65, 0x66, 0x6c, 0x6f, - 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, 0x56, 0x6f, 0x6c, 0x63, 0x61, - 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 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, 0x30, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x14, 0x55, 0x6e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x64, 0x50, 0x6f, 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, 0x30, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1d, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x50, 0x6f, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, + 0x0b, 0x45, 0x76, 0x65, 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, 0x30, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x13, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x64, 0x4a, 0x6f, 0x62, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, + 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 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, + 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x19, 0x43, 0x73, 0x69, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x69, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4b, 0x75, + 0x62, 0x65, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, + 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x53, 0x70, 0x61, 0x72, + 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x69, 0x0a, 0x1f, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, @@ -3510,7 +3532,7 @@ var file_api_v1_metrics_collector_proto_rawDesc = []byte{ 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, - 0x09, 0x2a, 0xf0, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, + 0x09, 0x2a, 0x91, 0x0f, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, @@ -3627,69 +3649,71 @@ var file_api_v1_metrics_collector_proto_rawDesc = []byte{ 0x49, 0x43, 0x53, 0x10, 0x36, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x37, - 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, - 0x4f, 0x54, 0x10, 0x4d, 0x2a, 0x8c, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, - 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, - 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, - 0x4e, 0x46, 0x4f, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, - 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x13, - 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x46, 0x41, 0x54, 0x41, - 0x4c, 0x10, 0x05, 0x32, 0xa0, 0x05, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x49, 0x0a, 0x0c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, - 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, - 0x6e, 0x6b, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, + 0x38, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, + 0x48, 0x4f, 0x54, 0x10, 0x4d, 0x2a, 0x8c, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, + 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, + 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x46, 0x41, 0x54, + 0x41, 0x4c, 0x10, 0x05, 0x32, 0xa0, 0x05, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x49, 0x0a, 0x0c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x12, - 0x58, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, - 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, 0x67, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x19, 0x53, 0x65, 0x6e, - 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x4e, - 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x8e, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, - 0x72, 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, - 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, - 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, + 0x75, 0x6e, 0x6b, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, + 0x12, 0x58, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x19, 0x53, 0x65, + 0x6e, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, + 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x8e, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, + 0x65, 0x72, 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x07, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3705,7 +3729,7 @@ func file_api_v1_metrics_collector_proto_rawDescGZIP() []byte { } var file_api_v1_metrics_collector_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_api_v1_metrics_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 70) +var file_api_v1_metrics_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 71) var file_api_v1_metrics_collector_proto_goTypes = []interface{}{ (EventType)(0), // 0: api.v1.EventType (ResourceType)(0), // 1: api.v1.ResourceType @@ -3766,45 +3790,46 @@ var file_api_v1_metrics_collector_proto_goTypes = []interface{}{ nil, // 56: api.v1.Namespace.KubeflowNotebooksEntry nil, // 57: api.v1.Namespace.VolcanoJobsEntry nil, // 58: api.v1.Namespace.SparkApplicationsEntry - nil, // 59: api.v1.ClusterScopedSnapshot.PersistentVolumesEntry - nil, // 60: api.v1.ClusterScopedSnapshot.StorageClassesEntry - nil, // 61: api.v1.ClusterScopedSnapshot.ClusterRolesEntry - nil, // 62: api.v1.ClusterScopedSnapshot.ClusterRoleBindingsEntry - nil, // 63: api.v1.ClusterScopedSnapshot.CustomResourceDefinitionsEntry - nil, // 64: api.v1.ClusterScopedSnapshot.IngressClassesEntry - nil, // 65: api.v1.ClusterScopedSnapshot.CsiNodesEntry - nil, // 66: api.v1.ClusterScopedSnapshot.CsiDriversEntry - nil, // 67: api.v1.ClusterScopedSnapshot.VolumeAttachmentsEntry - nil, // 68: api.v1.ClusterSnapshot.NodesEntry - nil, // 69: api.v1.ClusterSnapshot.NamespacesEntry - nil, // 70: api.v1.SendNetworkTrafficMetricsRequest.Ip2domainEntry - nil, // 71: api.v1.LogEntry.FieldsEntry - nil, // 72: api.v1.NodeMetadataResponse.NodeToMetaEntry - (*timestamppb.Timestamp)(nil), // 73: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 74: google.protobuf.Struct - (*_go.MetricFamily)(nil), // 75: io.prometheus.client.MetricFamily - (*Node)(nil), // 76: api.v1.Node + nil, // 59: api.v1.Namespace.ScheduledSparkApplicationsEntry + nil, // 60: api.v1.ClusterScopedSnapshot.PersistentVolumesEntry + nil, // 61: api.v1.ClusterScopedSnapshot.StorageClassesEntry + nil, // 62: api.v1.ClusterScopedSnapshot.ClusterRolesEntry + nil, // 63: api.v1.ClusterScopedSnapshot.ClusterRoleBindingsEntry + nil, // 64: api.v1.ClusterScopedSnapshot.CustomResourceDefinitionsEntry + nil, // 65: api.v1.ClusterScopedSnapshot.IngressClassesEntry + nil, // 66: api.v1.ClusterScopedSnapshot.CsiNodesEntry + nil, // 67: api.v1.ClusterScopedSnapshot.CsiDriversEntry + nil, // 68: api.v1.ClusterScopedSnapshot.VolumeAttachmentsEntry + nil, // 69: api.v1.ClusterSnapshot.NodesEntry + nil, // 70: api.v1.ClusterSnapshot.NamespacesEntry + nil, // 71: api.v1.SendNetworkTrafficMetricsRequest.Ip2domainEntry + nil, // 72: api.v1.LogEntry.FieldsEntry + nil, // 73: api.v1.NodeMetadataResponse.NodeToMetaEntry + (*timestamppb.Timestamp)(nil), // 74: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 75: google.protobuf.Struct + (*_go.MetricFamily)(nil), // 76: io.prometheus.client.MetricFamily + (*Node)(nil), // 77: api.v1.Node } var file_api_v1_metrics_collector_proto_depIdxs = []int32{ - 73, // 0: api.v1.ResourceItem.timestamp:type_name -> google.protobuf.Timestamp + 74, // 0: api.v1.ResourceItem.timestamp:type_name -> google.protobuf.Timestamp 0, // 1: api.v1.ResourceItem.event_type:type_name -> api.v1.EventType - 74, // 2: api.v1.ResourceItem.data:type_name -> google.protobuf.Struct + 75, // 2: api.v1.ResourceItem.data:type_name -> google.protobuf.Struct 1, // 3: api.v1.ResourceItem.resource_type:type_name -> api.v1.ResourceType 1, // 4: api.v1.SendResourceRequest.resource_type:type_name -> api.v1.ResourceType - 73, // 5: api.v1.SendResourceRequest.timestamp:type_name -> google.protobuf.Timestamp + 74, // 5: api.v1.SendResourceRequest.timestamp:type_name -> google.protobuf.Timestamp 0, // 6: api.v1.SendResourceRequest.event_type:type_name -> api.v1.EventType - 74, // 7: api.v1.SendResourceRequest.data:type_name -> google.protobuf.Struct + 75, // 7: api.v1.SendResourceRequest.data:type_name -> google.protobuf.Struct 3, // 8: api.v1.SendResourceBatchRequest.resources:type_name -> api.v1.ResourceItem - 73, // 9: api.v1.GetForecastMetricsRequest.start_time:type_name -> google.protobuf.Timestamp - 73, // 10: api.v1.GetForecastMetricsRequest.end_time:type_name -> google.protobuf.Timestamp + 74, // 9: api.v1.GetForecastMetricsRequest.start_time:type_name -> google.protobuf.Timestamp + 74, // 10: api.v1.GetForecastMetricsRequest.end_time:type_name -> google.protobuf.Timestamp 8, // 11: api.v1.GetForecastMetricsResponse.metrics:type_name -> api.v1.ContainerForecastMetric - 73, // 12: api.v1.ContainerForecastMetric.timestamp:type_name -> google.protobuf.Timestamp - 73, // 13: api.v1.ContainerForecastMetric.created_at:type_name -> google.protobuf.Timestamp - 73, // 14: api.v1.ContainerForecastMetric.updated_at:type_name -> google.protobuf.Timestamp + 74, // 12: api.v1.ContainerForecastMetric.timestamp:type_name -> google.protobuf.Timestamp + 74, // 13: api.v1.ContainerForecastMetric.created_at:type_name -> google.protobuf.Timestamp + 74, // 14: api.v1.ContainerForecastMetric.updated_at:type_name -> google.protobuf.Timestamp 1, // 15: api.v1.SendResourceResponse.resource_type:type_name -> api.v1.ResourceType 1, // 16: api.v1.SendResourceBatchResponse.resource_type:type_name -> api.v1.ResourceType - 75, // 17: api.v1.SendTelemetryMetricsRequest.metric_families:type_name -> io.prometheus.client.MetricFamily - 73, // 18: api.v1.ClusterSnapshotChunk.timestamp:type_name -> google.protobuf.Timestamp + 76, // 17: api.v1.SendTelemetryMetricsRequest.metric_families:type_name -> io.prometheus.client.MetricFamily + 74, // 18: api.v1.ClusterSnapshotChunk.timestamp:type_name -> google.protobuf.Timestamp 20, // 19: api.v1.SendClusterSnapshotStreamResponse.missing_resources:type_name -> api.v1.ClusterSnapshot 15, // 20: api.v1.NodeData.node:type_name -> api.v1.ResourceIdentifier 30, // 21: api.v1.NodeData.pods:type_name -> api.v1.NodeData.PodsEntry @@ -3837,90 +3862,92 @@ var file_api_v1_metrics_collector_proto_depIdxs = []int32{ 56, // 48: api.v1.Namespace.kubeflow_notebooks:type_name -> api.v1.Namespace.KubeflowNotebooksEntry 57, // 49: api.v1.Namespace.volcano_jobs:type_name -> api.v1.Namespace.VolcanoJobsEntry 58, // 50: api.v1.Namespace.spark_applications:type_name -> api.v1.Namespace.SparkApplicationsEntry - 59, // 51: api.v1.ClusterScopedSnapshot.persistent_volumes:type_name -> api.v1.ClusterScopedSnapshot.PersistentVolumesEntry - 60, // 52: api.v1.ClusterScopedSnapshot.storage_classes:type_name -> api.v1.ClusterScopedSnapshot.StorageClassesEntry - 61, // 53: api.v1.ClusterScopedSnapshot.cluster_roles:type_name -> api.v1.ClusterScopedSnapshot.ClusterRolesEntry - 62, // 54: api.v1.ClusterScopedSnapshot.cluster_role_bindings:type_name -> api.v1.ClusterScopedSnapshot.ClusterRoleBindingsEntry - 63, // 55: api.v1.ClusterScopedSnapshot.custom_resource_definitions:type_name -> api.v1.ClusterScopedSnapshot.CustomResourceDefinitionsEntry - 64, // 56: api.v1.ClusterScopedSnapshot.ingress_classes:type_name -> api.v1.ClusterScopedSnapshot.IngressClassesEntry - 65, // 57: api.v1.ClusterScopedSnapshot.csi_nodes:type_name -> api.v1.ClusterScopedSnapshot.CsiNodesEntry - 66, // 58: api.v1.ClusterScopedSnapshot.csi_drivers:type_name -> api.v1.ClusterScopedSnapshot.CsiDriversEntry - 67, // 59: api.v1.ClusterScopedSnapshot.volume_attachments:type_name -> api.v1.ClusterScopedSnapshot.VolumeAttachmentsEntry - 19, // 60: api.v1.ClusterSnapshot.cluster_info:type_name -> api.v1.ClusterInfo - 68, // 61: api.v1.ClusterSnapshot.nodes:type_name -> api.v1.ClusterSnapshot.NodesEntry - 69, // 62: api.v1.ClusterSnapshot.namespaces:type_name -> api.v1.ClusterSnapshot.NamespacesEntry - 18, // 63: api.v1.ClusterSnapshot.cluster_scoped:type_name -> api.v1.ClusterScopedSnapshot - 73, // 64: api.v1.ClusterSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 26, // 65: api.v1.SendTelemetryLogsRequest.logs:type_name -> api.v1.LogEntry - 73, // 66: api.v1.NetworkTrafficItem.timestamp:type_name -> google.protobuf.Timestamp - 73, // 67: api.v1.DnsLookupItem.timestamp:type_name -> google.protobuf.Timestamp - 22, // 68: api.v1.SendNetworkTrafficMetricsRequest.items:type_name -> api.v1.NetworkTrafficItem - 23, // 69: api.v1.SendNetworkTrafficMetricsRequest.dns_lookups:type_name -> api.v1.DnsLookupItem - 70, // 70: api.v1.SendNetworkTrafficMetricsRequest.ip2domain:type_name -> api.v1.SendNetworkTrafficMetricsRequest.Ip2domainEntry - 73, // 71: api.v1.LogEntry.timestamp:type_name -> google.protobuf.Timestamp - 2, // 72: api.v1.LogEntry.level:type_name -> api.v1.LogLevel - 71, // 73: api.v1.LogEntry.fields:type_name -> api.v1.LogEntry.FieldsEntry - 72, // 74: api.v1.NodeMetadataResponse.node_to_meta:type_name -> api.v1.NodeMetadataResponse.NodeToMetaEntry - 15, // 75: api.v1.NodeData.PodsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 76: api.v1.Namespace.DeploymentsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 77: api.v1.Namespace.StatefulSetsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 78: api.v1.Namespace.DaemonSetsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 79: api.v1.Namespace.ReplicaSetsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 80: api.v1.Namespace.ServicesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 81: api.v1.Namespace.ConfigMapsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 82: api.v1.Namespace.SecretsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 83: api.v1.Namespace.PvcsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 84: api.v1.Namespace.JobsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 85: api.v1.Namespace.CronJobsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 86: api.v1.Namespace.IngressesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 87: api.v1.Namespace.NetworkPoliciesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 88: api.v1.Namespace.ServiceAccountsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 89: api.v1.Namespace.RolesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 90: api.v1.Namespace.RoleBindingsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 91: api.v1.Namespace.PodDisruptionBudgetsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 92: api.v1.Namespace.EndpointsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 93: api.v1.Namespace.LimitRangesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 94: api.v1.Namespace.ResourceQuotasEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 95: api.v1.Namespace.UnscheduledPodsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 96: api.v1.Namespace.HorizontalPodAutoscalersEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 97: api.v1.Namespace.EventsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 98: api.v1.Namespace.KedaScaledJobsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 99: api.v1.Namespace.KedaScaledObjectsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 100: api.v1.Namespace.CsiStorageCapacitiesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 101: api.v1.Namespace.KubeflowNotebooksEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 102: api.v1.Namespace.VolcanoJobsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 103: api.v1.Namespace.SparkApplicationsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 104: api.v1.ClusterScopedSnapshot.PersistentVolumesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 105: api.v1.ClusterScopedSnapshot.StorageClassesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 106: api.v1.ClusterScopedSnapshot.ClusterRolesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 107: api.v1.ClusterScopedSnapshot.ClusterRoleBindingsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 108: api.v1.ClusterScopedSnapshot.CustomResourceDefinitionsEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 109: api.v1.ClusterScopedSnapshot.IngressClassesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 110: api.v1.ClusterScopedSnapshot.CsiNodesEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 111: api.v1.ClusterScopedSnapshot.CsiDriversEntry.value:type_name -> api.v1.ResourceIdentifier - 15, // 112: api.v1.ClusterScopedSnapshot.VolumeAttachmentsEntry.value:type_name -> api.v1.ResourceIdentifier - 16, // 113: api.v1.ClusterSnapshot.NodesEntry.value:type_name -> api.v1.NodeData - 17, // 114: api.v1.ClusterSnapshot.NamespacesEntry.value:type_name -> api.v1.Namespace - 76, // 115: api.v1.NodeMetadataResponse.NodeToMetaEntry.value:type_name -> api.v1.Node - 4, // 116: api.v1.MetricsCollectorService.SendResource:input_type -> api.v1.SendResourceRequest - 5, // 117: api.v1.MetricsCollectorService.SendResourceBatch:input_type -> api.v1.SendResourceBatchRequest - 11, // 118: api.v1.MetricsCollectorService.SendTelemetryMetrics:input_type -> api.v1.SendTelemetryMetricsRequest - 13, // 119: api.v1.MetricsCollectorService.SendClusterSnapshotStream:input_type -> api.v1.ClusterSnapshotChunk - 21, // 120: api.v1.MetricsCollectorService.SendTelemetryLogs:input_type -> api.v1.SendTelemetryLogsRequest - 24, // 121: api.v1.MetricsCollectorService.SendNetworkTrafficMetrics:input_type -> api.v1.SendNetworkTrafficMetricsRequest - 28, // 122: api.v1.MetricsCollectorService.NodeMetadata:input_type -> api.v1.NodeMetadataRequest - 9, // 123: api.v1.MetricsCollectorService.SendResource:output_type -> api.v1.SendResourceResponse - 10, // 124: api.v1.MetricsCollectorService.SendResourceBatch:output_type -> api.v1.SendResourceBatchResponse - 12, // 125: api.v1.MetricsCollectorService.SendTelemetryMetrics:output_type -> api.v1.SendTelemetryMetricsResponse - 14, // 126: api.v1.MetricsCollectorService.SendClusterSnapshotStream:output_type -> api.v1.SendClusterSnapshotStreamResponse - 27, // 127: api.v1.MetricsCollectorService.SendTelemetryLogs:output_type -> api.v1.SendTelemetryLogsResponse - 25, // 128: api.v1.MetricsCollectorService.SendNetworkTrafficMetrics:output_type -> api.v1.SendNetworkTrafficMetricsResponse - 29, // 129: api.v1.MetricsCollectorService.NodeMetadata:output_type -> api.v1.NodeMetadataResponse - 123, // [123:130] is the sub-list for method output_type - 116, // [116:123] is the sub-list for method input_type - 116, // [116:116] is the sub-list for extension type_name - 116, // [116:116] is the sub-list for extension extendee - 0, // [0:116] is the sub-list for field type_name + 59, // 51: api.v1.Namespace.scheduled_spark_applications:type_name -> api.v1.Namespace.ScheduledSparkApplicationsEntry + 60, // 52: api.v1.ClusterScopedSnapshot.persistent_volumes:type_name -> api.v1.ClusterScopedSnapshot.PersistentVolumesEntry + 61, // 53: api.v1.ClusterScopedSnapshot.storage_classes:type_name -> api.v1.ClusterScopedSnapshot.StorageClassesEntry + 62, // 54: api.v1.ClusterScopedSnapshot.cluster_roles:type_name -> api.v1.ClusterScopedSnapshot.ClusterRolesEntry + 63, // 55: api.v1.ClusterScopedSnapshot.cluster_role_bindings:type_name -> api.v1.ClusterScopedSnapshot.ClusterRoleBindingsEntry + 64, // 56: api.v1.ClusterScopedSnapshot.custom_resource_definitions:type_name -> api.v1.ClusterScopedSnapshot.CustomResourceDefinitionsEntry + 65, // 57: api.v1.ClusterScopedSnapshot.ingress_classes:type_name -> api.v1.ClusterScopedSnapshot.IngressClassesEntry + 66, // 58: api.v1.ClusterScopedSnapshot.csi_nodes:type_name -> api.v1.ClusterScopedSnapshot.CsiNodesEntry + 67, // 59: api.v1.ClusterScopedSnapshot.csi_drivers:type_name -> api.v1.ClusterScopedSnapshot.CsiDriversEntry + 68, // 60: api.v1.ClusterScopedSnapshot.volume_attachments:type_name -> api.v1.ClusterScopedSnapshot.VolumeAttachmentsEntry + 19, // 61: api.v1.ClusterSnapshot.cluster_info:type_name -> api.v1.ClusterInfo + 69, // 62: api.v1.ClusterSnapshot.nodes:type_name -> api.v1.ClusterSnapshot.NodesEntry + 70, // 63: api.v1.ClusterSnapshot.namespaces:type_name -> api.v1.ClusterSnapshot.NamespacesEntry + 18, // 64: api.v1.ClusterSnapshot.cluster_scoped:type_name -> api.v1.ClusterScopedSnapshot + 74, // 65: api.v1.ClusterSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 26, // 66: api.v1.SendTelemetryLogsRequest.logs:type_name -> api.v1.LogEntry + 74, // 67: api.v1.NetworkTrafficItem.timestamp:type_name -> google.protobuf.Timestamp + 74, // 68: api.v1.DnsLookupItem.timestamp:type_name -> google.protobuf.Timestamp + 22, // 69: api.v1.SendNetworkTrafficMetricsRequest.items:type_name -> api.v1.NetworkTrafficItem + 23, // 70: api.v1.SendNetworkTrafficMetricsRequest.dns_lookups:type_name -> api.v1.DnsLookupItem + 71, // 71: api.v1.SendNetworkTrafficMetricsRequest.ip2domain:type_name -> api.v1.SendNetworkTrafficMetricsRequest.Ip2domainEntry + 74, // 72: api.v1.LogEntry.timestamp:type_name -> google.protobuf.Timestamp + 2, // 73: api.v1.LogEntry.level:type_name -> api.v1.LogLevel + 72, // 74: api.v1.LogEntry.fields:type_name -> api.v1.LogEntry.FieldsEntry + 73, // 75: api.v1.NodeMetadataResponse.node_to_meta:type_name -> api.v1.NodeMetadataResponse.NodeToMetaEntry + 15, // 76: api.v1.NodeData.PodsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 77: api.v1.Namespace.DeploymentsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 78: api.v1.Namespace.StatefulSetsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 79: api.v1.Namespace.DaemonSetsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 80: api.v1.Namespace.ReplicaSetsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 81: api.v1.Namespace.ServicesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 82: api.v1.Namespace.ConfigMapsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 83: api.v1.Namespace.SecretsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 84: api.v1.Namespace.PvcsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 85: api.v1.Namespace.JobsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 86: api.v1.Namespace.CronJobsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 87: api.v1.Namespace.IngressesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 88: api.v1.Namespace.NetworkPoliciesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 89: api.v1.Namespace.ServiceAccountsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 90: api.v1.Namespace.RolesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 91: api.v1.Namespace.RoleBindingsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 92: api.v1.Namespace.PodDisruptionBudgetsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 93: api.v1.Namespace.EndpointsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 94: api.v1.Namespace.LimitRangesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 95: api.v1.Namespace.ResourceQuotasEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 96: api.v1.Namespace.UnscheduledPodsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 97: api.v1.Namespace.HorizontalPodAutoscalersEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 98: api.v1.Namespace.EventsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 99: api.v1.Namespace.KedaScaledJobsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 100: api.v1.Namespace.KedaScaledObjectsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 101: api.v1.Namespace.CsiStorageCapacitiesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 102: api.v1.Namespace.KubeflowNotebooksEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 103: api.v1.Namespace.VolcanoJobsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 104: api.v1.Namespace.SparkApplicationsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 105: api.v1.Namespace.ScheduledSparkApplicationsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 106: api.v1.ClusterScopedSnapshot.PersistentVolumesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 107: api.v1.ClusterScopedSnapshot.StorageClassesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 108: api.v1.ClusterScopedSnapshot.ClusterRolesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 109: api.v1.ClusterScopedSnapshot.ClusterRoleBindingsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 110: api.v1.ClusterScopedSnapshot.CustomResourceDefinitionsEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 111: api.v1.ClusterScopedSnapshot.IngressClassesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 112: api.v1.ClusterScopedSnapshot.CsiNodesEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 113: api.v1.ClusterScopedSnapshot.CsiDriversEntry.value:type_name -> api.v1.ResourceIdentifier + 15, // 114: api.v1.ClusterScopedSnapshot.VolumeAttachmentsEntry.value:type_name -> api.v1.ResourceIdentifier + 16, // 115: api.v1.ClusterSnapshot.NodesEntry.value:type_name -> api.v1.NodeData + 17, // 116: api.v1.ClusterSnapshot.NamespacesEntry.value:type_name -> api.v1.Namespace + 77, // 117: api.v1.NodeMetadataResponse.NodeToMetaEntry.value:type_name -> api.v1.Node + 4, // 118: api.v1.MetricsCollectorService.SendResource:input_type -> api.v1.SendResourceRequest + 5, // 119: api.v1.MetricsCollectorService.SendResourceBatch:input_type -> api.v1.SendResourceBatchRequest + 11, // 120: api.v1.MetricsCollectorService.SendTelemetryMetrics:input_type -> api.v1.SendTelemetryMetricsRequest + 13, // 121: api.v1.MetricsCollectorService.SendClusterSnapshotStream:input_type -> api.v1.ClusterSnapshotChunk + 21, // 122: api.v1.MetricsCollectorService.SendTelemetryLogs:input_type -> api.v1.SendTelemetryLogsRequest + 24, // 123: api.v1.MetricsCollectorService.SendNetworkTrafficMetrics:input_type -> api.v1.SendNetworkTrafficMetricsRequest + 28, // 124: api.v1.MetricsCollectorService.NodeMetadata:input_type -> api.v1.NodeMetadataRequest + 9, // 125: api.v1.MetricsCollectorService.SendResource:output_type -> api.v1.SendResourceResponse + 10, // 126: api.v1.MetricsCollectorService.SendResourceBatch:output_type -> api.v1.SendResourceBatchResponse + 12, // 127: api.v1.MetricsCollectorService.SendTelemetryMetrics:output_type -> api.v1.SendTelemetryMetricsResponse + 14, // 128: api.v1.MetricsCollectorService.SendClusterSnapshotStream:output_type -> api.v1.SendClusterSnapshotStreamResponse + 27, // 129: api.v1.MetricsCollectorService.SendTelemetryLogs:output_type -> api.v1.SendTelemetryLogsResponse + 25, // 130: api.v1.MetricsCollectorService.SendNetworkTrafficMetrics:output_type -> api.v1.SendNetworkTrafficMetricsResponse + 29, // 131: api.v1.MetricsCollectorService.NodeMetadata:output_type -> api.v1.NodeMetadataResponse + 125, // [125:132] is the sub-list for method output_type + 118, // [118:125] is the sub-list for method input_type + 118, // [118:118] is the sub-list for extension type_name + 118, // [118:118] is the sub-list for extension extendee + 0, // [0:118] is the sub-list for field type_name } func init() { file_api_v1_metrics_collector_proto_init() } @@ -4262,7 +4289,7 @@ func file_api_v1_metrics_collector_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_v1_metrics_collector_proto_rawDesc, NumEnums: 3, - NumMessages: 70, + NumMessages: 71, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/api/v1/operator.pb.go b/gen/api/v1/operator.pb.go new file mode 100644 index 00000000..0a0070ef --- /dev/null +++ b/gen/api/v1/operator.pb.go @@ -0,0 +1,1641 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: api/v1/operator.proto + +package apiv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Enums defining operator details +type OperatorType int32 + +const ( + OperatorType_OPERATOR_TYPE_UNSPECIFIED OperatorType = 0 + OperatorType_OPERATOR_TYPE_READ OperatorType = 1 + OperatorType_OPERATOR_TYPE_WRITE OperatorType = 2 + OperatorType_OPERATOR_TYPE_NODE OperatorType = 3 + OperatorType_OPERATOR_TYPE_SECURITY OperatorType = 4 + OperatorType_OPERATOR_TYPE_NETWORK OperatorType = 5 +) + +// Enum value maps for OperatorType. +var ( + OperatorType_name = map[int32]string{ + 0: "OPERATOR_TYPE_UNSPECIFIED", + 1: "OPERATOR_TYPE_READ", + 2: "OPERATOR_TYPE_WRITE", + 3: "OPERATOR_TYPE_NODE", + 4: "OPERATOR_TYPE_SECURITY", + 5: "OPERATOR_TYPE_NETWORK", + } + OperatorType_value = map[string]int32{ + "OPERATOR_TYPE_UNSPECIFIED": 0, + "OPERATOR_TYPE_READ": 1, + "OPERATOR_TYPE_WRITE": 2, + "OPERATOR_TYPE_NODE": 3, + "OPERATOR_TYPE_SECURITY": 4, + "OPERATOR_TYPE_NETWORK": 5, + } +) + +func (x OperatorType) Enum() *OperatorType { + p := new(OperatorType) + *p = x + return p +} + +func (x OperatorType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OperatorType) Descriptor() protoreflect.EnumDescriptor { + return file_api_v1_operator_proto_enumTypes[0].Descriptor() +} + +func (OperatorType) Type() protoreflect.EnumType { + return &file_api_v1_operator_proto_enumTypes[0] +} + +func (x OperatorType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OperatorType.Descriptor instead. +func (OperatorType) EnumDescriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{0} +} + +type OperatorState int32 + +const ( + OperatorState_OPERATOR_STATE_UNSPECIFIED OperatorState = 0 + OperatorState_OPERATOR_STATE_DISABLED OperatorState = 1 + OperatorState_OPERATOR_STATE_OPERATIONAL OperatorState = 2 + OperatorState_OPERATOR_STATE_DEGRADED OperatorState = 3 + OperatorState_OPERATOR_STATE_ERROR OperatorState = 4 +) + +// Enum value maps for OperatorState. +var ( + OperatorState_name = map[int32]string{ + 0: "OPERATOR_STATE_UNSPECIFIED", + 1: "OPERATOR_STATE_DISABLED", + 2: "OPERATOR_STATE_OPERATIONAL", + 3: "OPERATOR_STATE_DEGRADED", + 4: "OPERATOR_STATE_ERROR", + } + OperatorState_value = map[string]int32{ + "OPERATOR_STATE_UNSPECIFIED": 0, + "OPERATOR_STATE_DISABLED": 1, + "OPERATOR_STATE_OPERATIONAL": 2, + "OPERATOR_STATE_DEGRADED": 3, + "OPERATOR_STATE_ERROR": 4, + } +) + +func (x OperatorState) Enum() *OperatorState { + p := new(OperatorState) + *p = x + return p +} + +func (x OperatorState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OperatorState) Descriptor() protoreflect.EnumDescriptor { + return file_api_v1_operator_proto_enumTypes[1].Descriptor() +} + +func (OperatorState) Type() protoreflect.EnumType { + return &file_api_v1_operator_proto_enumTypes[1] +} + +func (x OperatorState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OperatorState.Descriptor instead. +func (OperatorState) EnumDescriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{1} +} + +type OperatorInstallMethod int32 + +const ( + OperatorInstallMethod_OPERATOR_INSTALL_METHOD_UNSPECIFIED OperatorInstallMethod = 0 + OperatorInstallMethod_OPERATOR_INSTALL_METHOD_MANIFEST OperatorInstallMethod = 1 + OperatorInstallMethod_OPERATOR_INSTALL_METHOD_HELM OperatorInstallMethod = 2 +) + +// Enum value maps for OperatorInstallMethod. +var ( + OperatorInstallMethod_name = map[int32]string{ + 0: "OPERATOR_INSTALL_METHOD_UNSPECIFIED", + 1: "OPERATOR_INSTALL_METHOD_MANIFEST", + 2: "OPERATOR_INSTALL_METHOD_HELM", + } + OperatorInstallMethod_value = map[string]int32{ + "OPERATOR_INSTALL_METHOD_UNSPECIFIED": 0, + "OPERATOR_INSTALL_METHOD_MANIFEST": 1, + "OPERATOR_INSTALL_METHOD_HELM": 2, + } +) + +func (x OperatorInstallMethod) Enum() *OperatorInstallMethod { + p := new(OperatorInstallMethod) + *p = x + return p +} + +func (x OperatorInstallMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OperatorInstallMethod) Descriptor() protoreflect.EnumDescriptor { + return file_api_v1_operator_proto_enumTypes[2].Descriptor() +} + +func (OperatorInstallMethod) Type() protoreflect.EnumType { + return &file_api_v1_operator_proto_enumTypes[2] +} + +func (x OperatorInstallMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OperatorInstallMethod.Descriptor instead. +func (OperatorInstallMethod) EnumDescriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{2} +} + +// Operator describes basic details for any type of operator +type Operator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type OperatorType `protobuf:"varint,1,opt,name=type,proto3,enum=api.v1.OperatorType" json:"type,omitempty"` + InstallMethod OperatorInstallMethod `protobuf:"varint,2,opt,name=install_method,json=installMethod,proto3,enum=api.v1.OperatorInstallMethod" json:"install_method,omitempty"` + State OperatorState `protobuf:"varint,3,opt,name=state,proto3,enum=api.v1.OperatorState" json:"state,omitempty"` + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + Version string `protobuf:"bytes,6,opt,name=version,proto3" json:"version,omitempty"` + Commit string `protobuf:"bytes,7,opt,name=commit,proto3" json:"commit,omitempty"` + IsOutdated bool `protobuf:"varint,8,opt,name=is_outdated,json=isOutdated,proto3" json:"is_outdated,omitempty"` + LatestAvailableVersion string `protobuf:"bytes,9,opt,name=latest_available_version,json=latestAvailableVersion,proto3" json:"latest_available_version,omitempty"` + ConnectedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=connected_at,json=connectedAt,proto3" json:"connected_at,omitempty"` +} + +func (x *Operator) Reset() { + *x = Operator{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Operator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Operator) ProtoMessage() {} + +func (x *Operator) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Operator.ProtoReflect.Descriptor instead. +func (*Operator) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{0} +} + +func (x *Operator) GetType() OperatorType { + if x != nil { + return x.Type + } + return OperatorType_OPERATOR_TYPE_UNSPECIFIED +} + +func (x *Operator) GetInstallMethod() OperatorInstallMethod { + if x != nil { + return x.InstallMethod + } + return OperatorInstallMethod_OPERATOR_INSTALL_METHOD_UNSPECIFIED +} + +func (x *Operator) GetState() OperatorState { + if x != nil { + return x.State + } + return OperatorState_OPERATOR_STATE_UNSPECIFIED +} + +func (x *Operator) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Operator) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Operator) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Operator) GetCommit() string { + if x != nil { + return x.Commit + } + return "" +} + +func (x *Operator) GetIsOutdated() bool { + if x != nil { + return x.IsOutdated + } + return false +} + +func (x *Operator) GetLatestAvailableVersion() string { + if x != nil { + return x.LatestAvailableVersion + } + return "" +} + +func (x *Operator) GetConnectedAt() *timestamppb.Timestamp { + if x != nil { + return x.ConnectedAt + } + return nil +} + +// Request and response for GetOperators +type GetOperatorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetOperatorsRequest) Reset() { + *x = GetOperatorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOperatorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOperatorsRequest) ProtoMessage() {} + +func (x *GetOperatorsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOperatorsRequest.ProtoReflect.Descriptor instead. +func (*GetOperatorsRequest) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{1} +} + +type GetOperatorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operators []*Operator `protobuf:"bytes,1,rep,name=operators,proto3" json:"operators,omitempty"` +} + +func (x *GetOperatorsResponse) Reset() { + *x = GetOperatorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOperatorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOperatorsResponse) ProtoMessage() {} + +func (x *GetOperatorsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOperatorsResponse.ProtoReflect.Descriptor instead. +func (*GetOperatorsResponse) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{2} +} + +func (x *GetOperatorsResponse) GetOperators() []*Operator { + if x != nil { + return x.Operators + } + return nil +} + +// ConnectionMetric is reusable for any metric type +type ConnectionMetric struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + LastSeen *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"` +} + +func (x *ConnectionMetric) Reset() { + *x = ConnectionMetric{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectionMetric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectionMetric) ProtoMessage() {} + +func (x *ConnectionMetric) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectionMetric.ProtoReflect.Descriptor instead. +func (*ConnectionMetric) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{3} +} + +func (x *ConnectionMetric) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *ConnectionMetric) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ConnectionMetric) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *ConnectionMetric) GetLastSeen() *timestamppb.Timestamp { + if x != nil { + return x.LastSeen + } + return nil +} + +// Request and response for GetOperatorMetadata +type GetOperatorMetadataRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type OperatorType `protobuf:"varint,1,opt,name=type,proto3,enum=api.v1.OperatorType" json:"type,omitempty"` + TeamId string `protobuf:"bytes,2,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` +} + +func (x *GetOperatorMetadataRequest) Reset() { + *x = GetOperatorMetadataRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOperatorMetadataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOperatorMetadataRequest) ProtoMessage() {} + +func (x *GetOperatorMetadataRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOperatorMetadataRequest.ProtoReflect.Descriptor instead. +func (*GetOperatorMetadataRequest) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{4} +} + +func (x *GetOperatorMetadataRequest) GetType() OperatorType { + if x != nil { + return x.Type + } + return OperatorType_OPERATOR_TYPE_UNSPECIFIED +} + +func (x *GetOperatorMetadataRequest) GetTeamId() string { + if x != nil { + return x.TeamId + } + return "" +} + +func (x *GetOperatorMetadataRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +// Specialized messages for each operator type +type ReadOperator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operator *Operator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + ContainerMetrics *ConnectionMetric `protobuf:"bytes,2,opt,name=container_metrics,json=containerMetrics,proto3" json:"container_metrics,omitempty"` + NodeMetrics *ConnectionMetric `protobuf:"bytes,3,opt,name=node_metrics,json=nodeMetrics,proto3" json:"node_metrics,omitempty"` + SnapshotMetrics *ConnectionMetric `protobuf:"bytes,4,opt,name=snapshot_metrics,json=snapshotMetrics,proto3" json:"snapshot_metrics,omitempty"` + StorageMetrics *ConnectionMetric `protobuf:"bytes,5,opt,name=storage_metrics,json=storageMetrics,proto3" json:"storage_metrics,omitempty"` +} + +func (x *ReadOperator) Reset() { + *x = ReadOperator{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadOperator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadOperator) ProtoMessage() {} + +func (x *ReadOperator) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadOperator.ProtoReflect.Descriptor instead. +func (*ReadOperator) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{5} +} + +func (x *ReadOperator) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *ReadOperator) GetContainerMetrics() *ConnectionMetric { + if x != nil { + return x.ContainerMetrics + } + return nil +} + +func (x *ReadOperator) GetNodeMetrics() *ConnectionMetric { + if x != nil { + return x.NodeMetrics + } + return nil +} + +func (x *ReadOperator) GetSnapshotMetrics() *ConnectionMetric { + if x != nil { + return x.SnapshotMetrics + } + return nil +} + +func (x *ReadOperator) GetStorageMetrics() *ConnectionMetric { + if x != nil { + return x.StorageMetrics + } + return nil +} + +type WriteOperator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operator *Operator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + RecommendationMetrics *ConnectionMetric `protobuf:"bytes,2,opt,name=recommendation_metrics,json=recommendationMetrics,proto3" json:"recommendation_metrics,omitempty"` +} + +func (x *WriteOperator) Reset() { + *x = WriteOperator{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteOperator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteOperator) ProtoMessage() {} + +func (x *WriteOperator) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WriteOperator.ProtoReflect.Descriptor instead. +func (*WriteOperator) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{6} +} + +func (x *WriteOperator) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *WriteOperator) GetRecommendationMetrics() *ConnectionMetric { + if x != nil { + return x.RecommendationMetrics + } + return nil +} + +type NodeOperator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operator *Operator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + KarpenterDeployment *ConnectionMetric `protobuf:"bytes,2,opt,name=karpenter_deployment,json=karpenterDeployment,proto3" json:"karpenter_deployment,omitempty"` + NodeProvisioning *ConnectionMetric `protobuf:"bytes,3,opt,name=node_provisioning,json=nodeProvisioning,proto3" json:"node_provisioning,omitempty"` +} + +func (x *NodeOperator) Reset() { + *x = NodeOperator{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeOperator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeOperator) ProtoMessage() {} + +func (x *NodeOperator) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[7] + 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 NodeOperator.ProtoReflect.Descriptor instead. +func (*NodeOperator) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{7} +} + +func (x *NodeOperator) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *NodeOperator) GetKarpenterDeployment() *ConnectionMetric { + if x != nil { + return x.KarpenterDeployment + } + return nil +} + +func (x *NodeOperator) GetNodeProvisioning() *ConnectionMetric { + if x != nil { + return x.NodeProvisioning + } + return nil +} + +type SecurityOperator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operator *Operator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + SecurityMetrics *ConnectionMetric `protobuf:"bytes,2,opt,name=security_metrics,json=securityMetrics,proto3" json:"security_metrics,omitempty"` +} + +func (x *SecurityOperator) Reset() { + *x = SecurityOperator{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SecurityOperator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecurityOperator) ProtoMessage() {} + +func (x *SecurityOperator) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecurityOperator.ProtoReflect.Descriptor instead. +func (*SecurityOperator) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{8} +} + +func (x *SecurityOperator) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *SecurityOperator) GetSecurityMetrics() *ConnectionMetric { + if x != nil { + return x.SecurityMetrics + } + return nil +} + +type NetworkOperator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operator *Operator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + NetworkMetrics *ConnectionMetric `protobuf:"bytes,2,opt,name=network_metrics,json=networkMetrics,proto3" json:"network_metrics,omitempty"` +} + +func (x *NetworkOperator) Reset() { + *x = NetworkOperator{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetworkOperator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkOperator) ProtoMessage() {} + +func (x *NetworkOperator) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[9] + 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 NetworkOperator.ProtoReflect.Descriptor instead. +func (*NetworkOperator) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{9} +} + +func (x *NetworkOperator) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *NetworkOperator) GetNetworkMetrics() *ConnectionMetric { + if x != nil { + return x.NetworkMetrics + } + return nil +} + +// Oneof response to clarify returned operator type +type GetOperatorMetadataResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Operator: + // + // *GetOperatorMetadataResponse_ReadOperator + // *GetOperatorMetadataResponse_WriteOperator + // *GetOperatorMetadataResponse_NodeOperator + // *GetOperatorMetadataResponse_SecurityOperator + // *GetOperatorMetadataResponse_NetworkOperator + Operator isGetOperatorMetadataResponse_Operator `protobuf_oneof:"operator"` +} + +func (x *GetOperatorMetadataResponse) Reset() { + *x = GetOperatorMetadataResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOperatorMetadataResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOperatorMetadataResponse) ProtoMessage() {} + +func (x *GetOperatorMetadataResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[10] + 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 GetOperatorMetadataResponse.ProtoReflect.Descriptor instead. +func (*GetOperatorMetadataResponse) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{10} +} + +func (m *GetOperatorMetadataResponse) GetOperator() isGetOperatorMetadataResponse_Operator { + if m != nil { + return m.Operator + } + return nil +} + +func (x *GetOperatorMetadataResponse) GetReadOperator() *ReadOperator { + if x, ok := x.GetOperator().(*GetOperatorMetadataResponse_ReadOperator); ok { + return x.ReadOperator + } + return nil +} + +func (x *GetOperatorMetadataResponse) GetWriteOperator() *WriteOperator { + if x, ok := x.GetOperator().(*GetOperatorMetadataResponse_WriteOperator); ok { + return x.WriteOperator + } + return nil +} + +func (x *GetOperatorMetadataResponse) GetNodeOperator() *NodeOperator { + if x, ok := x.GetOperator().(*GetOperatorMetadataResponse_NodeOperator); ok { + return x.NodeOperator + } + return nil +} + +func (x *GetOperatorMetadataResponse) GetSecurityOperator() *SecurityOperator { + if x, ok := x.GetOperator().(*GetOperatorMetadataResponse_SecurityOperator); ok { + return x.SecurityOperator + } + return nil +} + +func (x *GetOperatorMetadataResponse) GetNetworkOperator() *NetworkOperator { + if x, ok := x.GetOperator().(*GetOperatorMetadataResponse_NetworkOperator); ok { + return x.NetworkOperator + } + return nil +} + +type isGetOperatorMetadataResponse_Operator interface { + isGetOperatorMetadataResponse_Operator() +} + +type GetOperatorMetadataResponse_ReadOperator struct { + ReadOperator *ReadOperator `protobuf:"bytes,1,opt,name=read_operator,json=readOperator,proto3,oneof"` +} + +type GetOperatorMetadataResponse_WriteOperator struct { + WriteOperator *WriteOperator `protobuf:"bytes,2,opt,name=write_operator,json=writeOperator,proto3,oneof"` +} + +type GetOperatorMetadataResponse_NodeOperator struct { + NodeOperator *NodeOperator `protobuf:"bytes,3,opt,name=node_operator,json=nodeOperator,proto3,oneof"` +} + +type GetOperatorMetadataResponse_SecurityOperator struct { + SecurityOperator *SecurityOperator `protobuf:"bytes,4,opt,name=security_operator,json=securityOperator,proto3,oneof"` +} + +type GetOperatorMetadataResponse_NetworkOperator struct { + NetworkOperator *NetworkOperator `protobuf:"bytes,5,opt,name=network_operator,json=networkOperator,proto3,oneof"` +} + +func (*GetOperatorMetadataResponse_ReadOperator) isGetOperatorMetadataResponse_Operator() {} + +func (*GetOperatorMetadataResponse_WriteOperator) isGetOperatorMetadataResponse_Operator() {} + +func (*GetOperatorMetadataResponse_NodeOperator) isGetOperatorMetadataResponse_Operator() {} + +func (*GetOperatorMetadataResponse_SecurityOperator) isGetOperatorMetadataResponse_Operator() {} + +func (*GetOperatorMetadataResponse_NetworkOperator) isGetOperatorMetadataResponse_Operator() {} + +type GetOCIRegistriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` +} + +func (x *GetOCIRegistriesRequest) Reset() { + *x = GetOCIRegistriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOCIRegistriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOCIRegistriesRequest) ProtoMessage() {} + +func (x *GetOCIRegistriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[11] + 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 GetOCIRegistriesRequest.ProtoReflect.Descriptor instead. +func (*GetOCIRegistriesRequest) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{11} +} + +func (x *GetOCIRegistriesRequest) GetTeamId() string { + if x != nil { + return x.TeamId + } + return "" +} + +func (x *GetOCIRegistriesRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +// RegistryMirrorConfig represents a complete registry mirror configuration +type RegistryMirrorConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Registry name (e.g., "dockerhub", "ghcr") + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` // Whether this registry should be enabled + Upstream string `protobuf:"bytes,3,opt,name=upstream,proto3" json:"upstream,omitempty"` // Upstream registry URL (e.g., "https://registry-1.docker.io") + MirrorFor []string `protobuf:"bytes,4,rep,name=mirror_for,json=mirrorFor,proto3" json:"mirror_for,omitempty"` // List of domains to mirror (e.g., ["docker.io", "index.docker.io"]) + Ttl string `protobuf:"bytes,5,opt,name=ttl,proto3" json:"ttl,omitempty"` // Time-to-live for cached images (e.g., "168h") +} + +func (x *RegistryMirrorConfig) Reset() { + *x = RegistryMirrorConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegistryMirrorConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegistryMirrorConfig) ProtoMessage() {} + +func (x *RegistryMirrorConfig) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[12] + 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 RegistryMirrorConfig.ProtoReflect.Descriptor instead. +func (*RegistryMirrorConfig) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{12} +} + +func (x *RegistryMirrorConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RegistryMirrorConfig) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *RegistryMirrorConfig) GetUpstream() string { + if x != nil { + return x.Upstream + } + return "" +} + +func (x *RegistryMirrorConfig) GetMirrorFor() []string { + if x != nil { + return x.MirrorFor + } + return nil +} + +func (x *RegistryMirrorConfig) GetTtl() string { + if x != nil { + return x.Ttl + } + return "" +} + +type GetOCIRegistriesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RegistryConfigs []*RegistryMirrorConfig `protobuf:"bytes,1,rep,name=registry_configs,json=registryConfigs,proto3" json:"registry_configs,omitempty"` +} + +func (x *GetOCIRegistriesResponse) Reset() { + *x = GetOCIRegistriesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOCIRegistriesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOCIRegistriesResponse) ProtoMessage() {} + +func (x *GetOCIRegistriesResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_proto_msgTypes[13] + 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 GetOCIRegistriesResponse.ProtoReflect.Descriptor instead. +func (*GetOCIRegistriesResponse) Descriptor() ([]byte, []int) { + return file_api_v1_operator_proto_rawDescGZIP(), []int{13} +} + +func (x *GetOCIRegistriesResponse) GetRegistryConfigs() []*RegistryMirrorConfig { + if x != nil { + return x.RegistryConfigs + } + return nil +} + +var File_api_v1_operator_proto protoreflect.FileDescriptor + +var file_api_v1_operator_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xb8, 0x03, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0d, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 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, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x10, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 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, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc8, 0x02, 0x0a, 0x0c, 0x52, + 0x65, 0x61, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x3b, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, + 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x0d, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, + 0x15, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x14, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x13, 0x6b, + 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x53, 0x65, + 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, + 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x10, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x22, 0x82, 0x01, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x41, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf2, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x3b, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x47, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x10, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, + 0x0a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x51, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 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, 0x91, + 0x01, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x46, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, + 0x74, 0x6c, 0x22, 0x63, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, + 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2a, 0xad, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x45, 0x52, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, + 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x03, + 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, + 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x05, 0x2a, 0xa3, 0x01, 0x0a, 0x0d, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x2a, 0x88, 0x01, + 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x50, 0x45, 0x52, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x45, 0x54, 0x48, + 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x24, 0x0a, 0x20, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4d, 0x41, 0x4e, 0x49, + 0x46, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, + 0x44, 0x5f, 0x48, 0x45, 0x4c, 0x4d, 0x10, 0x02, 0x32, 0x93, 0x02, 0x0a, 0x0f, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x0c, + 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f, 0x43, + 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x86, + 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, + 0x72, 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, + 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_api_v1_operator_proto_rawDescOnce sync.Once + file_api_v1_operator_proto_rawDescData = file_api_v1_operator_proto_rawDesc +) + +func file_api_v1_operator_proto_rawDescGZIP() []byte { + file_api_v1_operator_proto_rawDescOnce.Do(func() { + file_api_v1_operator_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_v1_operator_proto_rawDescData) + }) + return file_api_v1_operator_proto_rawDescData +} + +var file_api_v1_operator_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_api_v1_operator_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_api_v1_operator_proto_goTypes = []interface{}{ + (OperatorType)(0), // 0: api.v1.OperatorType + (OperatorState)(0), // 1: api.v1.OperatorState + (OperatorInstallMethod)(0), // 2: api.v1.OperatorInstallMethod + (*Operator)(nil), // 3: api.v1.Operator + (*GetOperatorsRequest)(nil), // 4: api.v1.GetOperatorsRequest + (*GetOperatorsResponse)(nil), // 5: api.v1.GetOperatorsResponse + (*ConnectionMetric)(nil), // 6: api.v1.ConnectionMetric + (*GetOperatorMetadataRequest)(nil), // 7: api.v1.GetOperatorMetadataRequest + (*ReadOperator)(nil), // 8: api.v1.ReadOperator + (*WriteOperator)(nil), // 9: api.v1.WriteOperator + (*NodeOperator)(nil), // 10: api.v1.NodeOperator + (*SecurityOperator)(nil), // 11: api.v1.SecurityOperator + (*NetworkOperator)(nil), // 12: api.v1.NetworkOperator + (*GetOperatorMetadataResponse)(nil), // 13: api.v1.GetOperatorMetadataResponse + (*GetOCIRegistriesRequest)(nil), // 14: api.v1.GetOCIRegistriesRequest + (*RegistryMirrorConfig)(nil), // 15: api.v1.RegistryMirrorConfig + (*GetOCIRegistriesResponse)(nil), // 16: api.v1.GetOCIRegistriesResponse + (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp +} +var file_api_v1_operator_proto_depIdxs = []int32{ + 0, // 0: api.v1.Operator.type:type_name -> api.v1.OperatorType + 2, // 1: api.v1.Operator.install_method:type_name -> api.v1.OperatorInstallMethod + 1, // 2: api.v1.Operator.state:type_name -> api.v1.OperatorState + 17, // 3: api.v1.Operator.connected_at:type_name -> google.protobuf.Timestamp + 3, // 4: api.v1.GetOperatorsResponse.operators:type_name -> api.v1.Operator + 17, // 5: api.v1.ConnectionMetric.last_seen:type_name -> google.protobuf.Timestamp + 0, // 6: api.v1.GetOperatorMetadataRequest.type:type_name -> api.v1.OperatorType + 3, // 7: api.v1.ReadOperator.operator:type_name -> api.v1.Operator + 6, // 8: api.v1.ReadOperator.container_metrics:type_name -> api.v1.ConnectionMetric + 6, // 9: api.v1.ReadOperator.node_metrics:type_name -> api.v1.ConnectionMetric + 6, // 10: api.v1.ReadOperator.snapshot_metrics:type_name -> api.v1.ConnectionMetric + 6, // 11: api.v1.ReadOperator.storage_metrics:type_name -> api.v1.ConnectionMetric + 3, // 12: api.v1.WriteOperator.operator:type_name -> api.v1.Operator + 6, // 13: api.v1.WriteOperator.recommendation_metrics:type_name -> api.v1.ConnectionMetric + 3, // 14: api.v1.NodeOperator.operator:type_name -> api.v1.Operator + 6, // 15: api.v1.NodeOperator.karpenter_deployment:type_name -> api.v1.ConnectionMetric + 6, // 16: api.v1.NodeOperator.node_provisioning:type_name -> api.v1.ConnectionMetric + 3, // 17: api.v1.SecurityOperator.operator:type_name -> api.v1.Operator + 6, // 18: api.v1.SecurityOperator.security_metrics:type_name -> api.v1.ConnectionMetric + 3, // 19: api.v1.NetworkOperator.operator:type_name -> api.v1.Operator + 6, // 20: api.v1.NetworkOperator.network_metrics:type_name -> api.v1.ConnectionMetric + 8, // 21: api.v1.GetOperatorMetadataResponse.read_operator:type_name -> api.v1.ReadOperator + 9, // 22: api.v1.GetOperatorMetadataResponse.write_operator:type_name -> api.v1.WriteOperator + 10, // 23: api.v1.GetOperatorMetadataResponse.node_operator:type_name -> api.v1.NodeOperator + 11, // 24: api.v1.GetOperatorMetadataResponse.security_operator:type_name -> api.v1.SecurityOperator + 12, // 25: api.v1.GetOperatorMetadataResponse.network_operator:type_name -> api.v1.NetworkOperator + 15, // 26: api.v1.GetOCIRegistriesResponse.registry_configs:type_name -> api.v1.RegistryMirrorConfig + 4, // 27: api.v1.OperatorService.GetOperators:input_type -> api.v1.GetOperatorsRequest + 7, // 28: api.v1.OperatorService.GetOperatorMetadata:input_type -> api.v1.GetOperatorMetadataRequest + 14, // 29: api.v1.OperatorService.GetOCIRegistries:input_type -> api.v1.GetOCIRegistriesRequest + 5, // 30: api.v1.OperatorService.GetOperators:output_type -> api.v1.GetOperatorsResponse + 13, // 31: api.v1.OperatorService.GetOperatorMetadata:output_type -> api.v1.GetOperatorMetadataResponse + 16, // 32: api.v1.OperatorService.GetOCIRegistries:output_type -> api.v1.GetOCIRegistriesResponse + 30, // [30:33] is the sub-list for method output_type + 27, // [27:30] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name +} + +func init() { file_api_v1_operator_proto_init() } +func file_api_v1_operator_proto_init() { + if File_api_v1_operator_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_api_v1_operator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Operator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOperatorsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOperatorsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConnectionMetric); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOperatorMetadataRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadOperator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteOperator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeOperator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SecurityOperator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetworkOperator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOperatorMetadataResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOCIRegistriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegistryMirrorConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOCIRegistriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_api_v1_operator_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*GetOperatorMetadataResponse_ReadOperator)(nil), + (*GetOperatorMetadataResponse_WriteOperator)(nil), + (*GetOperatorMetadataResponse_NodeOperator)(nil), + (*GetOperatorMetadataResponse_SecurityOperator)(nil), + (*GetOperatorMetadataResponse_NetworkOperator)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_api_v1_operator_proto_rawDesc, + NumEnums: 3, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_v1_operator_proto_goTypes, + DependencyIndexes: file_api_v1_operator_proto_depIdxs, + EnumInfos: file_api_v1_operator_proto_enumTypes, + MessageInfos: file_api_v1_operator_proto_msgTypes, + }.Build() + File_api_v1_operator_proto = out.File + file_api_v1_operator_proto_rawDesc = nil + file_api_v1_operator_proto_goTypes = nil + file_api_v1_operator_proto_depIdxs = nil +} diff --git a/gen/api/v1/operator_grpc.pb.go b/gen/api/v1/operator_grpc.pb.go new file mode 100644 index 00000000..9dccf734 --- /dev/null +++ b/gen/api/v1/operator_grpc.pb.go @@ -0,0 +1,183 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: api/v1/operator.proto + +package apiv1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + OperatorService_GetOperators_FullMethodName = "/api.v1.OperatorService/GetOperators" + OperatorService_GetOperatorMetadata_FullMethodName = "/api.v1.OperatorService/GetOperatorMetadata" + OperatorService_GetOCIRegistries_FullMethodName = "/api.v1.OperatorService/GetOCIRegistries" +) + +// OperatorServiceClient is the client API for OperatorService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type OperatorServiceClient interface { + GetOperators(ctx context.Context, in *GetOperatorsRequest, opts ...grpc.CallOption) (*GetOperatorsResponse, error) + GetOperatorMetadata(ctx context.Context, in *GetOperatorMetadataRequest, opts ...grpc.CallOption) (*GetOperatorMetadataResponse, error) + GetOCIRegistries(ctx context.Context, in *GetOCIRegistriesRequest, opts ...grpc.CallOption) (*GetOCIRegistriesResponse, error) +} + +type operatorServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewOperatorServiceClient(cc grpc.ClientConnInterface) OperatorServiceClient { + return &operatorServiceClient{cc} +} + +func (c *operatorServiceClient) GetOperators(ctx context.Context, in *GetOperatorsRequest, opts ...grpc.CallOption) (*GetOperatorsResponse, error) { + out := new(GetOperatorsResponse) + err := c.cc.Invoke(ctx, OperatorService_GetOperators_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *operatorServiceClient) GetOperatorMetadata(ctx context.Context, in *GetOperatorMetadataRequest, opts ...grpc.CallOption) (*GetOperatorMetadataResponse, error) { + out := new(GetOperatorMetadataResponse) + err := c.cc.Invoke(ctx, OperatorService_GetOperatorMetadata_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *operatorServiceClient) GetOCIRegistries(ctx context.Context, in *GetOCIRegistriesRequest, opts ...grpc.CallOption) (*GetOCIRegistriesResponse, error) { + out := new(GetOCIRegistriesResponse) + err := c.cc.Invoke(ctx, OperatorService_GetOCIRegistries_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// OperatorServiceServer is the server API for OperatorService service. +// All implementations must embed UnimplementedOperatorServiceServer +// for forward compatibility +type OperatorServiceServer interface { + GetOperators(context.Context, *GetOperatorsRequest) (*GetOperatorsResponse, error) + GetOperatorMetadata(context.Context, *GetOperatorMetadataRequest) (*GetOperatorMetadataResponse, error) + GetOCIRegistries(context.Context, *GetOCIRegistriesRequest) (*GetOCIRegistriesResponse, error) + mustEmbedUnimplementedOperatorServiceServer() +} + +// UnimplementedOperatorServiceServer must be embedded to have forward compatible implementations. +type UnimplementedOperatorServiceServer struct { +} + +func (UnimplementedOperatorServiceServer) GetOperators(context.Context, *GetOperatorsRequest) (*GetOperatorsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOperators not implemented") +} +func (UnimplementedOperatorServiceServer) GetOperatorMetadata(context.Context, *GetOperatorMetadataRequest) (*GetOperatorMetadataResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOperatorMetadata not implemented") +} +func (UnimplementedOperatorServiceServer) GetOCIRegistries(context.Context, *GetOCIRegistriesRequest) (*GetOCIRegistriesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOCIRegistries not implemented") +} +func (UnimplementedOperatorServiceServer) mustEmbedUnimplementedOperatorServiceServer() {} + +// UnsafeOperatorServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to OperatorServiceServer will +// result in compilation errors. +type UnsafeOperatorServiceServer interface { + mustEmbedUnimplementedOperatorServiceServer() +} + +func RegisterOperatorServiceServer(s grpc.ServiceRegistrar, srv OperatorServiceServer) { + s.RegisterService(&OperatorService_ServiceDesc, srv) +} + +func _OperatorService_GetOperators_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOperatorsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperatorServiceServer).GetOperators(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: OperatorService_GetOperators_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperatorServiceServer).GetOperators(ctx, req.(*GetOperatorsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OperatorService_GetOperatorMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOperatorMetadataRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperatorServiceServer).GetOperatorMetadata(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: OperatorService_GetOperatorMetadata_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperatorServiceServer).GetOperatorMetadata(ctx, req.(*GetOperatorMetadataRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OperatorService_GetOCIRegistries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOCIRegistriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperatorServiceServer).GetOCIRegistries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: OperatorService_GetOCIRegistries_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperatorServiceServer).GetOCIRegistries(ctx, req.(*GetOCIRegistriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// OperatorService_ServiceDesc is the grpc.ServiceDesc for OperatorService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var OperatorService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "api.v1.OperatorService", + HandlerType: (*OperatorServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetOperators", + Handler: _OperatorService_GetOperators_Handler, + }, + { + MethodName: "GetOperatorMetadata", + Handler: _OperatorService_GetOperatorMetadata_Handler, + }, + { + MethodName: "GetOCIRegistries", + Handler: _OperatorService_GetOCIRegistries_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "api/v1/operator.proto", +} diff --git a/gen/api/v1/operator_health.pb.go b/gen/api/v1/operator_health.pb.go new file mode 100644 index 00000000..fb90cabe --- /dev/null +++ b/gen/api/v1/operator_health.pb.go @@ -0,0 +1,713 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: api/v1/operator_health.proto + +package apiv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HealthStatus int32 + +const ( + HealthStatus_HEALTH_STATUS_UNSPECIFIED HealthStatus = 0 + HealthStatus_HEALTH_STATUS_HEALTHY HealthStatus = 1 + HealthStatus_HEALTH_STATUS_DEGRADED HealthStatus = 2 + HealthStatus_HEALTH_STATUS_UNHEALTHY HealthStatus = 3 +) + +// Enum value maps for HealthStatus. +var ( + HealthStatus_name = map[int32]string{ + 0: "HEALTH_STATUS_UNSPECIFIED", + 1: "HEALTH_STATUS_HEALTHY", + 2: "HEALTH_STATUS_DEGRADED", + 3: "HEALTH_STATUS_UNHEALTHY", + } + HealthStatus_value = map[string]int32{ + "HEALTH_STATUS_UNSPECIFIED": 0, + "HEALTH_STATUS_HEALTHY": 1, + "HEALTH_STATUS_DEGRADED": 2, + "HEALTH_STATUS_UNHEALTHY": 3, + } +) + +func (x HealthStatus) Enum() *HealthStatus { + p := new(HealthStatus) + *p = x + return p +} + +func (x HealthStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HealthStatus) Descriptor() protoreflect.EnumDescriptor { + return file_api_v1_operator_health_proto_enumTypes[0].Descriptor() +} + +func (HealthStatus) Type() protoreflect.EnumType { + return &file_api_v1_operator_health_proto_enumTypes[0] +} + +func (x HealthStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HealthStatus.Descriptor instead. +func (HealthStatus) EnumDescriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{0} +} + +type ComponentHealth struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Status HealthStatus `protobuf:"varint,2,opt,name=status,proto3,enum=api.v1.HealthStatus" json:"status,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ComponentHealth) Reset() { + *x = ComponentHealth{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_health_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComponentHealth) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentHealth) ProtoMessage() {} + +func (x *ComponentHealth) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_health_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentHealth.ProtoReflect.Descriptor instead. +func (*ComponentHealth) Descriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{0} +} + +func (x *ComponentHealth) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ComponentHealth) GetStatus() HealthStatus { + if x != nil { + return x.Status + } + return HealthStatus_HEALTH_STATUS_UNSPECIFIED +} + +func (x *ComponentHealth) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *ComponentHealth) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +type ReportHealthRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + OperatorType OperatorType `protobuf:"varint,2,opt,name=operator_type,json=operatorType,proto3,enum=api.v1.OperatorType" json:"operator_type,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + OverallStatus HealthStatus `protobuf:"varint,4,opt,name=overall_status,json=overallStatus,proto3,enum=api.v1.HealthStatus" json:"overall_status,omitempty"` + Components []*ComponentHealth `protobuf:"bytes,5,rep,name=components,proto3" json:"components,omitempty"` + UptimeSince *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=uptime_since,json=uptimeSince,proto3" json:"uptime_since,omitempty"` +} + +func (x *ReportHealthRequest) Reset() { + *x = ReportHealthRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_health_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportHealthRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportHealthRequest) ProtoMessage() {} + +func (x *ReportHealthRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_health_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportHealthRequest.ProtoReflect.Descriptor instead. +func (*ReportHealthRequest) Descriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{1} +} + +func (x *ReportHealthRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *ReportHealthRequest) GetOperatorType() OperatorType { + if x != nil { + return x.OperatorType + } + return OperatorType_OPERATOR_TYPE_UNSPECIFIED +} + +func (x *ReportHealthRequest) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *ReportHealthRequest) GetOverallStatus() HealthStatus { + if x != nil { + return x.OverallStatus + } + return HealthStatus_HEALTH_STATUS_UNSPECIFIED +} + +func (x *ReportHealthRequest) GetComponents() []*ComponentHealth { + if x != nil { + return x.Components + } + return nil +} + +func (x *ReportHealthRequest) GetUptimeSince() *timestamppb.Timestamp { + if x != nil { + return x.UptimeSince + } + return nil +} + +type ReportHealthResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReportHealthResponse) Reset() { + *x = ReportHealthResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_health_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportHealthResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportHealthResponse) ProtoMessage() {} + +func (x *ReportHealthResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_health_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportHealthResponse.ProtoReflect.Descriptor instead. +func (*ReportHealthResponse) Descriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{2} +} + +type GetClusterOperatorHealthRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` +} + +func (x *GetClusterOperatorHealthRequest) Reset() { + *x = GetClusterOperatorHealthRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_health_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetClusterOperatorHealthRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterOperatorHealthRequest) ProtoMessage() {} + +func (x *GetClusterOperatorHealthRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_health_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterOperatorHealthRequest.ProtoReflect.Descriptor instead. +func (*GetClusterOperatorHealthRequest) Descriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{3} +} + +func (x *GetClusterOperatorHealthRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +type GetClusterOperatorHealthResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operators []*OperatorHealthStatus `protobuf:"bytes,1,rep,name=operators,proto3" json:"operators,omitempty"` +} + +func (x *GetClusterOperatorHealthResponse) Reset() { + *x = GetClusterOperatorHealthResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_health_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetClusterOperatorHealthResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterOperatorHealthResponse) ProtoMessage() {} + +func (x *GetClusterOperatorHealthResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_health_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterOperatorHealthResponse.ProtoReflect.Descriptor instead. +func (*GetClusterOperatorHealthResponse) Descriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{4} +} + +func (x *GetClusterOperatorHealthResponse) GetOperators() []*OperatorHealthStatus { + if x != nil { + return x.Operators + } + return nil +} + +type OperatorHealthStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorType OperatorType `protobuf:"varint,1,opt,name=operator_type,json=operatorType,proto3,enum=api.v1.OperatorType" json:"operator_type,omitempty"` + OverallStatus HealthStatus `protobuf:"varint,2,opt,name=overall_status,json=overallStatus,proto3,enum=api.v1.HealthStatus" json:"overall_status,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + LastHeartbeat *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_heartbeat,json=lastHeartbeat,proto3" json:"last_heartbeat,omitempty"` + UptimeSince *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=uptime_since,json=uptimeSince,proto3" json:"uptime_since,omitempty"` + Components []*ComponentHealth `protobuf:"bytes,6,rep,name=components,proto3" json:"components,omitempty"` +} + +func (x *OperatorHealthStatus) Reset() { + *x = OperatorHealthStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1_operator_health_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperatorHealthStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperatorHealthStatus) ProtoMessage() {} + +func (x *OperatorHealthStatus) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_operator_health_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperatorHealthStatus.ProtoReflect.Descriptor instead. +func (*OperatorHealthStatus) Descriptor() ([]byte, []int) { + return file_api_v1_operator_health_proto_rawDescGZIP(), []int{5} +} + +func (x *OperatorHealthStatus) GetOperatorType() OperatorType { + if x != nil { + return x.OperatorType + } + return OperatorType_OPERATOR_TYPE_UNSPECIFIED +} + +func (x *OperatorHealthStatus) GetOverallStatus() HealthStatus { + if x != nil { + return x.OverallStatus + } + return HealthStatus_HEALTH_STATUS_UNSPECIFIED +} + +func (x *OperatorHealthStatus) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *OperatorHealthStatus) GetLastHeartbeat() *timestamppb.Timestamp { + if x != nil { + return x.LastHeartbeat + } + return nil +} + +func (x *OperatorHealthStatus) GetUptimeSince() *timestamppb.Timestamp { + if x != nil { + return x.UptimeSince + } + return nil +} + +func (x *OperatorHealthStatus) GetComponents() []*ComponentHealth { + if x != nil { + return x.Components + } + return nil +} + +var File_api_v1_operator_health_proto protoreflect.FileDescriptor + +var file_api_v1_operator_health_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, + 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 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, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x41, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 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, 0xbe, + 0x02, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 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, 0x39, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0e, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x63, 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, 0x0b, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x22, + 0x16, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 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, 0x5e, 0x0a, 0x20, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x14, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, + 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 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, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x63, 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, 0x0b, 0x75, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2a, + 0x81, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1d, 0x0a, 0x19, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x45, + 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x47, 0x52, + 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, + 0x59, 0x10, 0x03, 0x32, 0xd1, 0x01, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, + 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1b, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x8c, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, 0x72, + 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x67, + 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x41, + 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_api_v1_operator_health_proto_rawDescOnce sync.Once + file_api_v1_operator_health_proto_rawDescData = file_api_v1_operator_health_proto_rawDesc +) + +func file_api_v1_operator_health_proto_rawDescGZIP() []byte { + file_api_v1_operator_health_proto_rawDescOnce.Do(func() { + file_api_v1_operator_health_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_v1_operator_health_proto_rawDescData) + }) + return file_api_v1_operator_health_proto_rawDescData +} + +var file_api_v1_operator_health_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_api_v1_operator_health_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_api_v1_operator_health_proto_goTypes = []interface{}{ + (HealthStatus)(0), // 0: api.v1.HealthStatus + (*ComponentHealth)(nil), // 1: api.v1.ComponentHealth + (*ReportHealthRequest)(nil), // 2: api.v1.ReportHealthRequest + (*ReportHealthResponse)(nil), // 3: api.v1.ReportHealthResponse + (*GetClusterOperatorHealthRequest)(nil), // 4: api.v1.GetClusterOperatorHealthRequest + (*GetClusterOperatorHealthResponse)(nil), // 5: api.v1.GetClusterOperatorHealthResponse + (*OperatorHealthStatus)(nil), // 6: api.v1.OperatorHealthStatus + nil, // 7: api.v1.ComponentHealth.MetadataEntry + (OperatorType)(0), // 8: api.v1.OperatorType + (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp +} +var file_api_v1_operator_health_proto_depIdxs = []int32{ + 0, // 0: api.v1.ComponentHealth.status:type_name -> api.v1.HealthStatus + 7, // 1: api.v1.ComponentHealth.metadata:type_name -> api.v1.ComponentHealth.MetadataEntry + 8, // 2: api.v1.ReportHealthRequest.operator_type:type_name -> api.v1.OperatorType + 0, // 3: api.v1.ReportHealthRequest.overall_status:type_name -> api.v1.HealthStatus + 1, // 4: api.v1.ReportHealthRequest.components:type_name -> api.v1.ComponentHealth + 9, // 5: api.v1.ReportHealthRequest.uptime_since:type_name -> google.protobuf.Timestamp + 6, // 6: api.v1.GetClusterOperatorHealthResponse.operators:type_name -> api.v1.OperatorHealthStatus + 8, // 7: api.v1.OperatorHealthStatus.operator_type:type_name -> api.v1.OperatorType + 0, // 8: api.v1.OperatorHealthStatus.overall_status:type_name -> api.v1.HealthStatus + 9, // 9: api.v1.OperatorHealthStatus.last_heartbeat:type_name -> google.protobuf.Timestamp + 9, // 10: api.v1.OperatorHealthStatus.uptime_since:type_name -> google.protobuf.Timestamp + 1, // 11: api.v1.OperatorHealthStatus.components:type_name -> api.v1.ComponentHealth + 2, // 12: api.v1.OperatorHealthService.ReportHealth:input_type -> api.v1.ReportHealthRequest + 4, // 13: api.v1.OperatorHealthService.GetClusterOperatorHealth:input_type -> api.v1.GetClusterOperatorHealthRequest + 3, // 14: api.v1.OperatorHealthService.ReportHealth:output_type -> api.v1.ReportHealthResponse + 5, // 15: api.v1.OperatorHealthService.GetClusterOperatorHealth:output_type -> api.v1.GetClusterOperatorHealthResponse + 14, // [14:16] is the sub-list for method output_type + 12, // [12:14] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name +} + +func init() { file_api_v1_operator_health_proto_init() } +func file_api_v1_operator_health_proto_init() { + if File_api_v1_operator_health_proto != nil { + return + } + file_api_v1_operator_proto_init() + if !protoimpl.UnsafeEnabled { + file_api_v1_operator_health_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComponentHealth); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_health_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportHealthRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_health_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportHealthResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_health_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetClusterOperatorHealthRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_health_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetClusterOperatorHealthResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1_operator_health_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperatorHealthStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_api_v1_operator_health_proto_rawDesc, + NumEnums: 1, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_v1_operator_health_proto_goTypes, + DependencyIndexes: file_api_v1_operator_health_proto_depIdxs, + EnumInfos: file_api_v1_operator_health_proto_enumTypes, + MessageInfos: file_api_v1_operator_health_proto_msgTypes, + }.Build() + File_api_v1_operator_health_proto = out.File + file_api_v1_operator_health_proto_rawDesc = nil + file_api_v1_operator_health_proto_goTypes = nil + file_api_v1_operator_health_proto_depIdxs = nil +} diff --git a/gen/api/v1/operator_health_grpc.pb.go b/gen/api/v1/operator_health_grpc.pb.go new file mode 100644 index 00000000..81ea9925 --- /dev/null +++ b/gen/api/v1/operator_health_grpc.pb.go @@ -0,0 +1,146 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: api/v1/operator_health.proto + +package apiv1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + OperatorHealthService_ReportHealth_FullMethodName = "/api.v1.OperatorHealthService/ReportHealth" + OperatorHealthService_GetClusterOperatorHealth_FullMethodName = "/api.v1.OperatorHealthService/GetClusterOperatorHealth" +) + +// OperatorHealthServiceClient is the client API for OperatorHealthService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type OperatorHealthServiceClient interface { + ReportHealth(ctx context.Context, in *ReportHealthRequest, opts ...grpc.CallOption) (*ReportHealthResponse, error) + GetClusterOperatorHealth(ctx context.Context, in *GetClusterOperatorHealthRequest, opts ...grpc.CallOption) (*GetClusterOperatorHealthResponse, error) +} + +type operatorHealthServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewOperatorHealthServiceClient(cc grpc.ClientConnInterface) OperatorHealthServiceClient { + return &operatorHealthServiceClient{cc} +} + +func (c *operatorHealthServiceClient) ReportHealth(ctx context.Context, in *ReportHealthRequest, opts ...grpc.CallOption) (*ReportHealthResponse, error) { + out := new(ReportHealthResponse) + err := c.cc.Invoke(ctx, OperatorHealthService_ReportHealth_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *operatorHealthServiceClient) GetClusterOperatorHealth(ctx context.Context, in *GetClusterOperatorHealthRequest, opts ...grpc.CallOption) (*GetClusterOperatorHealthResponse, error) { + out := new(GetClusterOperatorHealthResponse) + err := c.cc.Invoke(ctx, OperatorHealthService_GetClusterOperatorHealth_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// OperatorHealthServiceServer is the server API for OperatorHealthService service. +// All implementations must embed UnimplementedOperatorHealthServiceServer +// for forward compatibility +type OperatorHealthServiceServer interface { + ReportHealth(context.Context, *ReportHealthRequest) (*ReportHealthResponse, error) + GetClusterOperatorHealth(context.Context, *GetClusterOperatorHealthRequest) (*GetClusterOperatorHealthResponse, error) + mustEmbedUnimplementedOperatorHealthServiceServer() +} + +// UnimplementedOperatorHealthServiceServer must be embedded to have forward compatible implementations. +type UnimplementedOperatorHealthServiceServer struct { +} + +func (UnimplementedOperatorHealthServiceServer) ReportHealth(context.Context, *ReportHealthRequest) (*ReportHealthResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReportHealth not implemented") +} +func (UnimplementedOperatorHealthServiceServer) GetClusterOperatorHealth(context.Context, *GetClusterOperatorHealthRequest) (*GetClusterOperatorHealthResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetClusterOperatorHealth not implemented") +} +func (UnimplementedOperatorHealthServiceServer) mustEmbedUnimplementedOperatorHealthServiceServer() {} + +// UnsafeOperatorHealthServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to OperatorHealthServiceServer will +// result in compilation errors. +type UnsafeOperatorHealthServiceServer interface { + mustEmbedUnimplementedOperatorHealthServiceServer() +} + +func RegisterOperatorHealthServiceServer(s grpc.ServiceRegistrar, srv OperatorHealthServiceServer) { + s.RegisterService(&OperatorHealthService_ServiceDesc, srv) +} + +func _OperatorHealthService_ReportHealth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReportHealthRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperatorHealthServiceServer).ReportHealth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: OperatorHealthService_ReportHealth_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperatorHealthServiceServer).ReportHealth(ctx, req.(*ReportHealthRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OperatorHealthService_GetClusterOperatorHealth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterOperatorHealthRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperatorHealthServiceServer).GetClusterOperatorHealth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: OperatorHealthService_GetClusterOperatorHealth_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperatorHealthServiceServer).GetClusterOperatorHealth(ctx, req.(*GetClusterOperatorHealthRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// OperatorHealthService_ServiceDesc is the grpc.ServiceDesc for OperatorHealthService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var OperatorHealthService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "api.v1.OperatorHealthService", + HandlerType: (*OperatorHealthServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ReportHealth", + Handler: _OperatorHealthService_ReportHealth_Handler, + }, + { + MethodName: "GetClusterOperatorHealth", + Handler: _OperatorHealthService_GetClusterOperatorHealth_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "api/v1/operator_health.proto", +} diff --git a/internal/controller/custom.go b/internal/controller/custom.go index a41be386..4ba71951 100644 --- a/internal/controller/custom.go +++ b/internal/controller/custom.go @@ -58,6 +58,7 @@ type EnvBasedController struct { stopCh chan struct{} reconcileInterval time.Duration mpaServerPort int + startTime time.Time } // NewEnvBasedController creates a new environment-based controller @@ -150,6 +151,8 @@ func NewEnvBasedController(mgr ctrl.Manager, reconcileInterval time.Duration, mp // Start implements the Runnable interface for manager.Add func (c *EnvBasedController) Start(ctx context.Context) error { + c.startTime = time.Now() + // Log version information at startup versionInfo := version.Get() @@ -193,7 +196,8 @@ func (c *EnvBasedController) Start(ctx context.Context) error { return nil } -// runHealthReporting periodically logs the health status of all registered components. +// runHealthReporting periodically logs the health status of all registered components +// and sends a heartbeat to dakr via the ReportHealth RPC. func (c *EnvBasedController) runHealthReporting(ctx context.Context) { ticker := time.NewTicker(60 * time.Second) // Report health status every 60 seconds defer ticker.Stop() @@ -205,13 +209,34 @@ func (c *EnvBasedController) runHealthReporting(ctx context.Context) { for name, status := range report { c.Log.Info("Health status report", "component", name, "status", status.Status, "message", status.Message, "metadata", status.Metadata) } + + // Send heartbeat to dakr + if c.Reconciler.DakrClient != nil { + versionInfo := version.Get() + req := health.BuildHeartbeatRequest( + c.Reconciler.HealthManager, + c.getClusterID(), + versionInfo.String(), + c.startTime, + ) + if err := c.Reconciler.DakrClient.ReportHealth(ctx, req); err != nil { + c.Log.Error(err, "Failed to send health heartbeat to dakr") + } + } case <-c.stopCh: return case <-ctx.Done(): return } + } +} +// getClusterID returns the cluster ID from environment configuration. +func (c *EnvBasedController) getClusterID() string { + if id := os.Getenv("CLUSTER_ID"); id != "" { + return id } + return "unknown" } // NeedLeaderElection implements the LeaderElectionRunnable interface diff --git a/internal/health/heartbeat.go b/internal/health/heartbeat.go new file mode 100644 index 00000000..06139ef6 --- /dev/null +++ b/internal/health/heartbeat.go @@ -0,0 +1,60 @@ +package health + +import ( + "time" + + gen "github.com/devzero-inc/zxporter/gen/api/v1" + "google.golang.org/protobuf/types/known/timestamppb" +) + +// toProtoHealthStatus maps internal HealthStatus to proto HealthStatus. +func toProtoHealthStatus(s HealthStatus) gen.HealthStatus { + switch s { + case HealthStatusHealthy: + return gen.HealthStatus_HEALTH_STATUS_HEALTHY + case HealthStatusDegraded: + return gen.HealthStatus_HEALTH_STATUS_DEGRADED + case HealthStatusUnhealthy: + return gen.HealthStatus_HEALTH_STATUS_UNHEALTHY + default: + return gen.HealthStatus_HEALTH_STATUS_UNSPECIFIED + } +} + +// worstStatus returns the more severe of two HealthStatus values. +func worstStatus(a, b gen.HealthStatus) gen.HealthStatus { + if a > b { + return a + } + return b +} + +// BuildHeartbeatRequest constructs a ReportHealthRequest from the current +// HealthManager state. The zxporter operator type is OPERATOR_TYPE_READ. +func BuildHeartbeatRequest(hm *HealthManager, clusterID, version string, startTime time.Time) *gen.ReportHealthRequest { + report := hm.BuildReport() + + overall := gen.HealthStatus_HEALTH_STATUS_UNSPECIFIED + components := make([]*gen.ComponentHealth, 0, len(report)) + + for name, cs := range report { + protoStatus := toProtoHealthStatus(cs.Status) + overall = worstStatus(overall, protoStatus) + + components = append(components, &gen.ComponentHealth{ + Name: name, + Status: protoStatus, + Message: cs.Message, + Metadata: cs.Metadata, + }) + } + + return &gen.ReportHealthRequest{ + ClusterId: clusterID, + OperatorType: gen.OperatorType_OPERATOR_TYPE_READ, + Version: version, + OverallStatus: overall, + Components: components, + UptimeSince: timestamppb.New(startTime), + } +} diff --git a/internal/health/heartbeat_test.go b/internal/health/heartbeat_test.go new file mode 100644 index 00000000..a5e10082 --- /dev/null +++ b/internal/health/heartbeat_test.go @@ -0,0 +1,92 @@ +package health + +import ( + "context" + "testing" + "time" + + gen "github.com/devzero-inc/zxporter/gen/api/v1" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// mockDakrClient captures the ReportHealth call for testing. +type mockDakrClient struct { + lastReq *gen.ReportHealthRequest + err error +} + +func (m *mockDakrClient) ReportHealth(ctx context.Context, req *gen.ReportHealthRequest) error { + m.lastReq = req + return m.err +} + +func TestBuildHeartbeatRequest(t *testing.T) { + hm := NewHealthManager() + hm.Register(ComponentCollectorManager) + hm.Register(ComponentDakrTransport) + hm.UpdateStatus(ComponentCollectorManager, HealthStatusHealthy, "all good", map[string]string{"active": "5"}) + hm.UpdateStatus(ComponentDakrTransport, HealthStatusDegraded, "retrying", nil) + + startTime := time.Now().Add(-10 * time.Minute) + + req := BuildHeartbeatRequest(hm, "cluster-123", "1.2.3", startTime) + + assert.Equal(t, "cluster-123", req.ClusterId) + assert.Equal(t, "1.2.3", req.Version) + assert.Equal(t, gen.OperatorType_OPERATOR_TYPE_READ, req.OperatorType) + require.NotNil(t, req.UptimeSince) + assert.Equal(t, startTime.Unix(), req.UptimeSince.AsTime().Unix()) + + // Overall status should be the worst across components + assert.Equal(t, gen.HealthStatus_HEALTH_STATUS_DEGRADED, req.OverallStatus) + + // Components should be present + assert.Len(t, req.Components, 2) +} + +func TestBuildHeartbeatRequest_OverallStatus(t *testing.T) { + tests := []struct { + name string + statuses []HealthStatus + expected gen.HealthStatus + }{ + { + name: "all healthy", + statuses: []HealthStatus{HealthStatusHealthy, HealthStatusHealthy}, + expected: gen.HealthStatus_HEALTH_STATUS_HEALTHY, + }, + { + name: "one degraded", + statuses: []HealthStatus{HealthStatusHealthy, HealthStatusDegraded}, + expected: gen.HealthStatus_HEALTH_STATUS_DEGRADED, + }, + { + name: "one unhealthy", + statuses: []HealthStatus{HealthStatusHealthy, HealthStatusUnhealthy}, + expected: gen.HealthStatus_HEALTH_STATUS_UNHEALTHY, + }, + { + name: "all unspecified", + statuses: []HealthStatus{HealthStatusUnspecified}, + expected: gen.HealthStatus_HEALTH_STATUS_UNSPECIFIED, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + hm := NewHealthManager() + for i, s := range tt.statuses { + name := ComponentCollectorManager + if i > 0 { + name = ComponentDakrTransport + } + hm.Register(name) + hm.UpdateStatus(name, s, "", nil) + } + + req := BuildHeartbeatRequest(hm, "c1", "1.0.0", time.Now()) + assert.Equal(t, tt.expected, req.OverallStatus) + }) + } +} diff --git a/internal/transport/dakr_client.go b/internal/transport/dakr_client.go index fd0e4c25..1d2bae42 100644 --- a/internal/transport/dakr_client.go +++ b/internal/transport/dakr_client.go @@ -118,10 +118,11 @@ func (h *ClientHeaders) AttachToRequest(header http.Header) { // RealDakrClient implements communication with Dakr service type RealDakrClient struct { - logger logr.Logger - client genconnect.MetricsCollectorServiceClient - clusterClient genconnect.ClusterServiceClient - clientHeaders *ClientHeaders + logger logr.Logger + client genconnect.MetricsCollectorServiceClient + clusterClient genconnect.ClusterServiceClient + clientHeaders *ClientHeaders + operatorHealthClient genconnect.OperatorHealthServiceClient } // NewDakrClient creates a new client for Dakr service @@ -238,11 +239,18 @@ func NewDakrClient(dakrBaseURL string, clusterToken string, logger logr.Logger) clientOptions..., ) + operatorHealthClient := genconnect.NewOperatorHealthServiceClient( + httpClient, + dakrBaseURL, + clientOptions..., + ) + return &RealDakrClient{ - logger: logger.WithName("dakr-client"), - client: client, - clusterClient: clusterClient, - clientHeaders: clientHeaders, + logger: logger.WithName("dakr-client"), + client: client, + clusterClient: clusterClient, + clientHeaders: clientHeaders, + operatorHealthClient: operatorHealthClient, } } @@ -658,3 +666,9 @@ func (c *RealDakrClient) SendNetworkTrafficMetrics(ctx context.Context, req *gen return resp.Msg, nil } + +// ReportHealth reports the health status of the operator to Dakr +func (c *RealDakrClient) ReportHealth(ctx context.Context, req *gen.ReportHealthRequest) error { + _, err := c.operatorHealthClient.ReportHealth(ctx, connect.NewRequest(req)) + return err +} diff --git a/internal/transport/interface.go b/internal/transport/interface.go index fda72f61..b8fb18b3 100644 --- a/internal/transport/interface.go +++ b/internal/transport/interface.go @@ -28,6 +28,9 @@ type DakrClient interface { // SendNetworkTrafficMetrics pushes network traffic metrics from a node SendNetworkTrafficMetrics(ctx context.Context, req *gen.SendNetworkTrafficMetricsRequest) (*gen.SendNetworkTrafficMetricsResponse, error) + + // ReportHealth + ReportHealth(ctx context.Context, req *gen.ReportHealthRequest) error } // Sender defines methods for sending data to external systems diff --git a/internal/transport/sender.go b/internal/transport/sender.go index 0293b8de..e1c5ea15 100644 --- a/internal/transport/sender.go +++ b/internal/transport/sender.go @@ -186,3 +186,9 @@ func (c *SimpleDakrClient) SendNetworkTrafficMetrics(ctx context.Context, req *g "lookupsCount", len(req.DnsLookups)) return &gen.SendNetworkTrafficMetricsResponse{ProcessedCount: int32(len(req.Items))}, nil } + +// ReportHealth implements SimpleDakrClient. +func (c *SimpleDakrClient) ReportHealth(ctx context.Context, req *gen.ReportHealthRequest) error { + c.logger.Info("ReportHealth (simple client, no-op)", "cluster_id", req.ClusterId, "version", req.Version) + return nil +} diff --git a/proto/dakr_proto_descriptor.bin b/proto/dakr_proto_descriptor.bin index dc94ac887ffd31c27a45ceb741ec683a859c7386..37f0f9527ac34067b592b7baa075656d5b60c0c2 100644 GIT binary patch delta 108984 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

X10fdZGP{QI@1#;HT5bo14@6`OQL~&6 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 z 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 Al>h($ delta 92877 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 zå=9_Q0^A>Z!M!qQO8%4+May`T!HNVpo_0VCJZm5obE@U=SwC>zxu>*Hmw1}f)8{GiqXHCs?GUEmnYJI`n6GsQN2avb*e((Yk zb$x+NeGOhfq^~dFKGqeeHz?^11;f5JAv0&Qd zqc$)#U~cp!0>a!_a63&vm>UbY$93WK4MM*Z%+vX(HB3!ce@U5YkiQh%v2H?>xE$-& zsiPY-UENeLzvQFZ!vHWhrMcB?byLCpFP%`Bn+klmpnb|4tK;7a{01Z2w3}(Zku9tn z3sILwH^TU>z+ouXn$e9?;_n6XULiWMJpk+b-S<{NqW)ee+inAh@ZTj|dxtlwv|9`2 z=wfvA5dfH5Q>K)-wcxg835B^;s?dh+jZ)&aLU3SMMEgeKMRw-Ek&cx4Te25>4__%c9mf0zLRF$9Nk%%^!h)d z)}=|u-xt+Z2S4vP>CS%9Dfvk&p3{#kwmzA)zahClN`6B!Ziqf7cw$m8JUXDFT^{ZS zIgFLF8S;A6vZd|;d^{WYTVM`DLyu><6Y?agkv_L?HuHj6^?Gz-Ro^V<9&!IiNmtv? z96ctwptc`(qa=pTO9b`Hy5nGWGSDx}aWLsD+3Xl#J{l7pSvw%>Mgv|#8IX0?JlV~T z0a?CU*Zo86Q?S-E2ak=q)DGl+6PJo=W?;5rD~dR1X#n9G1hGT2?!sTY-7z%FV$GJ9x*cJLz7ZW+HzMoiwd`*|8Ig4#G1~2p5m|Pqx}$5x znpd)!sirh8IO245;ZQBg^P)uya#$ z`oY{2JLZ6F!IZ{Fm0Dif8Y2nmCnnGhXNJ2@?&^gTK2JSD_|GC9jIq08;FD$^9RbV9Um-ISD~ou(;S z=awN3lqp%phU=&z99QpUGas8a6QgUZ-pjJe)MyZ>Bm2O-G%>30@D(=*JY6Qagu%A}~BxpGppOD%70ZK3ldk}C`l z2_LF3x=bxlW0_?}Oo}e7o0U>jPqTbshy!Jo3e%0kudIj1%01-IbD-?*p*~){~bnLitHZ1E7$b+B)JyqGClXb_T357aGwl6Aw7a{+1 zy@7$?0zFrf=Vsj?MJU|4G8>yL=(DVw@~~YC73it5xX-fg;0vKiWOrgJl*P@<1_#;s zKae^D+ffGycV5=HEP!z5We>C$%!bP1=UI2bBnT?dQ)PLdXPw7_P^h1089>^j`KUTx zkj*U0W}EI;b4GF{toi-GXh)Nu95p?EL6-4R<%(1j3$t#40V1zJJDmrT-omW=P6$YP z3$ra-CDsNcy@gpWCDCmYx$1aHmOp3wYjRZAuq5l8Mmfn}nsq)G5CVa=06+vT^-Uaz zz@=*9%34nK@paaHGYvu&K&x_K66(I^148{en|v2VP3Kh8-*^K9!3BD*B!A-#j8M4W zcmvA`eVb-cH4XGs)%3UCNQj$6c1Ds@O)tYXZA}B=f<0F?z04aYp>UUZ^m1=tghE}Obq2<#ifj>O-6uz&9G5kNJy)I0imdzj2ElMwWZlKpe80|QJxx}p z*MXj@t?iX*vf9gDnI_Aa_FYQV;dP*>{6~ln*x-Jbay8<8mvY(AUX^B9Hz)vovfAHX zl`2^q+N-keCxm>&#;LNba{z)UJkVQ|_PD=4&o?K6;eMZW9>AP#Q1~I`>IMa%=W3(- zhm@+F?H@!v2J?=q<8|50M)QBBME|#`vkkJcxbpbr^y3AYFavjHcuQ8vT`R_ynGi^X zXf$9F<7&!8tCBBC)vigUQd?#1y1O5?@?rN9MNtz1Ca#ZKz7QjduPKyB3gsmu3ZxPu zW&}Y|U+vH4-quvb0!c$Lz*+SP_E1PhFJ=gw{9xVF0b8C)IS4EMJF+)<{+0qsKet}lFmVg z@s0ZNakZ1<%9R_6*&W9QpEs_%?B7^4=kOryu8|CRbR4c(nwfx*M`d;2 zr63a;_3Ny5lZ~5sMS1n1qPx6sQ*m*}b%txDs%U}=w7C4)rebc-V$16A5Q&Q|Pfb81 zE;gnGc@#}hc1y~?Y%0!NxP)uSVy---GL~4|xeoP`^~C>2MM1(6`_h8=F>xvf>a2Dv zI(;MQbj3Brgz`t1;8S(e?}|@#{KVKPly;{|yQR{uXD+{~vZbygkQ|n}jzDr)Djl^j zKUF#|FaM#hIDhVP%N4~#J+)j>Kq$+NiuxuMHIe^)to9g6T|BGYcW=>E-rHB4*KwO+ zf6`^5bh$n1QcixZsQ2FPs*r-*+g%kPa&MO^3d=E3s@!Si+TF#c=K?6iofT6W-D!Ds zLMqHVjR{>}h!fTBcbE4)SInDpx8<(GLnwD!USk8H+-(fxUyl^feP%OeUL;S$8RaK8 z7qfeKknC(?T(8|{dG-Xx*BRX88%HHHa2)#I&BYgb?)OULA^F{Jd@9JgfKcwYF$%?5 zSq_S_vZ81RU0G2ygsv3j%$N&?vZ}o7`QogeRTV`e=PC~Aq+HiGj!})}DFSCV6Tu2&%BH7fCGkxV_>u^rc1K2Xu7R$W(Kv!ytvXPs9P5237c`vvMH*{_Z^x2g5k zmz%c~m-eo=d?PFmp{%!jB^eOPdgDNfO#Wjmf35ahdH&Yo8<+pi(qFd4$5csu*j}t= z5Y+@sB?Tg|&+=JgAOic0Kk%+X;G{mp z|4~b(b`@&7rOO)OYCQsUt|Y%`&3L`1QsKU6bGW-PY7E*@Wveeapi|?z+Qzbt z>uS%oJ+7gP?ky)fU*f8Z-JUl{IGcOJxmIyv>@a-{yQZ?gI$M*(3#xW4##*mfx;Yn>wHgCDSF5pCteMWTkqY+}>x~!b z@-mCD-4#`fF`!em7~5S@wHVu7QE@ZeV-|f|WPiF~5A0mI9`3Pb`b&jWxO?pL^KvEQ zYxt^j+f6~qfKHYB;j0x@{)VqsRQwHJvvjd2`YS9Mu;pC&AiieJGjm(Z>F_l>JDm(` zm($^1%PtcjxIm}M4{>kRN91_8*XAT2iFQRMd)+L$PLi!+lL4JNSsp2`TQgM#$#7q{ z3ogv1B{aKM^r`PUu;l?_<_kE30I$_6W{qQC>4D!0NxYkoQlR;aQ; zJ0}f?*xyt--=Os_%-wpb`q!X+WKz%BJdr{*IjgI#(UTDl^`IfK&NUh zeb=p@RH*M-z7nL>p}BO}>i`57=v+x2_Hlw#xWhh|b_o5|a-d}pRG?Eem;Tk7^J2}D z8efiql~q{QY42hEX)XoA1v^)B>3i0^FmpARzGn;4zk?l`OOI8h)m#d6s^-#TRcSSs z9`n+6sC36IU6PLyaV`ZrS99rcAD&2td)(5c`Mk|!`MxiyKxhF><_(1UzMD4?>ib$! zrKY93j`*UZBhHmT<@&u-5Uj~^#HVl|+!0@ObZD~t!0ik~34pG#Cd&^hv(RMuf$Z!e z>}+zQ{*l#wTrTP_E^K{dIDSc)$+ELi%WhR5$^lH}03vYIzr}zE9M!j2qLO&h@?PlV z_!$RGU*N!)n!jFvP*3XXMbs-N%gz>stT+e*0HzOTAX+T)Si(R=E%Hd!KtwH405f$T z+}jt2+E2=*FBex`wm9%1s|=>7ST}@x>kNo`0;WSgKm^_p@*y7}0&nmTv{RJZjpbQ8 z`Odh};|%jqPs8+dY!e9O#=y?J{*9fY(kv-|ytDXhYl(+7<{^|NVMaRm4urBKud~_;Oy&Pf=yv9P*|n2r4jbBmD~)?#&^836Sd@#M}a*2>Ar5=lnU zpI0xd_JH~2c+BVL3V4_lruKeODWTc|x)M6y^NUIes^_-qT~!Zo%EZ%|@W@psdv4Rq z|BNAW8sd&n`(+q6^U7J}g8PcUzkqbw?qc@jI|6^EXxpTrI=d^B%Qh9~&IORkT_JZl zAer11@;(!gqTLnp#z{lfa8LO(;UIeMsVJ(*dpy7+??Aan<<(z64OQfdvO!RY)(Y=o zJj7^LgnalMh=diPEBy@xM8b*?9XhS(Y}9`hYQGNY0J#=VzY6)gxKky0fZ)k-WCl?b zU@|8l?>^wcBRkVwPY)<+vbt!e@?2SQwF?AvuFABs;;Kw5D=KArkf6mmTNyRbsS^C4 zhu`dsg?TWr2@=0lI#srZd}IK@1v*!z^N@#VB{jaxKkG?jOlOsc%Iu8$>%cVN0imu6 zeBf&}1cbUOTOE*WS`SxTbv&SRWmykbTy?yMD=uyINJZ5FT%c1mOFdFiHA_8GQMF6t z)K+JlrohgP+eH;OZWmQtrm4q#Na~Dnsew+_EcKYjr6!eZA5&cFR8h=QkNZH_Y1&^0 z=J@VlxQ|y{O;eA1eD_X$(>>t>BZ$HS)940-`h*W|K&VfI7!kyZu10-zsQoq@s+Q`j z!-N#Mpi73@deTb+L?vKqb|5c5>7m7eh<(ya(Qip0q(Xhl4Yf<1 zZ;eOSYyq(#aGK|Uh+5v01>q&~^hp7gC|F)kLamZMqxv zb)oirZVtYFTE#k#cG|7>c*ZRRgjiq_3q2s6h9YpknM!HN3h=jht z-JtSb>DC%}bNSnS#lqI+N`jWcn=1(#V>X9;X*U!kYz{aD$V8?#>RUo>TQ(7Ww^6plx_B7Z|wJw>+RxLEZ@$FnB zPLss#dYk}mO?CX3in_8ed>xWh}xLp=@onh_wB9kMZb zX-t!e^_Mpsz)PdwO^b(6`rRynQ2IqtJx&waRqi=}7Z6e3Q|s{%%C0aqostq^@Z-Jb)5vL|p@Umi`vPMiau6H%I_U4zS?ty4y3l!Ln`n{7(3@JK}P~dJShaJ z;vIGh>xNdzPPk{|Mc zB9&>XW92Uo7vGw5tWsGE&103yYN}&W`CE~K_>o}$HuG!cvSr20^5Qp(`K^&Edo4V1 z{fy@o$Uu!Y5-z_+9S2CiJ`wC|xjNN@PgJ$5W928R+Es@>q1sh+t^iU-uyfU?PKLH*{G`G?nI<7CW;W{A6=Pwuwf}RSf(Oajbf%2)`f}Hi;_TC} bXGn_U0S|fS`eJGtwtz^xzMS<|alzjJU^Gut From 6496a36c2750bfc4cd2e34dbad64131f8cf2ba82 Mon Sep 17 00:00:00 2001 From: Antonio Nesic Date: Wed, 18 Feb 2026 15:39:18 +0100 Subject: [PATCH 2/5] Gitar fixes --- internal/controller/custom.go | 46 ++++++++++++++++++------------- internal/health/heartbeat.go | 9 +++++- internal/health/heartbeat_test.go | 12 -------- 3 files changed, 35 insertions(+), 32 deletions(-) diff --git a/internal/controller/custom.go b/internal/controller/custom.go index 4ba71951..229a4a44 100644 --- a/internal/controller/custom.go +++ b/internal/controller/custom.go @@ -199,30 +199,16 @@ func (c *EnvBasedController) Start(ctx context.Context) error { // runHealthReporting periodically logs the health status of all registered components // and sends a heartbeat to dakr via the ReportHealth RPC. func (c *EnvBasedController) runHealthReporting(ctx context.Context) { - ticker := time.NewTicker(60 * time.Second) // Report health status every 60 seconds + ticker := time.NewTicker(60 * time.Second) defer ticker.Stop() + // Send initial heartbeat immediately so dakr sees the operator right away + c.sendHealthReport(ctx) + for { select { case <-ticker.C: - report := c.Reconciler.HealthManager.BuildReport() - for name, status := range report { - c.Log.Info("Health status report", "component", name, "status", status.Status, "message", status.Message, "metadata", status.Metadata) - } - - // Send heartbeat to dakr - if c.Reconciler.DakrClient != nil { - versionInfo := version.Get() - req := health.BuildHeartbeatRequest( - c.Reconciler.HealthManager, - c.getClusterID(), - versionInfo.String(), - c.startTime, - ) - if err := c.Reconciler.DakrClient.ReportHealth(ctx, req); err != nil { - c.Log.Error(err, "Failed to send health heartbeat to dakr") - } - } + c.sendHealthReport(ctx) case <-c.stopCh: return case <-ctx.Done(): @@ -231,6 +217,28 @@ func (c *EnvBasedController) runHealthReporting(ctx context.Context) { } } +// sendHealthReport logs component health and sends a heartbeat to dakr. +// It builds the report once to keep local logs and the RPC payload consistent. +func (c *EnvBasedController) sendHealthReport(ctx context.Context) { + report := c.Reconciler.HealthManager.BuildReport() + for name, status := range report { + c.Log.Info("Health status report", "component", name, "status", status.Status, "message", status.Message, "metadata", status.Metadata) + } + + if c.Reconciler.DakrClient != nil { + versionInfo := version.Get() + req := health.BuildHeartbeatRequestFromReport( + report, + c.getClusterID(), + versionInfo.String(), + c.startTime, + ) + if err := c.Reconciler.DakrClient.ReportHealth(ctx, req); err != nil { + c.Log.Error(err, "Failed to send health heartbeat to dakr") + } + } +} + // getClusterID returns the cluster ID from environment configuration. func (c *EnvBasedController) getClusterID() string { if id := os.Getenv("CLUSTER_ID"); id != "" { diff --git a/internal/health/heartbeat.go b/internal/health/heartbeat.go index 06139ef6..116d8d99 100644 --- a/internal/health/heartbeat.go +++ b/internal/health/heartbeat.go @@ -22,6 +22,8 @@ func toProtoHealthStatus(s HealthStatus) gen.HealthStatus { } // worstStatus returns the more severe of two HealthStatus values. +// NOTE: This relies on proto enum values being ordered by increasing severity: +// UNSPECIFIED(0) < HEALTHY(1) < DEGRADED(2) < UNHEALTHY(3). func worstStatus(a, b gen.HealthStatus) gen.HealthStatus { if a > b { return a @@ -32,8 +34,13 @@ func worstStatus(a, b gen.HealthStatus) gen.HealthStatus { // BuildHeartbeatRequest constructs a ReportHealthRequest from the current // HealthManager state. The zxporter operator type is OPERATOR_TYPE_READ. func BuildHeartbeatRequest(hm *HealthManager, clusterID, version string, startTime time.Time) *gen.ReportHealthRequest { - report := hm.BuildReport() + return BuildHeartbeatRequestFromReport(hm.BuildReport(), clusterID, version, startTime) +} +// BuildHeartbeatRequestFromReport constructs a ReportHealthRequest from an +// already-built report map. Use this when you need to log and send the same +// snapshot to avoid a double lock acquisition on HealthManager. +func BuildHeartbeatRequestFromReport(report map[string]ComponentStatus, clusterID, version string, startTime time.Time) *gen.ReportHealthRequest { overall := gen.HealthStatus_HEALTH_STATUS_UNSPECIFIED components := make([]*gen.ComponentHealth, 0, len(report)) diff --git a/internal/health/heartbeat_test.go b/internal/health/heartbeat_test.go index a5e10082..a10fd4df 100644 --- a/internal/health/heartbeat_test.go +++ b/internal/health/heartbeat_test.go @@ -1,7 +1,6 @@ package health import ( - "context" "testing" "time" @@ -10,17 +9,6 @@ import ( "github.com/stretchr/testify/require" ) -// mockDakrClient captures the ReportHealth call for testing. -type mockDakrClient struct { - lastReq *gen.ReportHealthRequest - err error -} - -func (m *mockDakrClient) ReportHealth(ctx context.Context, req *gen.ReportHealthRequest) error { - m.lastReq = req - return m.err -} - func TestBuildHeartbeatRequest(t *testing.T) { hm := NewHealthManager() hm.Register(ComponentCollectorManager) From 8d00a66cecad48034c3c80cc1fb3f3c4ccd083b7 Mon Sep 17 00:00:00 2001 From: Antonio Nesic Date: Wed, 18 Feb 2026 15:57:39 +0100 Subject: [PATCH 3/5] ci: retrigger pipeline From 9be53d4abf800e4f793d73b1b5be39870fc04ec6 Mon Sep 17 00:00:00 2001 From: Antonio Nesic Date: Wed, 18 Feb 2026 16:21:02 +0100 Subject: [PATCH 4/5] Retrigger vercel From 7c28cda1a80a3a20f0672cd3c73211e741abb90f Mon Sep 17 00:00:00 2001 From: Antonio Nesic Date: Thu, 19 Feb 2026 15:14:08 +0100 Subject: [PATCH 5/5] New proto gen --- gen/api/v1/common.pb.go | 2254 ---------------------------- gen/api/v1/metrics_collector.pb.go | 64 - proto/dakr_proto_descriptor.bin | Bin 333318 -> 333768 bytes 3 files changed, 2318 deletions(-) diff --git a/gen/api/v1/common.pb.go b/gen/api/v1/common.pb.go index 53b75c17..9ff4628b 100644 --- a/gen/api/v1/common.pb.go +++ b/gen/api/v1/common.pb.go @@ -14064,784 +14064,6 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x57, 0x61, 0x73, 0x74, 0x65, 0x22, 0x68, 0x0a, 0x10, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, 0x0a, - 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x75, 0x0a, 0x11, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x42, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x22, 0xc8, 0x03, 0x0a, 0x0b, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, - 0x67, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x14, 0x63, 0x70, 0x75, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x4d, - 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x70, 0x75, - 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x72, 0x6b, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x70, 0x75, 0x48, 0x69, 0x67, 0x68, 0x57, - 0x61, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x75, - 0x61, 0x6c, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x70, 0x75, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x21, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, - 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x1e, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x70, 0x75, - 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x18, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x57, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x72, - 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x63, - 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x70, 0x75, 0x5f, - 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x61, 0x76, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x63, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x63, 0x70, 0x75, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x70, 0x75, 0x5f, - 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x77, 0x61, 0x73, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0c, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x57, 0x61, 0x73, 0x74, 0x65, 0x22, 0x68, - 0x0a, 0x10, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x36, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x61, 0x76, - 0x69, 0x6e, 0x67, 0x73, 0x44, 0x61, 0x74, 0x61, 0x22, 0x83, 0x02, 0x0a, 0x11, 0x53, 0x61, 0x76, - 0x69, 0x6e, 0x67, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x47, - 0x0a, 0x12, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x6d, 0x69, 0x6c, - 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x70, 0x75, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x4d, 0x69, - 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, - 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2f, 0x0a, - 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, - 0x77, 0x61, 0x73, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x73, 0x74, 0x57, 0x61, 0x73, 0x74, 0x65, 0x22, 0x7f, - 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, 0x39, 0x0a, 0x08, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 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, - 0x2f, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, - 0x22, 0x94, 0x02, 0x0a, 0x0d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x49, 0x0a, - 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, - 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, 0x3e, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x65, 0x78, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xe0, 0x47, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x70, - 0x6f, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4e, - 0x0a, 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, - 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x12, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x48, - 0x0a, 0x12, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x10, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, - 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x10, - 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, - 0x52, 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x76, 0x63, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x76, 0x63, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x76, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x8d, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x09, 0x70, 0x76, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x73, 0x63, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x09, 0x73, 0x63, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x6e, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, - 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x90, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x6f, - 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x68, 0x70, 0x61, - 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x68, 0x70, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x76, 0x70, 0x61, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x50, 0x41, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x76, - 0x70, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4c, 0x0a, 0x13, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x58, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0xe8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x39, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x18, 0xe9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, - 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x14, - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0xea, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x12, 0x72, 0x6f, 0x6c, 0x65, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x5f, 0x0a, - 0x1a, 0x6b, 0x65, 0x64, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xeb, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, 0x61, - 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x17, 0x6b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, - 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x61, - 0x0a, 0x1a, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xec, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, - 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x18, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x68, 0x0a, 0x1d, 0x70, 0x6f, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0xed, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, - 0x1a, 0x70, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, - 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xee, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x4c, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x5f, 0x6a, 0x6f, - 0x62, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, - 0x6f, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x76, - 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x5e, 0x0a, 0x19, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xf2, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, - 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x17, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x7a, 0x0a, 0x23, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x70, - 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0xf3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x20, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x61, - 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, - 0x49, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x71, 0x6f, 0x73, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x6f, 0x73, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x36, 0x0a, 0x17, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x15, 0x63, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x4d, 0x69, - 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, - 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x70, 0x75, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, - 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x2d, - 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, - 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, - 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x64, 0x5f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x3d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x6f, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x18, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x76, - 0x63, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, 0x63, 0x52, 0x65, 0x74, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x10, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, - 0x4b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x69, 0x73, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, - 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6a, 0x6f, 0x62, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x6a, 0x6f, 0x62, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x12, 0x3a, 0x0a, 0x19, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x51, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x17, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, - 0x6a, 0x6f, 0x62, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, - 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, - 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x61, 0x63, - 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x53, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x54, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x18, 0x55, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x56, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x6f, - 0x62, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, - 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x58, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x64, 0x73, - 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x70, - 0x6f, 0x64, 0x73, 0x18, 0x59, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x46, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x6f, 0x6e, - 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, - 0x5b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x75, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x63, 0x72, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x35, - 0x0a, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x14, 0x63, 0x72, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x72, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, - 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, - 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x60, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x33, 0x0a, 0x16, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x61, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x13, 0x63, 0x72, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, - 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x62, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, - 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, - 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, - 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x69, 0x70, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, 0x12, 0x30, 0x0a, 0x14, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x5f, 0x69, 0x70, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x73, 0x12, 0x38, - 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, - 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x68, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x69, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x6a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4c, 0x0a, 0x23, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x18, 0x6c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x6e, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x46, 0x61, - 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x79, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x73, - 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x73, 0x18, 0x7a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x7b, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, - 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x7c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, 0x73, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x2e, - 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x7d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x39, - 0x0a, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x7e, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x7f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x80, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x6c, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x63, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x16, - 0x70, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, - 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, - 0x76, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x61, 0x63, - 0x69, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x70, 0x76, 0x63, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x85, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x70, 0x76, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x76, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x63, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x76, 0x63, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x87, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x88, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x76, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x76, 0x63, 0x5f, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x76, 0x63, 0x49, 0x73, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x76, 0x63, 0x5f, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x76, 0x63, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x35, 0x0a, 0x16, 0x70, 0x76, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, - 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, 0x8b, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x14, 0x70, 0x76, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x76, 0x5f, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x76, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x76, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x76, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, - 0x0f, 0x70, 0x76, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, - 0x18, 0x98, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x76, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x76, 0x5f, 0x72, 0x65, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x99, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x70, 0x76, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x76, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, - 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x9a, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x70, 0x76, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x34, 0x0a, 0x16, 0x70, 0x76, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x70, 0x76, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x76, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x76, 0x5f, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x76, 0x49, 0x73, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x76, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, - 0x76, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, - 0x76, 0x5f, 0x63, 0x73, 0x69, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x9f, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x76, 0x43, 0x73, 0x69, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x15, 0x70, 0x76, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x70, 0x76, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x76, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0xa1, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x70, 0x76, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x63, - 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0xaa, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x63, 0x52, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x34, 0x0a, 0x16, 0x73, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xac, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x73, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0xad, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x63, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x18, 0xae, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x2e, 0x53, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x18, 0xaf, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x13, 0x73, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x63, 0x5f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0e, 0x73, 0x63, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0xb1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, - 0x73, 0x18, 0xb2, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x73, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, - 0x70, 0x75, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0xb3, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x70, 0x75, 0x43, 0x61, 0x70, 0x61, 0x63, - 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0xb4, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x43, 0x61, - 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, - 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0xb6, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x52, - 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0xb7, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, - 0xb8, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, - 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0xbb, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x73, 0x18, - 0xbc, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x4f, 0x73, 0x12, 0x35, - 0x0a, 0x16, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x14, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xbe, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x29, 0x0a, 0x10, 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x73, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x70, 0x61, - 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x68, - 0x70, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, - 0xc9, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x70, 0x61, 0x4d, 0x61, 0x78, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x70, 0x61, 0x5f, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0xca, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x70, 0x61, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x70, 0x61, - 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x70, 0x61, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x68, 0x70, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x68, 0x70, 0x61, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x70, 0x61, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x68, 0x70, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x70, 0x61, - 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, - 0x68, 0x70, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x70, 0x53, 0x74, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x1c, 0x68, 0x70, 0x61, 0x5f, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, - 0x68, 0x70, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x53, 0x74, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x70, 0x61, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xd2, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x70, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x76, 0x70, 0x61, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x10, 0x76, 0x70, 0x61, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x3b, 0x0a, 0x19, 0x76, 0x70, 0x61, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xd4, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x76, 0x70, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, - 0x0a, 0x0e, 0x76, 0x70, 0x61, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x70, 0x61, 0x43, 0x70, 0x75, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x70, 0x61, 0x5f, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x76, 0x70, 0x61, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x70, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x70, 0x61, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0xdc, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0xdd, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x43, 0x70, - 0x75, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0xe0, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, - 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x18, 0xe1, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x18, 0xe2, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x41, 0x0a, - 0x1d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0xe3, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x47, 0x0a, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0xe4, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xe5, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x4b, 0x0a, 0x22, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, - 0x12, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x10, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0xf0, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf1, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x42, 0x0a, 0x14, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0x1a, 0x3f, - 0x0a, 0x11, 0x53, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x6f, - 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x70, 0x75, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x63, 0x70, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, - 0x32, 0x0a, 0x15, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x69, - 0x6c, 0x6c, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, - 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, - 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x44, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x39, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6e, - 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x81, 0x01, 0x0a, 0x11, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x08, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, - 0xb0, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, @@ -16522,1112 +15744,6 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0e, - 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x7d, - 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xda, 0x01, - 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, - 0x6f, 0x66, 0x66, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, - 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x15, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0xdc, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 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, - 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1a, 0x0a, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0x17, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x69, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xf3, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x4c, 0x53, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x0f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x0e, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x4f, 0x0a, - 0x15, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x4c, - 0x0a, 0x0b, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x29, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x70, 0x0a, 0x0b, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x07, - 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0xfe, - 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x43, 0x0a, 0x0a, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x4c, 0x53, 0x12, 0x14, 0x0a, - 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, - 0x73, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x02, 0x0a, 0x1c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x14, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x12, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x43, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x6f, - 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x50, 0x6f, 0x64, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 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, 0x39, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x72, 0x65, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x50, 0x56, 0x43, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x62, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, - 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf5, - 0x02, 0x0a, 0x17, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x61, - 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, - 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, - 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x72, - 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x56, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x3b, 0x0a, 0x0d, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x61, 0x70, - 0x61, 0x63, 0x69, 0x74, 0x79, 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, 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x56, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x10, 0x0a, - 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd5, 0x02, 0x0a, 0x0e, - 0x50, 0x56, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x63, 0x73, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x63, 0x73, 0x69, 0x12, 0x39, 0x0a, - 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x03, 0x6e, 0x66, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x46, 0x53, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, - 0x6e, 0x66, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, - 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 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, 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, 0xa5, 0x02, 0x0a, 0x0f, 0x43, 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, - 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5a, 0x0a, 0x11, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x53, 0x49, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 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, 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, 0x3e, 0x0a, 0x14, 0x48, - 0x6f, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0f, 0x4e, - 0x46, 0x53, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 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, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, - 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xbe, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x47, - 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, - 0x67, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, - 0x61, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, - 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 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, 0xdf, 0x03, 0x0a, - 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x35, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x3d, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x46, - 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 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, 0x3e, - 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 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, 0x6a, - 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x69, 0x6e, 0x74, 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, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x0b, 0x4e, 0x6f, - 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x0d, 0x4e, 0x6f, 0x64, 0x65, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8d, 0x03, 0x0a, 0x0e, 0x4e, 0x6f, - 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x55, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, - 0x6f, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, - 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, - 0x6f, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6f, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x75, - 0x62, 0x65, 0x6c, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, - 0x6b, 0x75, 0x62, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x75, 0x62, 0x65, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x40, 0x0a, 0x09, 0x4e, 0x6f, 0x64, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x10, 0x54, - 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, - 0x54, 0x0a, 0x17, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, - 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x52, 0x15, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, - 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x50, - 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, - 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, - 0x72, 0x6d, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 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, 0x9b, 0x01, 0x0a, 0x0e, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, - 0x2d, 0x0a, 0x12, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x74, 0x6f, 0x6c, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x3e, - 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2e, - 0x0a, 0x05, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x22, 0xa4, - 0x01, 0x0a, 0x10, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, - 0x65, 0x72, 0x6d, 0x12, 0x4c, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 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, 0x12, 0x42, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x4e, 0x6f, 0x64, 0x65, 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, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 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, 0xa5, 0x02, 0x0a, 0x0a, 0x48, 0x50, 0x41, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x52, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x41, 0x0a, 0x0f, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, - 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x59, - 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, - 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe9, 0x01, 0x0a, 0x09, 0x48, 0x50, - 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x50, 0x6f, 0x64, - 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x12, 0x2f, 0x0a, - 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x35, - 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, 0x6b, 0x0a, 0x11, 0x48, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x48, 0x50, 0x41, 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, - 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0f, - 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, - 0x45, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, - 0x0a, 0x11, 0x48, 0x50, 0x41, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x11, 0x48, - 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 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, 0x7b, 0x0a, 0x12, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x64, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x06, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x22, 0x93, 0x01, 0x0a, 0x18, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x75, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x14, 0x48, 0x50, 0x41, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x61, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x16, 0x48, 0x50, 0x41, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x45, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x23, 0x0a, 0x0d, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x48, 0x50, 0x41, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x31, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x48, - 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x0b, 0x48, - 0x50, 0x41, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x70, 0x12, 0x36, - 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, 0x53, - 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x48, 0x50, 0x41, 0x53, 0x63, - 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x73, 0x74, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x1a, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x50, 0x41, - 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x10, 0x48, 0x50, 0x41, 0x53, 0x63, - 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xbc, 0x02, 0x0a, - 0x0a, 0x56, 0x50, 0x41, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, - 0x12, 0x3c, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x50, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x42, - 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x0c, 0x56, - 0x50, 0x41, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x0f, 0x56, 0x50, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x66, 0x0a, 0x11, 0x56, - 0x50, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x51, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x22, 0xdf, 0x03, 0x0a, 0x1a, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, - 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x69, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x61, 0x78, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x78, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 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, 0x3d, 0x0a, 0x0f, 0x4d, 0x61, 0x78, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 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, 0x74, 0x0a, 0x11, 0x56, 0x50, 0x41, 0x52, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x19, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x05, 0x0a, 0x1a, - 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, - 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x53, - 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x12, 0x5f, 0x0a, 0x0f, 0x75, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x55, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x75, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 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, 0x3d, - 0x0a, 0x0f, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 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, 0x41, 0x0a, - 0x13, 0x55, 0x6e, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x56, 0x50, 0x41, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, - 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, - 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0x43, 0x0a, 0x11, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xd8, 0x05, 0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, - 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, - 0x53, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x31, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x69, 0x6e, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x67, 0x0a, 0x17, 0x6d, 0x61, - 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, - 0x74, 0x65, 0x6d, 0x2e, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, - 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x1a, 0x40, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x69, - 0x6d, 0x69, 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, 0x41, 0x0a, 0x13, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x78, 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, 0x36, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 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, 0x47, 0x0a, 0x19, 0x4d, 0x61, 0x78, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x61, 0x74, 0x69, 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, 0xd1, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, - 0x75, 0x6c, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x01, 0x0a, - 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x70, 0x69, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x70, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x66, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x54, 0x0a, 0x0d, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x69, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x22, 0xe4, 0x02, 0x0a, 0x17, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, - 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x69, 0x6e, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, - 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x41, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, 0x61, - 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x17, 0x4b, 0x65, - 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 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, 0xab, 0x01, 0x0a, 0x19, 0x4b, 0x65, 0x64, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x64, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, - 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0x85, 0x04, 0x0a, 0x18, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 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, 0x42, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, - 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x66, 0x12, 0x1b, 0x0a, 0x09, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, - 0x2b, 0x0a, 0x11, 0x6b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x61, 0x72, 0x70, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x1a, 0x4b, 0x61, 0x72, 0x70, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x11, 0x4b, 0x61, 0x72, 0x70, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, - 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, - 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x1a, 0x38, 0x0a, 0x0a, 0x4f, 0x74, 0x68, 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, 0x5c, 0x0a, 0x14, - 0x4b, 0x61, 0x72, 0x70, 0x65, 0x6e, 0x74, 0x65, 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, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xc5, 0x04, 0x0a, 0x0f, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x49, - 0x0a, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x48, 0x00, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x11, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, - 0x6b, 0x69, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0c, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x12, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x22, 0x94, 0x04, 0x0a, 0x1a, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x64, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, - 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x5f, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x75, 0x64, 0x67, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 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, 0xae, 0x01, 0x0a, 0x1c, 0x50, 0x6f, - 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa3, 0x04, 0x0a, 0x14, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x68, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x55, - 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x63, 0x6f, - 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, - 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, - 0x6d, 0x69, 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, 0x37, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x64, 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, 0x40, - 0x0a, 0x12, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 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, 0xa8, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 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, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x11, - 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, - 0x6f, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x0a, - 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, - 0x63, 0x61, 0x6e, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, - 0xa5, 0x01, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, @@ -17729,376 +15845,6 @@ var file_api_v1_common_proto_rawDesc = []byte{ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x63, 0x61, - 0x6e, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x73, 0x22, 0x8f, 0x06, 0x0a, 0x17, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x61, 0x72, - 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, - 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x69, - 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, - 0x61, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x69, 0x6e, - 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x11, 0x73, 0x70, - 0x61, 0x72, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, - 0x73, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, - 0x72, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0e, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x51, 0x0a, 0x12, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x79, 0x6e, 0x61, 0x6d, - 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x11, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xdc, 0x02, 0x0a, 0x0f, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x77, 0x65, 0x62, 0x55, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x55, 0x69, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x5f, 0x75, - 0x69, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x77, 0x65, - 0x62, 0x55, 0x69, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x5f, 0x75, - 0x69, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x65, 0x62, 0x55, 0x69, 0x49, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x69, - 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x77, 0x65, 0x62, 0x55, 0x69, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x16, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, - 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, - 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, - 0x39, 0x0a, 0x19, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, - 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x16, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, - 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x6e, - 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x1a, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, - 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x4e, 0x0a, - 0x24, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, - 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6f, 0x6e, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xa1, 0x02, - 0x0a, 0x1a, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x41, 0x6c, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, - 0x18, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x16, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x68, 0x75, 0x66, 0x66, - 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x68, 0x75, 0x66, 0x66, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x22, 0xad, 0x05, 0x0a, 0x20, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, - 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 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, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x2d, 0x0a, - 0x12, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3f, 0x0a, 0x1c, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x19, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x52, 0x75, - 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, - 0x18, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x15, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, - 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 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, - 0x07, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x0a, 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, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x12, - 0x39, 0x0a, 0x19, 0x70, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, - 0x75, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x16, 0x70, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, - 0x75, 0x6c, 0x52, 0x75, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x70, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x70, 0x61, 0x73, 0x74, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x10, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x22, 0x8b, 0x08, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, - 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, - 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x6f, 0x6c, - 0x76, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x69, 0x6e, 0x76, 0x6f, - 0x6c, 0x76, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x29, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x2a, - 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x2b, 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, 0x65, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x41, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x41, 0x67, 0x65, - 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x67, - 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, - 0x6e, 0x41, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x2f, 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, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0xc9, 0x01, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6e, 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, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x0e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, - 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x2a, 0xc0, 0x0a, 0x0a, 0x0d, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, - 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, - 0x5f, 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x46, - 0x55, 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x41, 0x45, 0x4d, - 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x10, - 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x06, 0x12, - 0x2a, 0x0a, 0x26, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4b, - 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, - 0x4f, 0x44, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, - 0x45, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x0a, 0x12, 0x1b, 0x0a, - 0x17, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x38, - 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x38, 0x53, - 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x49, 0x43, 0x45, 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, - 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x0e, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, - 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, 0x2b, 0x0a, - 0x27, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55, - 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d, 0x4b, 0x38, - 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, - 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x11, 0x12, 0x20, 0x0a, - 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x41, 0x52, 0x47, 0x4f, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x10, 0x12, 0x12, - 0x2d, 0x0a, 0x29, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x50, 0x4f, - 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x10, 0x13, 0x12, 0x2b, - 0x0a, 0x27, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x41, - 0x55, 0x54, 0x4f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x10, 0x14, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, - 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4c, - 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x15, 0x12, 0x23, 0x0a, 0x1f, - 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, - 0x16, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x4b, - 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, - 0x4f, 0x4c, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x26, 0x0a, - 0x22, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x4b, 0x45, 0x44, 0x41, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x44, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x10, 0x19, 0x12, 0x26, 0x0a, 0x22, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4b, 0x41, 0x52, 0x50, 0x45, 0x4e, 0x54, - 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x1a, 0x12, 0x29, 0x0a, - 0x25, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x50, 0x4f, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x52, 0x55, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x42, 0x55, 0x44, 0x47, 0x45, 0x54, 0x10, 0x1b, 0x12, 0x22, 0x0a, 0x1e, 0x4b, 0x38, 0x53, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x1c, 0x12, 0x25, 0x0a, 0x21, - 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x4b, 0x55, 0x42, 0x45, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x54, 0x45, 0x42, 0x4f, 0x4f, - 0x4b, 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x56, 0x4f, 0x4c, 0x43, 0x41, 0x4e, 0x4f, 0x5f, 0x4a, - 0x4f, 0x42, 0x10, 0x1e, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x10, 0x1f, - 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x4f, 0x4c, 0x45, - 0x10, 0x20, 0x12, 0x28, 0x0a, 0x24, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x4f, - 0x4c, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x21, 0x12, 0x22, 0x0a, 0x1e, - 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x22, - 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x23, 0x12, 0x25, 0x0a, - 0x21, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x24, 0x12, 0x2f, 0x0a, 0x2b, 0x4b, 0x38, 0x53, 0x5f, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, - 0x44, 0x5f, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x2a, 0x48, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, - 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, - 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x2a, - 0x94, 0x02, 0x0a, 0x15, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, - 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, - 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, - 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, - 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, - 0x54, 0x5f, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, - 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x4c, 0x41, - 0x42, 0x45, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, - 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x44, 0x4f, 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, - 0x58, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, - 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x47, 0x54, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, - 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x4c, 0x54, 0x10, 0x06, 0x2a, 0xa6, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x26, 0x0a, 0x22, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x4f, 0x52, 0x4b, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, - 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x4f, - 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, - 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, - 0x0a, 0x1b, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x03, 0x42, - 0x84, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x0b, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, 0x65, 0x72, - 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x67, - 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, - 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x41, - 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa3, 0x04, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, diff --git a/gen/api/v1/metrics_collector.pb.go b/gen/api/v1/metrics_collector.pb.go index 43883b6f..9f4facbc 100644 --- a/gen/api/v1/metrics_collector.pb.go +++ b/gen/api/v1/metrics_collector.pb.go @@ -3540,7 +3540,6 @@ var file_api_v1_metrics_collector_proto_rawDesc = []byte{ 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, - 0x09, 0x2a, 0x91, 0x0f, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x09, 0x2a, 0xe4, 0x0f, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, @@ -3660,69 +3659,6 @@ var file_api_v1_metrics_collector_proto_rawDesc = []byte{ 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x37, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, - 0x38, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, - 0x48, 0x4f, 0x54, 0x10, 0x4d, 0x2a, 0x8c, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, - 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, - 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, - 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, - 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x46, 0x41, 0x54, - 0x41, 0x4c, 0x10, 0x05, 0x32, 0xa0, 0x05, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x49, 0x0a, 0x0c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x53, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, - 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, - 0x75, 0x6e, 0x6b, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, - 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, - 0x12, 0x58, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, - 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x19, 0x53, 0x65, - 0x6e, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, - 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x8e, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x7a, - 0x65, 0x72, 0x6f, 0x2d, 0x69, 0x6e, 0x63, 0x2f, 0x7a, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, - 0xca, 0x02, 0x06, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x12, 0x41, 0x70, 0x69, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x07, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x38, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x4f, 0x4f, 0x4d, 0x10, 0x39, 0x12, 0x2c, 0x0a, 0x28, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, diff --git a/proto/dakr_proto_descriptor.bin b/proto/dakr_proto_descriptor.bin index 37f0f9527ac34067b592b7baa075656d5b60c0c2..52b52e2e5d9547ce7743dab746fba30afc879326 100644 GIT binary patch delta 60010 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