diff --git a/harness/determined/cli/workspace.py b/harness/determined/cli/workspace.py index f95c7d9e11f..75c8383119d 100644 --- a/harness/determined/cli/workspace.py +++ b/harness/determined/cli/workspace.py @@ -166,6 +166,18 @@ def add_workspace_namespace_binding(args: argparse.Namespace): print("Workspace " + workspace_name + " is bound to " + n) return None +def set_quota(args: argparse.Namespace): + sess = cli.setup_session(args) + w = api.workspace_by_name(sess, args.workspace_name) + content = bindings.v1SetResourceQuotaRequest( + id=w.id, + quota=args.resource_quota, + clusterName=args.cluster_name, + ) + ws_name = str(args.workspace_name) + bindings.post_SetResourceQuota(sess, body=content, id=w.id) + print("Successfully set resource quota " + str(args.resource_quota) + " for workspace " + str(ws_name)) + return None def _parse_agent_user_group_args(args: argparse.Namespace) -> Optional[bindings.v1AgentUserGroup]: if args.agent_uid or args.agent_gid or args.agent_user or args.agent_group: @@ -194,12 +206,23 @@ def _parse_checkpoint_storage_args(args: argparse.Namespace) -> Any: def create_workspace(args: argparse.Namespace) -> None: agent_user_group = _parse_agent_user_group_args(args) checkpoint_storage = _parse_checkpoint_storage_args(args) + + if args.namespace and args.auto_create_namespace: + raise api.errors.BadRequestException( + "must provide either --auto-create-namespace or --namespace NAMESPACE" + ) - if args.cluster_name and (not args.namespace and not args.auto_create_namespace): + if (args.cluster_name or args.quota) and (not args.namespace and not args.auto_create_namespace): raise api.errors.BadRequestException( "must provide either --auto-create-namespace or --namespace NAMESPACE" ) - + if args.namespace and args.quota: + raise api.errors.BadRequestException( + "you cannot set the quota on a preexisting namesapce. If you would like to set the \ + quota on the namespace bound to your workspace, please specify the \ + --auto-create-namesapce flag, and we will create a Kubernetes namesapce for \ + you!" + ) if (args.namespace or args.auto_create_namespace) and not args.cluster_name: raise api.errors.BadRequestException( "must specify --cluster-name CLUSTER_NAME" @@ -213,10 +236,17 @@ def create_workspace(args: argparse.Namespace) -> None: defaultComputePool=args.default_compute_pool, defaultAuxPool=args.default_aux_pool, clusterName=args.cluster_name, + quota=args.quota, namespaceName=args.namespace, autoCreateNamespace=args.auto_create_namespace, ) w = bindings.post_PostWorkspace(sess, body=content).workspace + + if args.namespace or args.auto_create_namespace: + ns = args.namespace + if args.auto_create_namespace: + ns = "det-" + w.name + print("bound workspace " + w.name + " to namespace " + ns) if args.json: render.print_json(w.to_json()) @@ -420,6 +450,8 @@ def yaml_file_arg(val: str) -> Any: cli.Arg("--json", action="store_true", help="print as JSON"), cli.Arg("--cluster-name", type=str, help="cluster within which we create the \ workspace-namespace binding"), + cli.Arg("-q", "--quota", type=int, help="resource quota to which the \ + namespace is limited"), cli.Group( cli.Arg("-n", "--namespace", type=str, help="existing namespace to which \ the workspace is bound"), @@ -483,6 +515,23 @@ def yaml_file_arg(val: str) -> Any: the workspace is bound."), ], ), + cli.Cmd( + "set", + None, + "manage quotas", + [ + cli.Cmd("quota", + set_quota, + "set quota", + [ + cli.Arg("workspace_name", type=str, help="name of the workspace"), + cli.Arg("resource_quota", type=int, help="quota for the workspace"), + cli.Arg("cluster_name", type=str, help="cluster within which we create \ + the quota"), + ], + ), + ], + ), ], ), cli.Cmd( diff --git a/harness/determined/common/api/bindings.py b/harness/determined/common/api/bindings.py index bc1634eeec8..bead1b6aae7 100644 --- a/harness/determined/common/api/bindings.py +++ b/harness/determined/common/api/bindings.py @@ -10949,6 +10949,7 @@ class v1PostWorkspaceRequest(Printable): defaultAuxPool: "typing.Optional[str]" = None defaultComputePool: "typing.Optional[str]" = None namespaceName: "typing.Optional[str]" = None + quota: "typing.Optional[int]" = None def __init__( self, @@ -10961,6 +10962,7 @@ def __init__( defaultAuxPool: "typing.Union[str, None, Unset]" = _unset, defaultComputePool: "typing.Union[str, None, Unset]" = _unset, namespaceName: "typing.Union[str, None, Unset]" = _unset, + quota: "typing.Union[int, None, Unset]" = _unset, ): self.name = name if not isinstance(agentUserGroup, Unset): @@ -10977,6 +10979,8 @@ def __init__( self.defaultComputePool = defaultComputePool if not isinstance(namespaceName, Unset): self.namespaceName = namespaceName + if not isinstance(quota, Unset): + self.quota = quota @classmethod def from_json(cls, obj: Json) -> "v1PostWorkspaceRequest": @@ -10997,6 +11001,8 @@ def from_json(cls, obj: Json) -> "v1PostWorkspaceRequest": kwargs["defaultComputePool"] = obj["defaultComputePool"] if "namespaceName" in obj: kwargs["namespaceName"] = obj["namespaceName"] + if "quota" in obj: + kwargs["quota"] = obj["quota"] return cls(**kwargs) def to_json(self, omit_unset: bool = False) -> typing.Dict[str, typing.Any]: @@ -11017,6 +11023,8 @@ def to_json(self, omit_unset: bool = False) -> typing.Dict[str, typing.Any]: out["defaultComputePool"] = self.defaultComputePool if not omit_unset or "namespaceName" in vars(self): out["namespaceName"] = self.namespaceName + if not omit_unset or "quota" in vars(self): + out["quota"] = self.quota return out class v1PostWorkspaceResponse(Printable): @@ -13564,6 +13572,45 @@ def to_json(self, omit_unset: bool = False) -> typing.Dict[str, typing.Any]: out["notebook"] = None if self.notebook is None else self.notebook.to_json(omit_unset) return out +class v1SetResourceQuotaRequest(Printable): + """Request to set the resource quota for a workspace.""" + clusterName: "typing.Optional[str]" = None + quota: "typing.Optional[int]" = None + + def __init__( + self, + *, + id: int, + clusterName: "typing.Union[str, None, Unset]" = _unset, + quota: "typing.Union[int, None, Unset]" = _unset, + ): + self.id = id + if not isinstance(clusterName, Unset): + self.clusterName = clusterName + if not isinstance(quota, Unset): + self.quota = quota + + @classmethod + def from_json(cls, obj: Json) -> "v1SetResourceQuotaRequest": + kwargs: "typing.Dict[str, typing.Any]" = { + "id": obj["id"], + } + if "clusterName" in obj: + kwargs["clusterName"] = obj["clusterName"] + if "quota" in obj: + kwargs["quota"] = obj["quota"] + return cls(**kwargs) + + def to_json(self, omit_unset: bool = False) -> typing.Dict[str, typing.Any]: + out: "typing.Dict[str, typing.Any]" = { + "id": self.id, + } + if not omit_unset or "clusterName" in vars(self): + out["clusterName"] = self.clusterName + if not omit_unset or "quota" in vars(self): + out["quota"] = self.quota + return out + class v1SetSearcherProgressOperation(Printable): """SetSearcherProgressOperation informs the master of the progress of the custom searcher. @@ -22287,6 +22334,31 @@ def post_SetNotebookPriority( return v1SetNotebookPriorityResponse.from_json(_resp.json()) raise APIHttpError("post_SetNotebookPriority", _resp) +def post_SetResourceQuota( + session: "api.BaseSession", + *, + body: "v1SetResourceQuotaRequest", + id: int, +) -> None: + """Set resource quota for a worksoace. + + - id: The unique name of the workspace. + """ + _params = None + _resp = session._do_request( + method="POST", + path=f"/api/v1/workspaces/{id}/quota", + params=_params, + json=body.to_json(True), + data=None, + headers=None, + timeout=None, + stream=False, + ) + if _resp.status_code == 200: + return + raise APIHttpError("post_SetResourceQuota", _resp) + def post_SetShellPriority( session: "api.BaseSession", *, diff --git a/master/internal/api_workspace.go b/master/internal/api_workspace.go index fc8aca9891e..5cc3a042932 100644 --- a/master/internal/api_workspace.go +++ b/master/internal/api_workspace.go @@ -61,11 +61,15 @@ func maskStorageConfigSecrets(w *workspacev1.Workspace) error { } func validatePostWorkspaceRequest(req *apiv1.PostWorkspaceRequest) error { - if req.ClusterName != nil && + if (req.ClusterName != nil || req.Quota != nil) && (req.NamespaceName == nil && !req.AutoCreateNamespace) { return status.Errorf(codes.InvalidArgument, "Must specify either an existing Kubernetes namespace or indicate that you would like a namespace to be auto-created") } + if req.NamespaceName != nil && req.Quota != nil { + return status.Errorf(codes.InvalidArgument, + "You cannot set a quota on an already existing k8s namespace.") + } if (req.AutoCreateNamespace || req.NamespaceName != nil) && req.ClusterName == nil { return status.Errorf(codes.InvalidArgument, "You must specify a cluster for the specified namespace that you would like to bind.") @@ -418,6 +422,17 @@ func (a *apiServer) PostWorkspace( if err != nil { return nil, fmt.Errorf("Failed to create namespace binding: %w", err) } + if req.Quota != nil { + quotaReq := &apiv1.SetResourceQuotaRequest{ + Quota: *req.Quota, + ClusterName: *req.ClusterName, + Id: int32(w.ID), + } + _, err = a.setResourceQuota(ctx, quotaReq, &tx, w) + if err != nil { + return nil, errors.Wrap(err, "failed to set the resource quota") + } + } } pin := &model.WorkspacePin{WorkspaceID: w.ID, UserID: w.UserID} @@ -661,6 +676,48 @@ func (a *apiServer) ModifyWorkspaceNamespaceBinding(ctx context.Context, return res, nil } +func (a *apiServer) setResourceQuota(ctx context.Context, req *apiv1.SetResourceQuotaRequest, + tx *bun.Tx, w *model.Workspace) (*apiv1.SetResourceQuotaResponse, error) { + // Get the namespace bound to the workspace from the db. If the workspace is not bound to a namespace, + // return an error. + var wsns model.WorkspaceNamespace + err := tx.NewSelect().Model(&model.WorkspaceNamespace{}).Where("workspace_id = ?", req.Id).Scan(ctx, &wsns) + if err != nil { + if err == sql.ErrNoRows { + return nil, errors.Wrapf(err, "workspace %s has no namespace binding", w.Name) + } + return nil, errors.Wrap(err, "error getting workspace-namespace binding") + } + + namespaceName, err := generateNamespaceName(w.Name) + if err != nil { + return nil, errors.Wrapf(err, "error getting generated namespace name for workspace %s", w.Name) + } + if *namespaceName != wsns.NamespaceName { + return nil, errors.Wrapf(err, "cannot set quota on a workspace that is not bound to an auto-created namespace") + } + err = a.m.rm.SetQuota(int(req.Quota), wsns.NamespaceName, req.ClusterName) + if err != nil { + return nil, errors.Wrap(err, "Failed to create quota in Kubernetes") + } + resp := apiv1.SetResourceQuotaResponse{} + return &resp, nil +} + +func (a *apiServer) SetResourceQuota(ctx context.Context, req *apiv1.SetResourceQuotaRequest) (*apiv1.SetResourceQuotaResponse, error) { + license.RequireLicense("set resource quota") + tx, err := db.Bun().BeginTx(ctx, nil) + if err != nil { + return nil, err + } + var w model.Workspace + err = tx.NewSelect().Model(&model.Workspace{}).Where("id = ?", req.Id).Scan(ctx, &w) + if err != nil { + return nil, errors.Wrapf(err, "workspace with name %s not found", w.Name) + } + return a.setResourceQuota(ctx, req, &tx, &w) +} + func (a *apiServer) deleteWorkspace( ctx context.Context, workspaceID int32, projects []*projectv1.Project, ) { diff --git a/master/internal/rm/agentrm/agent_resource_manager.go b/master/internal/rm/agentrm/agent_resource_manager.go index 889d93df419..13f2bf74340 100644 --- a/master/internal/rm/agentrm/agent_resource_manager.go +++ b/master/internal/rm/agentrm/agent_resource_manager.go @@ -589,6 +589,10 @@ func (a *ResourceManager) DeleteNamespace(namespaceName string) (*string, error) return nil, nil } +func (a *ResourceManager) SetQuota(quota int, namespaceName string, clusterName string) error { + return fmt.Errorf("Cannot set quota with resource manager type AgentRM.") +} + func (a *ResourceManager) createResourcePool( db db.DB, config config.ResourcePoolConfig, cert *tls.Certificate, ) (*resourcePool, error) { diff --git a/master/internal/rm/dispatcherrm/dispatcher_resource_manager.go b/master/internal/rm/dispatcherrm/dispatcher_resource_manager.go index a3958b47803..7edf25a7e53 100644 --- a/master/internal/rm/dispatcherrm/dispatcher_resource_manager.go +++ b/master/internal/rm/dispatcherrm/dispatcher_resource_manager.go @@ -675,6 +675,10 @@ func (*DispatcherResourceManager) DeleteNamespace(string) (*string, error) { return nil, rmerrors.ErrNotSupported } +func (*DispatcherResourceManager) SetQuota(int, string, string) error { + return rmerrors.ErrNotSupported +} + // ResolveResourcePool returns the resolved slurm partition or an error if it doesn't exist or // can't be resolved due to internal errors. // Note to developers: this function doesn't acquire a lock and, ideally, we won't make it, since diff --git a/master/internal/rm/kubernetesrm/kubernetes_resource_manager.go b/master/internal/rm/kubernetesrm/kubernetes_resource_manager.go index cef227e1146..8b06778e2e4 100644 --- a/master/internal/rm/kubernetesrm/kubernetes_resource_manager.go +++ b/master/internal/rm/kubernetesrm/kubernetes_resource_manager.go @@ -409,6 +409,19 @@ func (k *ResourceManager) DeleteNamespace(namespaceName string) (*string, error) return nil, nil } +// SetQuota implements rm.ResourceManager. +func (k *ResourceManager) SetQuota(quota int, namespaceName string, clusterName string) error { + configClusterName := rm.ClusterName(k.config.ClusterName) + if clusterName != configClusterName.String() { + return nil + } + err := k.podsService.SetQuota(quota, namespaceName) + if err != nil { + return fmt.Errorf("error creating quota %s: %w", namespaceName, err) + } + return nil +} + // getResourcePoolRef gets an actor ref to a resource pool by name. func (k ResourceManager) resourcePoolExists(name string) error { resp, err := k.GetResourcePools() diff --git a/master/internal/rm/kubernetesrm/pods.go b/master/internal/rm/kubernetesrm/pods.go index 1e1b1654d76..b883f5c900d 100644 --- a/master/internal/rm/kubernetesrm/pods.go +++ b/master/internal/rm/kubernetesrm/pods.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "math" "os" "path/filepath" "reflect" @@ -359,6 +360,12 @@ func (p *pods) DeleteNamespace(namespaceName string) error { return p.handleDeleteNamespaceRequest(namespaceName) } +func (p *pods) SetQuota(quota int, namespaceName string) error { + p.mu.Lock() + defer p.mu.Unlock() + return p.handleSetQuotaRequest(quota, namespaceName) +} + func readClientConfig(kubeconfigPath string) (*rest.Config, error) { if len(kubeconfigPath) == 0 { // The default in-cluster case. Internally, k8s.io/client-go/rest is going to look for @@ -1396,6 +1403,97 @@ func (p *pods) handleDeleteNamespaceRequest(namespaceName string) error { return nil } +func (p *pods) handleSetQuotaRequest(quota int, namespaceName string) error { + var k8sDeterminedLabel = map[string]string{determinedLabel: namespaceName} + + k8sNamespace, err := p.clientSet.CoreV1().Namespaces().Get(context.TODO(), namespaceName, + metaV1.GetOptions{ + TypeMeta: metaV1.TypeMeta{ + Kind: "Namespace", + APIVersion: "v1", + }, + }) + if err != nil { + return errors.Wrapf(err, "error finding namespace %s", namespaceName) + } + + if _, ok := k8sNamespace.Labels[determinedLabel]; !ok { + return errors.Wrapf(err, "Cannot set quota on namespace %s. Namespace needs determined label", + namespaceName) + } + + quotaName := namespaceName + "-quota" + // Create resource quota contianing GPU requests limit. + resourceQuota := &k8sV1.ResourceQuota{ + TypeMeta: metaV1.TypeMeta{ + Kind: "ResourceQuota", + APIVersion: "v1", + }, + ObjectMeta: metaV1.ObjectMeta{Labels: k8sDeterminedLabel, Name: quotaName}, + Spec: k8sV1.ResourceQuotaSpec{ + Hard: k8sV1.ResourceList{ + k8sV1.ResourceName("requests." + ResourceTypeNvidia): *resource. + NewQuantity(int64(quota), resource.DecimalSI), + }, + }, + } + + k8sQuotas, err := p.clientSet.CoreV1().ResourceQuotas(namespaceName).List(context.TODO(), + metaV1.ListOptions{}) + quotas := k8sQuotas.Items + currentQuota := float64(quota) + var detQuota *k8sV1.ResourceQuota + for _, q := range quotas { + qResources := q.Spec.Hard + for name, quantity := range qResources { + if name == "requests."+ResourceTypeNvidia { + currentQuota = math.Min(currentQuota, quantity.AsApproximateFloat64()) + if _, ok := q.Labels[determinedLabel]; ok { + q.Spec.Hard[name] = *resource.NewQuantity(int64(quota), resource.DecimalSI) + if quantity.AsApproximateFloat64() <= currentQuota { + detQuota = &q + } + } + } + } + } + + if detQuota != nil { + // if currentQuota < float64(quota) { + // return fmt.Errorf("Cannot set quota because there already exists a quota in namespace %s of limit %d", namespaceName, currentQuota) + // } + detQuotaToByteArray, err := json.Marshal(detQuota) + if err != nil { + return errors.Wrapf(err, "error marshaling quota %s", detQuota.Name) + } + _, err = p.clientSet.CoreV1().ResourceQuotas(namespaceName).Patch(context.TODO(), + resourceQuota.Name, + types.MergePatchType, + detQuotaToByteArray, + metaV1.PatchOptions{}) + + if err != nil { + return errors.Wrapf(err, "error applying patch to resource quota %s", resourceQuota.Name) + } + } else { + // The given namespace does not any attached determined quotas. + if currentQuota < float64(quota) { + return errors.Wrapf(err, "Cannot set quota because there already exists a quota in namespace %s of limit %d", namespaceName, currentQuota) + } + _, err = p.clientSet.CoreV1().ResourceQuotas(namespaceName).Create(context.TODO(), + resourceQuota, + metaV1.CreateOptions{}, + ) + + if err != nil { + return errors.Wrapf(err, "error creating resource quota %s for namespace %s", + quotaName, namespaceName) + } + } + + return nil +} + // summarize describes pods' available resources. When there's exactly one resource pool, it uses // the whole cluster's info. Otherwise, it matches nodes to resource pools using taints and // tolerations to derive that info. This may be cached, so don't use this for decisions diff --git a/master/internal/rm/multirm/multirm.go b/master/internal/rm/multirm/multirm.go index c9e6b164721..4576fb89cc8 100644 --- a/master/internal/rm/multirm/multirm.go +++ b/master/internal/rm/multirm/multirm.go @@ -405,6 +405,18 @@ func (m *MultiRMRouter) DeleteNamespace(namespaceName string) (*string, error) { return nil, nil } +func (m *MultiRMRouter) SetQuota(quota int, namespaceName, clusterName string) error { + rm, err := m.getRM(clusterName) + if err != nil { + return fmt.Errorf("Error getting resource manager for cluster %s: %w", clusterName, err) + } + err = rm.SetQuota(quota, namespaceName, clusterName) + if err != nil { + return fmt.Errorf("Error creating quota for namespace %s: %w", namespaceName, err) + } + return nil +} + func (m *MultiRMRouter) getRMName(rpName rm.ResourcePoolName) (string, error) { // If not given RP name, route to default RM. if rpName == "" { diff --git a/master/internal/rm/resource_manager_iface.go b/master/internal/rm/resource_manager_iface.go index 930f4112b90..2b32f74cb46 100644 --- a/master/internal/rm/resource_manager_iface.go +++ b/master/internal/rm/resource_manager_iface.go @@ -56,6 +56,8 @@ type ResourceManager interface { // Namespaces and Quotas for workspace slot caps. CreateNamespace(bool, string, string) error DeleteNamespace(string) (*string, error) + SetQuota(int, string, string) error + // DeleteQuota() } // ResourcePoolName holds the name of the resource pool, and describes the input/output diff --git a/proto/pkg/apiv1/api.pb.go b/proto/pkg/apiv1/api.pb.go index 2ffc8909533..55af43fda12 100644 --- a/proto/pkg/apiv1/api.pb.go +++ b/proto/pkg/apiv1/api.pb.go @@ -78,7 +78,7 @@ var file_determined_api_v1_api_proto_rawDesc = []byte{ 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x70, 0x6f, 0x6f, 0x6c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xea, 0xb1, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x91, 0xb3, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x7e, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1f, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, @@ -2048,546 +2048,556 @@ var file_determined_api_v1_api_proto_rawDesc = []byte{ 0x92, 0x41, 0x0c, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x62, - 0x69, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x65, + 0x69, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0xa4, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2a, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xac, - 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3c, 0x92, 0x41, 0x14, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x0a, 0x08, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x92, 0x41, 0x0c, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, + 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x64, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x92, 0x41, 0x0a, 0x0a, 0x08, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0xe2, 0x01, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x37, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x92, 0x41, 0x14, 0x0a, 0x08, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x12, 0xe2, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x37, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x14, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x31, 0x12, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2d, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x14, 0x0a, 0x08, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, + 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x50, 0x6f, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x42, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa5, 0x01, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x92, - 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2b, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x3a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0xa5, 0x01, - 0x0a, 0x0f, 0x50, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, - 0x73, 0x12, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x1a, 0x23, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a, 0x0c, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x32, 0x15, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x8e, 0x01, 0x0a, - 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa5, 0x01, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x12, + 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x3a, 0x04, + 0x6e, 0x6f, 0x74, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x0f, 0x50, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3b, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x28, 0x1a, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a, + 0x0c, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, + 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x32, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x8e, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2a, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x99, 0x01, - 0x0a, 0x0e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, - 0x7d, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x10, 0x55, 0x6e, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, - 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x98, 0x01, - 0x0a, 0x0b, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x92, 0x41, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x99, 0x01, 0x0a, 0x0e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xaa, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, 0x76, - 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x64, 0x65, + 0x1f, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x12, 0xa1, 0x01, 0x0a, 0x10, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, + 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x43, 0x92, 0x41, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6f, - 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9d, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, - 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x33, 0x92, 0x41, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x6f, - 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x83, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, + 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, + 0xaa, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x0b, - 0x50, 0x6f, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x25, 0x2e, 0x64, 0x65, + 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, 0x0d, 0x0a, 0x0b, 0x45, 0x78, + 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, + 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9d, 0x01, 0x0a, + 0x0f, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x4d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x0d, 0x0a, 0x0b, 0x45, 0x78, + 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, + 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x83, 0x01, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x25, 0x2e, 0x64, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x92, 0x41, 0x0a, + 0x0a, 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, + 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x92, 0x41, 0x0a, 0x0a, - 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, - 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x73, 0x3a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x8e, 0x01, 0x0a, 0x0d, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x27, 0x2e, 0x64, + 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2e, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x3a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x12, 0x8e, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x12, 0x27, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2a, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x8d, 0x01, 0x0a, 0x0b, - 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x25, 0x2e, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x12, 0x8d, 0x01, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x92, 0x41, 0x0a, 0x0a, - 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, - 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2e, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, - 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x92, 0x41, 0x0a, 0x0a, - 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, - 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x0b, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x01, 0x2a, - 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2f, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, + 0x73, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2d, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, + 0x12, 0x84, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x31, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x3a, - 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, + 0x26, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x0b, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2e, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2f, 0x2e, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, + 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x12, 0x2f, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x12, 0xe0, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3e, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, - 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, - 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0xe0, 0x01, 0x0a, - 0x24, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3e, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, - 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, - 0x90, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, - 0x12, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x49, - 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2f, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, - 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x62, 0x79, 0x2d, 0x69, 0x64, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0xb6, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x30, 0x2e, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x37, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x62, 0x79, 0x2d, 0x75, 0x73, 0x65, - 0x72, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x64, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x92, + 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x90, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x12, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, - 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, - 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, - 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x62, 0x79, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xca, 0x01, 0x0a, 0x1c, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x36, 0x2e, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x6f, 0x6c, - 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x53, 0x63, - 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x92, 0x41, 0x06, - 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x2f, 0x62, 0x79, 0x2d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x28, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, - 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, - 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x64, 0x2d, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa4, 0x01, 0x0a, 0x11, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x27, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, + 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, + 0x62, 0x79, 0x2d, 0x69, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xb6, 0x01, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, + 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x92, 0x41, 0x06, 0x0a, 0x04, + 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x2f, 0x62, 0x79, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, - 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x2d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0x98, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2b, 0x92, 0x41, 0x07, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xbb, 0x01, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x33, 0x2e, 0x64, 0x65, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x62, 0x79, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0xca, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x12, 0x36, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x6f, 0x6c, 0x65, + 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x39, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x62, 0x79, 0x2d, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x01, + 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0xac, 0x01, 0x0a, 0x11, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x70, 0x65, - 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x92, 0x41, - 0x17, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x08, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0xc6, 0x01, 0x0a, 0x11, 0x42, - 0x69, 0x6e, 0x64, 0x52, 0x50, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x54, 0x6f, 0x57, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x0a, - 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, - 0x22, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x01, 0x2a, 0x12, 0xd2, 0x01, 0x0a, 0x15, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x50, - 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x2e, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, + 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, + 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x12, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x31, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, + 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, + 0x61, 0x64, 0x64, 0x2d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, + 0x01, 0x2a, 0x12, 0xa4, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2d, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x98, 0x01, 0x0a, 0x10, 0x50, 0x6f, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x46, 0x72, 0x6f, 0x6d, 0x57, - 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x56, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x2a, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xe7, 0x01, 0x0a, 0x1c, 0x4f, 0x76, 0x65, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x92, 0x41, 0x07, 0x0a, 0x05, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xbb, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x12, 0x33, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, + 0x41, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x12, 0xac, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x92, 0x41, 0x17, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x12, 0xc6, 0x01, 0x0a, 0x11, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x54, 0x6f, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, + 0x52, 0x50, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x54, + 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x22, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xd2, 0x01, 0x0a, 0x15, 0x55, + 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x50, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, + 0x50, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, + 0x52, 0x50, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x2a, 0x3e, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x70, + 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, + 0xe7, 0x01, 0x0a, 0x1c, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x50, 0x57, + 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x36, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x50, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x50, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x36, 0x2e, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, - 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x50, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x37, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x50, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x0a, 0x0a, - 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x1a, - 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0xdd, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, 0x73, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, - 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, - 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, 0x73, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x92, 0x41, 0x16, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, - 0x6c, 0x73, 0x12, 0xd5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x50, 0x12, 0x31, - 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x50, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, - 0x6c, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x14, 0x47, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x56, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x1a, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xdd, 0x01, 0x0a, 0x17, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x50, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, + 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x50, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x92, 0x41, + 0x16, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x0a, 0x08, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0xd5, 0x01, 0x0a, 0x17, 0x4c, 0x69, + 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x6f, 0x52, 0x50, 0x12, 0x31, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x52, + 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x6f, 0x52, 0x50, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, + 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x40, 0x12, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x73, 0x12, 0xac, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x9e, 0x01, 0x0a, 0x0f, 0x4b, 0x69, - 0x6c, 0x6c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x29, 0x2e, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x6c, - 0x6c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6b, 0x69, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x9f, 0x01, 0x0a, 0x10, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x0a, + 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, + 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, + 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x9e, 0x01, 0x0a, 0x0f, 0x4b, 0x69, 0x6c, 0x6c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x73, 0x6b, 0x12, 0x29, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x0a, + 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, + 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, + 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6b, 0x69, 0x6c, 0x6c, 0x3a, 0x01, + 0x2a, 0x12, 0x9f, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x32, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x12, 0xa7, 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x2e, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x7c, 0x0a, + 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x24, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0xa7, 0x01, 0x0a, - 0x12, 0x55, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x34, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, - 0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x75, 0x6e, 0x73, 0x12, 0x24, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x21, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6e, 0x73, 0x12, 0x7e, 0x0a, 0x08, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x75, 0x6e, 0x73, - 0x12, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x75, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x92, 0x41, 0x0a, 0x0a, 0x08, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x6d, 0x6f, 0x76, - 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x08, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x73, - 0x12, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x92, 0x41, 0x0a, 0x0a, 0x08, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x6b, 0x69, 0x6c, - 0x6c, 0x3a, 0x01, 0x2a, 0x42, 0xda, 0x07, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x61, - 0x69, 0x2f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x92, 0x41, 0xa1, 0x07, - 0x12, 0x95, 0x06, 0x0a, 0x15, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x41, 0x50, 0x49, 0x20, 0x28, 0x42, 0x65, 0x74, 0x61, 0x29, 0x12, 0xf5, 0x04, 0x44, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x73, 0x20, 0x64, 0x65, - 0x65, 0x70, 0x20, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x65, 0x61, 0x6d, - 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x6c, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x73, - 0x69, 0x6c, 0x79, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x20, 0x47, 0x50, 0x55, 0x20, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, - 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x64, 0x65, 0x65, 0x70, 0x20, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x61, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x72, 0x79, 0x20, 0x61, 0x62, 0x6f, 0x75, - 0x74, 0x20, 0x44, 0x65, 0x76, 0x4f, 0x70, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x72, 0x69, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x6c, 0x65, - 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x59, - 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x20, 0x6f, 0x66, 0x20, - 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x6c, 0x69, 0x6b, 0x65, - 0x20, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x46, 0x6c, 0x6f, 0x77, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x50, 0x79, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x20, 0x2d, 0x2d, 0x2d, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x20, 0x47, 0x50, 0x55, 0x20, 0x2d, 0x2d, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x64, 0x6f, 0x69, - 0x6e, 0x67, 0x20, 0x64, 0x65, 0x65, 0x70, 0x20, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, - 0x61, 0x6d, 0x73, 0x2c, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, 0x65, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x2e, 0x22, 0x40, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x41, 0x49, 0x12, 0x16, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x69, 0x2f, 0x1a, 0x17, 0x63, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x40, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x2e, 0x61, 0x69, 0x2a, 0x3d, 0x0a, 0x0a, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x20, 0x32, - 0x2e, 0x30, 0x12, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, - 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, - 0x74, 0x6d, 0x6c, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x02, 0x01, 0x02, 0x5a, 0x4a, 0x0a, 0x48, - 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x08, - 0x02, 0x12, 0x24, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x20, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x1a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x02, 0x62, 0x11, 0x0a, 0x0f, 0x0a, 0x0b, 0x42, 0x65, - 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x00, 0x72, 0x24, 0x0a, 0x1b, 0x44, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x41, 0x49, 0x20, 0x44, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x05, 0x2f, 0x64, 0x6f, 0x63, - 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x7e, 0x0a, 0x08, 0x4d, + 0x6f, 0x76, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, + 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6e, 0x73, 0x2f, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x08, 0x4b, + 0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, + 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0x92, 0x41, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6e, 0x73, 0x2f, 0x6b, 0x69, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x42, 0xda, 0x07, 0x5a, 0x33, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x61, 0x69, 0x2f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x92, 0x41, 0xa1, 0x07, 0x12, 0x95, 0x06, 0x0a, 0x15, 0x44, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x41, 0x50, 0x49, 0x20, 0x28, 0x42, 0x65, 0x74, 0x61, + 0x29, 0x12, 0xf5, 0x04, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x68, + 0x65, 0x6c, 0x70, 0x73, 0x20, 0x64, 0x65, 0x65, 0x70, 0x20, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b, + 0x6c, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x73, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x20, 0x47, 0x50, 0x55, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x44, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x64, + 0x65, 0x65, 0x70, 0x20, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, + 0x61, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, + 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, + 0x72, 0x79, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x44, 0x65, 0x76, 0x4f, 0x70, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x59, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x6e, 0x6b, 0x20, 0x6f, 0x66, 0x20, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x6f, + 0x6c, 0x73, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x46, 0x6c, + 0x6f, 0x77, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x50, 0x79, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x20, 0x2d, + 0x2d, 0x2d, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x47, 0x50, 0x55, 0x20, 0x2d, 0x2d, + 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x65, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x65, 0x70, 0x20, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2c, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x2c, 0x20, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, + 0x65, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x22, 0x40, 0x0a, 0x0d, 0x44, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x41, 0x49, 0x12, 0x16, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, + 0x69, 0x2f, 0x1a, 0x17, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x40, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x61, 0x69, 0x2a, 0x3d, 0x0a, 0x0a, 0x41, + 0x70, 0x61, 0x63, 0x68, 0x65, 0x20, 0x32, 0x2e, 0x30, 0x12, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, + 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, + 0x02, 0x01, 0x02, 0x5a, 0x4a, 0x0a, 0x48, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x08, 0x02, 0x12, 0x24, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, + 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x1a, 0x0d, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x02, 0x62, + 0x11, 0x0a, 0x0f, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x00, 0x72, 0x24, 0x0a, 0x1b, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x41, 0x49, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x05, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_determined_api_v1_api_proto_goTypes = []interface{}{ @@ -2777,284 +2787,286 @@ var file_determined_api_v1_api_proto_goTypes = []interface{}{ (*PinWorkspaceRequest)(nil), // 183: determined.api.v1.PinWorkspaceRequest (*UnpinWorkspaceRequest)(nil), // 184: determined.api.v1.UnpinWorkspaceRequest (*ModifyWorkspaceNamespaceBindingRequest)(nil), // 185: determined.api.v1.ModifyWorkspaceNamespaceBindingRequest - (*GetProjectRequest)(nil), // 186: determined.api.v1.GetProjectRequest - (*GetProjectColumnsRequest)(nil), // 187: determined.api.v1.GetProjectColumnsRequest - (*GetProjectNumericMetricsRangeRequest)(nil), // 188: determined.api.v1.GetProjectNumericMetricsRangeRequest - (*PostProjectRequest)(nil), // 189: determined.api.v1.PostProjectRequest - (*AddProjectNoteRequest)(nil), // 190: determined.api.v1.AddProjectNoteRequest - (*PutProjectNotesRequest)(nil), // 191: determined.api.v1.PutProjectNotesRequest - (*PatchProjectRequest)(nil), // 192: determined.api.v1.PatchProjectRequest - (*DeleteProjectRequest)(nil), // 193: determined.api.v1.DeleteProjectRequest - (*ArchiveProjectRequest)(nil), // 194: determined.api.v1.ArchiveProjectRequest - (*UnarchiveProjectRequest)(nil), // 195: determined.api.v1.UnarchiveProjectRequest - (*MoveProjectRequest)(nil), // 196: determined.api.v1.MoveProjectRequest - (*MoveExperimentRequest)(nil), // 197: determined.api.v1.MoveExperimentRequest - (*MoveExperimentsRequest)(nil), // 198: determined.api.v1.MoveExperimentsRequest - (*GetWebhooksRequest)(nil), // 199: determined.api.v1.GetWebhooksRequest - (*PostWebhookRequest)(nil), // 200: determined.api.v1.PostWebhookRequest - (*DeleteWebhookRequest)(nil), // 201: determined.api.v1.DeleteWebhookRequest - (*TestWebhookRequest)(nil), // 202: determined.api.v1.TestWebhookRequest - (*GetGroupRequest)(nil), // 203: determined.api.v1.GetGroupRequest - (*GetGroupsRequest)(nil), // 204: determined.api.v1.GetGroupsRequest - (*CreateGroupRequest)(nil), // 205: determined.api.v1.CreateGroupRequest - (*UpdateGroupRequest)(nil), // 206: determined.api.v1.UpdateGroupRequest - (*DeleteGroupRequest)(nil), // 207: determined.api.v1.DeleteGroupRequest - (*GetPermissionsSummaryRequest)(nil), // 208: determined.api.v1.GetPermissionsSummaryRequest - (*GetGroupsAndUsersAssignedToWorkspaceRequest)(nil), // 209: determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceRequest - (*GetRolesByIDRequest)(nil), // 210: determined.api.v1.GetRolesByIDRequest - (*GetRolesAssignedToUserRequest)(nil), // 211: determined.api.v1.GetRolesAssignedToUserRequest - (*GetRolesAssignedToGroupRequest)(nil), // 212: determined.api.v1.GetRolesAssignedToGroupRequest - (*SearchRolesAssignableToScopeRequest)(nil), // 213: determined.api.v1.SearchRolesAssignableToScopeRequest - (*ListRolesRequest)(nil), // 214: determined.api.v1.ListRolesRequest - (*AssignRolesRequest)(nil), // 215: determined.api.v1.AssignRolesRequest - (*RemoveAssignmentsRequest)(nil), // 216: determined.api.v1.RemoveAssignmentsRequest - (*PostUserActivityRequest)(nil), // 217: determined.api.v1.PostUserActivityRequest - (*GetProjectsByUserActivityRequest)(nil), // 218: determined.api.v1.GetProjectsByUserActivityRequest - (*SearchExperimentsRequest)(nil), // 219: determined.api.v1.SearchExperimentsRequest - (*BindRPToWorkspaceRequest)(nil), // 220: determined.api.v1.BindRPToWorkspaceRequest - (*UnbindRPFromWorkspaceRequest)(nil), // 221: determined.api.v1.UnbindRPFromWorkspaceRequest - (*OverwriteRPWorkspaceBindingsRequest)(nil), // 222: determined.api.v1.OverwriteRPWorkspaceBindingsRequest - (*ListRPsBoundToWorkspaceRequest)(nil), // 223: determined.api.v1.ListRPsBoundToWorkspaceRequest - (*ListWorkspacesBoundToRPRequest)(nil), // 224: determined.api.v1.ListWorkspacesBoundToRPRequest - (*GetGenericTaskConfigRequest)(nil), // 225: determined.api.v1.GetGenericTaskConfigRequest - (*KillGenericTaskRequest)(nil), // 226: determined.api.v1.KillGenericTaskRequest - (*PauseGenericTaskRequest)(nil), // 227: determined.api.v1.PauseGenericTaskRequest - (*UnpauseGenericTaskRequest)(nil), // 228: determined.api.v1.UnpauseGenericTaskRequest - (*SearchRunsRequest)(nil), // 229: determined.api.v1.SearchRunsRequest - (*MoveRunsRequest)(nil), // 230: determined.api.v1.MoveRunsRequest - (*KillRunsRequest)(nil), // 231: determined.api.v1.KillRunsRequest - (*LoginResponse)(nil), // 232: determined.api.v1.LoginResponse - (*CurrentUserResponse)(nil), // 233: determined.api.v1.CurrentUserResponse - (*LogoutResponse)(nil), // 234: determined.api.v1.LogoutResponse - (*GetUsersResponse)(nil), // 235: determined.api.v1.GetUsersResponse - (*GetUserSettingResponse)(nil), // 236: determined.api.v1.GetUserSettingResponse - (*ResetUserSettingResponse)(nil), // 237: determined.api.v1.ResetUserSettingResponse - (*PostUserSettingResponse)(nil), // 238: determined.api.v1.PostUserSettingResponse - (*GetUserResponse)(nil), // 239: determined.api.v1.GetUserResponse - (*GetUserByUsernameResponse)(nil), // 240: determined.api.v1.GetUserByUsernameResponse - (*GetMeResponse)(nil), // 241: determined.api.v1.GetMeResponse - (*PostUserResponse)(nil), // 242: determined.api.v1.PostUserResponse - (*SetUserPasswordResponse)(nil), // 243: determined.api.v1.SetUserPasswordResponse - (*AssignMultipleGroupsResponse)(nil), // 244: determined.api.v1.AssignMultipleGroupsResponse - (*PatchUserResponse)(nil), // 245: determined.api.v1.PatchUserResponse - (*PatchUsersResponse)(nil), // 246: determined.api.v1.PatchUsersResponse - (*GetTelemetryResponse)(nil), // 247: determined.api.v1.GetTelemetryResponse - (*GetMasterResponse)(nil), // 248: determined.api.v1.GetMasterResponse - (*GetMasterConfigResponse)(nil), // 249: determined.api.v1.GetMasterConfigResponse - (*PatchMasterConfigResponse)(nil), // 250: determined.api.v1.PatchMasterConfigResponse - (*MasterLogsResponse)(nil), // 251: determined.api.v1.MasterLogsResponse - (*GetAgentsResponse)(nil), // 252: determined.api.v1.GetAgentsResponse - (*GetAgentResponse)(nil), // 253: determined.api.v1.GetAgentResponse - (*GetSlotsResponse)(nil), // 254: determined.api.v1.GetSlotsResponse - (*GetSlotResponse)(nil), // 255: determined.api.v1.GetSlotResponse - (*EnableAgentResponse)(nil), // 256: determined.api.v1.EnableAgentResponse - (*DisableAgentResponse)(nil), // 257: determined.api.v1.DisableAgentResponse - (*EnableSlotResponse)(nil), // 258: determined.api.v1.EnableSlotResponse - (*DisableSlotResponse)(nil), // 259: determined.api.v1.DisableSlotResponse - (*CreateGenericTaskResponse)(nil), // 260: determined.api.v1.CreateGenericTaskResponse - (*CreateExperimentResponse)(nil), // 261: determined.api.v1.CreateExperimentResponse - (*PutExperimentResponse)(nil), // 262: determined.api.v1.PutExperimentResponse - (*ContinueExperimentResponse)(nil), // 263: determined.api.v1.ContinueExperimentResponse - (*GetExperimentResponse)(nil), // 264: determined.api.v1.GetExperimentResponse - (*GetExperimentsResponse)(nil), // 265: determined.api.v1.GetExperimentsResponse - (*PutExperimentRetainLogsResponse)(nil), // 266: determined.api.v1.PutExperimentRetainLogsResponse - (*PutExperimentsRetainLogsResponse)(nil), // 267: determined.api.v1.PutExperimentsRetainLogsResponse - (*PutTrialRetainLogsResponse)(nil), // 268: determined.api.v1.PutTrialRetainLogsResponse - (*GetModelDefResponse)(nil), // 269: determined.api.v1.GetModelDefResponse - (*GetTaskContextDirectoryResponse)(nil), // 270: determined.api.v1.GetTaskContextDirectoryResponse - (*GetModelDefTreeResponse)(nil), // 271: determined.api.v1.GetModelDefTreeResponse - (*GetModelDefFileResponse)(nil), // 272: determined.api.v1.GetModelDefFileResponse - (*GetExperimentLabelsResponse)(nil), // 273: determined.api.v1.GetExperimentLabelsResponse - (*GetExperimentValidationHistoryResponse)(nil), // 274: determined.api.v1.GetExperimentValidationHistoryResponse - (*ActivateExperimentResponse)(nil), // 275: determined.api.v1.ActivateExperimentResponse - (*ActivateExperimentsResponse)(nil), // 276: determined.api.v1.ActivateExperimentsResponse - (*PauseExperimentResponse)(nil), // 277: determined.api.v1.PauseExperimentResponse - (*PauseExperimentsResponse)(nil), // 278: determined.api.v1.PauseExperimentsResponse - (*CancelExperimentResponse)(nil), // 279: determined.api.v1.CancelExperimentResponse - (*CancelExperimentsResponse)(nil), // 280: determined.api.v1.CancelExperimentsResponse - (*KillExperimentResponse)(nil), // 281: determined.api.v1.KillExperimentResponse - (*KillExperimentsResponse)(nil), // 282: determined.api.v1.KillExperimentsResponse - (*ArchiveExperimentResponse)(nil), // 283: determined.api.v1.ArchiveExperimentResponse - (*ArchiveExperimentsResponse)(nil), // 284: determined.api.v1.ArchiveExperimentsResponse - (*UnarchiveExperimentResponse)(nil), // 285: determined.api.v1.UnarchiveExperimentResponse - (*UnarchiveExperimentsResponse)(nil), // 286: determined.api.v1.UnarchiveExperimentsResponse - (*PatchExperimentResponse)(nil), // 287: determined.api.v1.PatchExperimentResponse - (*DeleteExperimentsResponse)(nil), // 288: determined.api.v1.DeleteExperimentsResponse - (*DeleteExperimentResponse)(nil), // 289: determined.api.v1.DeleteExperimentResponse - (*GetBestSearcherValidationMetricResponse)(nil), // 290: determined.api.v1.GetBestSearcherValidationMetricResponse - (*GetExperimentCheckpointsResponse)(nil), // 291: determined.api.v1.GetExperimentCheckpointsResponse - (*PutExperimentLabelResponse)(nil), // 292: determined.api.v1.PutExperimentLabelResponse - (*DeleteExperimentLabelResponse)(nil), // 293: determined.api.v1.DeleteExperimentLabelResponse - (*PreviewHPSearchResponse)(nil), // 294: determined.api.v1.PreviewHPSearchResponse - (*GetExperimentTrialsResponse)(nil), // 295: determined.api.v1.GetExperimentTrialsResponse - (*CompareTrialsResponse)(nil), // 296: determined.api.v1.CompareTrialsResponse - (*ReportTrialSourceInfoResponse)(nil), // 297: determined.api.v1.ReportTrialSourceInfoResponse - (*CreateTrialResponse)(nil), // 298: determined.api.v1.CreateTrialResponse - (*PutTrialResponse)(nil), // 299: determined.api.v1.PutTrialResponse - (*PatchTrialResponse)(nil), // 300: determined.api.v1.PatchTrialResponse - (*StartTrialResponse)(nil), // 301: determined.api.v1.StartTrialResponse - (*RunPrepareForReportingResponse)(nil), // 302: determined.api.v1.RunPrepareForReportingResponse - (*GetTrialResponse)(nil), // 303: determined.api.v1.GetTrialResponse - (*GetTrialByExternalIDResponse)(nil), // 304: determined.api.v1.GetTrialByExternalIDResponse - (*GetTrialWorkloadsResponse)(nil), // 305: determined.api.v1.GetTrialWorkloadsResponse - (*TrialLogsResponse)(nil), // 306: determined.api.v1.TrialLogsResponse - (*TrialLogsFieldsResponse)(nil), // 307: determined.api.v1.TrialLogsFieldsResponse - (*AllocationReadyResponse)(nil), // 308: determined.api.v1.AllocationReadyResponse - (*GetAllocationResponse)(nil), // 309: determined.api.v1.GetAllocationResponse - (*AllocationWaitingResponse)(nil), // 310: determined.api.v1.AllocationWaitingResponse - (*PostTaskLogsResponse)(nil), // 311: determined.api.v1.PostTaskLogsResponse - (*TaskLogsResponse)(nil), // 312: determined.api.v1.TaskLogsResponse - (*TaskLogsFieldsResponse)(nil), // 313: determined.api.v1.TaskLogsFieldsResponse - (*GetTrialProfilerMetricsResponse)(nil), // 314: determined.api.v1.GetTrialProfilerMetricsResponse - (*GetTrialProfilerAvailableSeriesResponse)(nil), // 315: determined.api.v1.GetTrialProfilerAvailableSeriesResponse - (*PostTrialProfilerMetricsBatchResponse)(nil), // 316: determined.api.v1.PostTrialProfilerMetricsBatchResponse - (*GetMetricsResponse)(nil), // 317: determined.api.v1.GetMetricsResponse - (*GetTrainingMetricsResponse)(nil), // 318: determined.api.v1.GetTrainingMetricsResponse - (*GetValidationMetricsResponse)(nil), // 319: determined.api.v1.GetValidationMetricsResponse - (*KillTrialResponse)(nil), // 320: determined.api.v1.KillTrialResponse - (*GetTrialCheckpointsResponse)(nil), // 321: determined.api.v1.GetTrialCheckpointsResponse - (*CleanupLogsResponse)(nil), // 322: determined.api.v1.CleanupLogsResponse - (*AllocationPreemptionSignalResponse)(nil), // 323: determined.api.v1.AllocationPreemptionSignalResponse - (*AllocationPendingPreemptionSignalResponse)(nil), // 324: determined.api.v1.AllocationPendingPreemptionSignalResponse - (*AckAllocationPreemptionSignalResponse)(nil), // 325: determined.api.v1.AckAllocationPreemptionSignalResponse - (*MarkAllocationResourcesDaemonResponse)(nil), // 326: determined.api.v1.MarkAllocationResourcesDaemonResponse - (*AllocationRendezvousInfoResponse)(nil), // 327: determined.api.v1.AllocationRendezvousInfoResponse - (*PostAllocationProxyAddressResponse)(nil), // 328: determined.api.v1.PostAllocationProxyAddressResponse - (*GetTaskAcceleratorDataResponse)(nil), // 329: determined.api.v1.GetTaskAcceleratorDataResponse - (*PostAllocationAcceleratorDataResponse)(nil), // 330: determined.api.v1.PostAllocationAcceleratorDataResponse - (*AllocationAllGatherResponse)(nil), // 331: determined.api.v1.AllocationAllGatherResponse - (*NotifyContainerRunningResponse)(nil), // 332: determined.api.v1.NotifyContainerRunningResponse - (*GetCurrentTrialSearcherOperationResponse)(nil), // 333: determined.api.v1.GetCurrentTrialSearcherOperationResponse - (*CompleteTrialSearcherValidationResponse)(nil), // 334: determined.api.v1.CompleteTrialSearcherValidationResponse - (*ReportTrialSearcherEarlyExitResponse)(nil), // 335: determined.api.v1.ReportTrialSearcherEarlyExitResponse - (*ReportTrialProgressResponse)(nil), // 336: determined.api.v1.ReportTrialProgressResponse - (*PostTrialRunnerMetadataResponse)(nil), // 337: determined.api.v1.PostTrialRunnerMetadataResponse - (*ReportTrialMetricsResponse)(nil), // 338: determined.api.v1.ReportTrialMetricsResponse - (*ReportTrialTrainingMetricsResponse)(nil), // 339: determined.api.v1.ReportTrialTrainingMetricsResponse - (*ReportTrialValidationMetricsResponse)(nil), // 340: determined.api.v1.ReportTrialValidationMetricsResponse - (*ReportCheckpointResponse)(nil), // 341: determined.api.v1.ReportCheckpointResponse - (*GetJobsResponse)(nil), // 342: determined.api.v1.GetJobsResponse - (*GetJobsV2Response)(nil), // 343: determined.api.v1.GetJobsV2Response - (*GetJobQueueStatsResponse)(nil), // 344: determined.api.v1.GetJobQueueStatsResponse - (*UpdateJobQueueResponse)(nil), // 345: determined.api.v1.UpdateJobQueueResponse - (*GetTemplatesResponse)(nil), // 346: determined.api.v1.GetTemplatesResponse - (*GetTemplateResponse)(nil), // 347: determined.api.v1.GetTemplateResponse - (*PutTemplateResponse)(nil), // 348: determined.api.v1.PutTemplateResponse - (*PostTemplateResponse)(nil), // 349: determined.api.v1.PostTemplateResponse - (*PatchTemplateConfigResponse)(nil), // 350: determined.api.v1.PatchTemplateConfigResponse - (*DeleteTemplateResponse)(nil), // 351: determined.api.v1.DeleteTemplateResponse - (*GetNotebooksResponse)(nil), // 352: determined.api.v1.GetNotebooksResponse - (*GetNotebookResponse)(nil), // 353: determined.api.v1.GetNotebookResponse - (*IdleNotebookResponse)(nil), // 354: determined.api.v1.IdleNotebookResponse - (*KillNotebookResponse)(nil), // 355: determined.api.v1.KillNotebookResponse - (*SetNotebookPriorityResponse)(nil), // 356: determined.api.v1.SetNotebookPriorityResponse - (*LaunchNotebookResponse)(nil), // 357: determined.api.v1.LaunchNotebookResponse - (*GetShellsResponse)(nil), // 358: determined.api.v1.GetShellsResponse - (*GetShellResponse)(nil), // 359: determined.api.v1.GetShellResponse - (*KillShellResponse)(nil), // 360: determined.api.v1.KillShellResponse - (*SetShellPriorityResponse)(nil), // 361: determined.api.v1.SetShellPriorityResponse - (*LaunchShellResponse)(nil), // 362: determined.api.v1.LaunchShellResponse - (*GetCommandsResponse)(nil), // 363: determined.api.v1.GetCommandsResponse - (*GetCommandResponse)(nil), // 364: determined.api.v1.GetCommandResponse - (*KillCommandResponse)(nil), // 365: determined.api.v1.KillCommandResponse - (*SetCommandPriorityResponse)(nil), // 366: determined.api.v1.SetCommandPriorityResponse - (*LaunchCommandResponse)(nil), // 367: determined.api.v1.LaunchCommandResponse - (*GetTensorboardsResponse)(nil), // 368: determined.api.v1.GetTensorboardsResponse - (*GetTensorboardResponse)(nil), // 369: determined.api.v1.GetTensorboardResponse - (*KillTensorboardResponse)(nil), // 370: determined.api.v1.KillTensorboardResponse - (*SetTensorboardPriorityResponse)(nil), // 371: determined.api.v1.SetTensorboardPriorityResponse - (*LaunchTensorboardResponse)(nil), // 372: determined.api.v1.LaunchTensorboardResponse - (*DeleteTensorboardFilesResponse)(nil), // 373: determined.api.v1.DeleteTensorboardFilesResponse - (*GetActiveTasksCountResponse)(nil), // 374: determined.api.v1.GetActiveTasksCountResponse - (*GetTaskResponse)(nil), // 375: determined.api.v1.GetTaskResponse - (*GetTasksResponse)(nil), // 376: determined.api.v1.GetTasksResponse - (*GetModelResponse)(nil), // 377: determined.api.v1.GetModelResponse - (*PostModelResponse)(nil), // 378: determined.api.v1.PostModelResponse - (*PatchModelResponse)(nil), // 379: determined.api.v1.PatchModelResponse - (*ArchiveModelResponse)(nil), // 380: determined.api.v1.ArchiveModelResponse - (*UnarchiveModelResponse)(nil), // 381: determined.api.v1.UnarchiveModelResponse - (*MoveModelResponse)(nil), // 382: determined.api.v1.MoveModelResponse - (*DeleteModelResponse)(nil), // 383: determined.api.v1.DeleteModelResponse - (*GetModelsResponse)(nil), // 384: determined.api.v1.GetModelsResponse - (*GetModelLabelsResponse)(nil), // 385: determined.api.v1.GetModelLabelsResponse - (*GetModelVersionResponse)(nil), // 386: determined.api.v1.GetModelVersionResponse - (*GetModelVersionsResponse)(nil), // 387: determined.api.v1.GetModelVersionsResponse - (*PostModelVersionResponse)(nil), // 388: determined.api.v1.PostModelVersionResponse - (*PatchModelVersionResponse)(nil), // 389: determined.api.v1.PatchModelVersionResponse - (*DeleteModelVersionResponse)(nil), // 390: determined.api.v1.DeleteModelVersionResponse - (*GetTrialMetricsByModelVersionResponse)(nil), // 391: determined.api.v1.GetTrialMetricsByModelVersionResponse - (*GetCheckpointResponse)(nil), // 392: determined.api.v1.GetCheckpointResponse - (*PostCheckpointMetadataResponse)(nil), // 393: determined.api.v1.PostCheckpointMetadataResponse - (*CheckpointsRemoveFilesResponse)(nil), // 394: determined.api.v1.CheckpointsRemoveFilesResponse - (*PatchCheckpointsResponse)(nil), // 395: determined.api.v1.PatchCheckpointsResponse - (*DeleteCheckpointsResponse)(nil), // 396: determined.api.v1.DeleteCheckpointsResponse - (*GetTrialMetricsByCheckpointResponse)(nil), // 397: determined.api.v1.GetTrialMetricsByCheckpointResponse - (*GetSearcherEventsResponse)(nil), // 398: determined.api.v1.GetSearcherEventsResponse - (*PostSearcherOperationsResponse)(nil), // 399: determined.api.v1.PostSearcherOperationsResponse - (*ExpMetricNamesResponse)(nil), // 400: determined.api.v1.ExpMetricNamesResponse - (*MetricBatchesResponse)(nil), // 401: determined.api.v1.MetricBatchesResponse - (*TrialsSnapshotResponse)(nil), // 402: determined.api.v1.TrialsSnapshotResponse - (*TrialsSampleResponse)(nil), // 403: determined.api.v1.TrialsSampleResponse - (*GetResourcePoolsResponse)(nil), // 404: determined.api.v1.GetResourcePoolsResponse - (*ResourceAllocationRawResponse)(nil), // 405: determined.api.v1.ResourceAllocationRawResponse - (*ResourceAllocationAggregatedResponse)(nil), // 406: determined.api.v1.ResourceAllocationAggregatedResponse - (*GetWorkspaceResponse)(nil), // 407: determined.api.v1.GetWorkspaceResponse - (*GetWorkspaceProjectsResponse)(nil), // 408: determined.api.v1.GetWorkspaceProjectsResponse - (*GetWorkspacesResponse)(nil), // 409: determined.api.v1.GetWorkspacesResponse - (*PostWorkspaceResponse)(nil), // 410: determined.api.v1.PostWorkspaceResponse - (*PatchWorkspaceResponse)(nil), // 411: determined.api.v1.PatchWorkspaceResponse - (*DeleteWorkspaceResponse)(nil), // 412: determined.api.v1.DeleteWorkspaceResponse - (*ArchiveWorkspaceResponse)(nil), // 413: determined.api.v1.ArchiveWorkspaceResponse - (*UnarchiveWorkspaceResponse)(nil), // 414: determined.api.v1.UnarchiveWorkspaceResponse - (*PinWorkspaceResponse)(nil), // 415: determined.api.v1.PinWorkspaceResponse - (*UnpinWorkspaceResponse)(nil), // 416: determined.api.v1.UnpinWorkspaceResponse - (*ModifyWorkspaceNamespaceBindingResponse)(nil), // 417: determined.api.v1.ModifyWorkspaceNamespaceBindingResponse - (*GetProjectResponse)(nil), // 418: determined.api.v1.GetProjectResponse - (*GetProjectColumnsResponse)(nil), // 419: determined.api.v1.GetProjectColumnsResponse - (*GetProjectNumericMetricsRangeResponse)(nil), // 420: determined.api.v1.GetProjectNumericMetricsRangeResponse - (*PostProjectResponse)(nil), // 421: determined.api.v1.PostProjectResponse - (*AddProjectNoteResponse)(nil), // 422: determined.api.v1.AddProjectNoteResponse - (*PutProjectNotesResponse)(nil), // 423: determined.api.v1.PutProjectNotesResponse - (*PatchProjectResponse)(nil), // 424: determined.api.v1.PatchProjectResponse - (*DeleteProjectResponse)(nil), // 425: determined.api.v1.DeleteProjectResponse - (*ArchiveProjectResponse)(nil), // 426: determined.api.v1.ArchiveProjectResponse - (*UnarchiveProjectResponse)(nil), // 427: determined.api.v1.UnarchiveProjectResponse - (*MoveProjectResponse)(nil), // 428: determined.api.v1.MoveProjectResponse - (*MoveExperimentResponse)(nil), // 429: determined.api.v1.MoveExperimentResponse - (*MoveExperimentsResponse)(nil), // 430: determined.api.v1.MoveExperimentsResponse - (*GetWebhooksResponse)(nil), // 431: determined.api.v1.GetWebhooksResponse - (*PostWebhookResponse)(nil), // 432: determined.api.v1.PostWebhookResponse - (*DeleteWebhookResponse)(nil), // 433: determined.api.v1.DeleteWebhookResponse - (*TestWebhookResponse)(nil), // 434: determined.api.v1.TestWebhookResponse - (*GetGroupResponse)(nil), // 435: determined.api.v1.GetGroupResponse - (*GetGroupsResponse)(nil), // 436: determined.api.v1.GetGroupsResponse - (*CreateGroupResponse)(nil), // 437: determined.api.v1.CreateGroupResponse - (*UpdateGroupResponse)(nil), // 438: determined.api.v1.UpdateGroupResponse - (*DeleteGroupResponse)(nil), // 439: determined.api.v1.DeleteGroupResponse - (*GetPermissionsSummaryResponse)(nil), // 440: determined.api.v1.GetPermissionsSummaryResponse - (*GetGroupsAndUsersAssignedToWorkspaceResponse)(nil), // 441: determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceResponse - (*GetRolesByIDResponse)(nil), // 442: determined.api.v1.GetRolesByIDResponse - (*GetRolesAssignedToUserResponse)(nil), // 443: determined.api.v1.GetRolesAssignedToUserResponse - (*GetRolesAssignedToGroupResponse)(nil), // 444: determined.api.v1.GetRolesAssignedToGroupResponse - (*SearchRolesAssignableToScopeResponse)(nil), // 445: determined.api.v1.SearchRolesAssignableToScopeResponse - (*ListRolesResponse)(nil), // 446: determined.api.v1.ListRolesResponse - (*AssignRolesResponse)(nil), // 447: determined.api.v1.AssignRolesResponse - (*RemoveAssignmentsResponse)(nil), // 448: determined.api.v1.RemoveAssignmentsResponse - (*PostUserActivityResponse)(nil), // 449: determined.api.v1.PostUserActivityResponse - (*GetProjectsByUserActivityResponse)(nil), // 450: determined.api.v1.GetProjectsByUserActivityResponse - (*SearchExperimentsResponse)(nil), // 451: determined.api.v1.SearchExperimentsResponse - (*BindRPToWorkspaceResponse)(nil), // 452: determined.api.v1.BindRPToWorkspaceResponse - (*UnbindRPFromWorkspaceResponse)(nil), // 453: determined.api.v1.UnbindRPFromWorkspaceResponse - (*OverwriteRPWorkspaceBindingsResponse)(nil), // 454: determined.api.v1.OverwriteRPWorkspaceBindingsResponse - (*ListRPsBoundToWorkspaceResponse)(nil), // 455: determined.api.v1.ListRPsBoundToWorkspaceResponse - (*ListWorkspacesBoundToRPResponse)(nil), // 456: determined.api.v1.ListWorkspacesBoundToRPResponse - (*GetGenericTaskConfigResponse)(nil), // 457: determined.api.v1.GetGenericTaskConfigResponse - (*KillGenericTaskResponse)(nil), // 458: determined.api.v1.KillGenericTaskResponse - (*PauseGenericTaskResponse)(nil), // 459: determined.api.v1.PauseGenericTaskResponse - (*UnpauseGenericTaskResponse)(nil), // 460: determined.api.v1.UnpauseGenericTaskResponse - (*SearchRunsResponse)(nil), // 461: determined.api.v1.SearchRunsResponse - (*MoveRunsResponse)(nil), // 462: determined.api.v1.MoveRunsResponse - (*KillRunsResponse)(nil), // 463: determined.api.v1.KillRunsResponse + (*SetResourceQuotaRequest)(nil), // 186: determined.api.v1.SetResourceQuotaRequest + (*GetProjectRequest)(nil), // 187: determined.api.v1.GetProjectRequest + (*GetProjectColumnsRequest)(nil), // 188: determined.api.v1.GetProjectColumnsRequest + (*GetProjectNumericMetricsRangeRequest)(nil), // 189: determined.api.v1.GetProjectNumericMetricsRangeRequest + (*PostProjectRequest)(nil), // 190: determined.api.v1.PostProjectRequest + (*AddProjectNoteRequest)(nil), // 191: determined.api.v1.AddProjectNoteRequest + (*PutProjectNotesRequest)(nil), // 192: determined.api.v1.PutProjectNotesRequest + (*PatchProjectRequest)(nil), // 193: determined.api.v1.PatchProjectRequest + (*DeleteProjectRequest)(nil), // 194: determined.api.v1.DeleteProjectRequest + (*ArchiveProjectRequest)(nil), // 195: determined.api.v1.ArchiveProjectRequest + (*UnarchiveProjectRequest)(nil), // 196: determined.api.v1.UnarchiveProjectRequest + (*MoveProjectRequest)(nil), // 197: determined.api.v1.MoveProjectRequest + (*MoveExperimentRequest)(nil), // 198: determined.api.v1.MoveExperimentRequest + (*MoveExperimentsRequest)(nil), // 199: determined.api.v1.MoveExperimentsRequest + (*GetWebhooksRequest)(nil), // 200: determined.api.v1.GetWebhooksRequest + (*PostWebhookRequest)(nil), // 201: determined.api.v1.PostWebhookRequest + (*DeleteWebhookRequest)(nil), // 202: determined.api.v1.DeleteWebhookRequest + (*TestWebhookRequest)(nil), // 203: determined.api.v1.TestWebhookRequest + (*GetGroupRequest)(nil), // 204: determined.api.v1.GetGroupRequest + (*GetGroupsRequest)(nil), // 205: determined.api.v1.GetGroupsRequest + (*CreateGroupRequest)(nil), // 206: determined.api.v1.CreateGroupRequest + (*UpdateGroupRequest)(nil), // 207: determined.api.v1.UpdateGroupRequest + (*DeleteGroupRequest)(nil), // 208: determined.api.v1.DeleteGroupRequest + (*GetPermissionsSummaryRequest)(nil), // 209: determined.api.v1.GetPermissionsSummaryRequest + (*GetGroupsAndUsersAssignedToWorkspaceRequest)(nil), // 210: determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceRequest + (*GetRolesByIDRequest)(nil), // 211: determined.api.v1.GetRolesByIDRequest + (*GetRolesAssignedToUserRequest)(nil), // 212: determined.api.v1.GetRolesAssignedToUserRequest + (*GetRolesAssignedToGroupRequest)(nil), // 213: determined.api.v1.GetRolesAssignedToGroupRequest + (*SearchRolesAssignableToScopeRequest)(nil), // 214: determined.api.v1.SearchRolesAssignableToScopeRequest + (*ListRolesRequest)(nil), // 215: determined.api.v1.ListRolesRequest + (*AssignRolesRequest)(nil), // 216: determined.api.v1.AssignRolesRequest + (*RemoveAssignmentsRequest)(nil), // 217: determined.api.v1.RemoveAssignmentsRequest + (*PostUserActivityRequest)(nil), // 218: determined.api.v1.PostUserActivityRequest + (*GetProjectsByUserActivityRequest)(nil), // 219: determined.api.v1.GetProjectsByUserActivityRequest + (*SearchExperimentsRequest)(nil), // 220: determined.api.v1.SearchExperimentsRequest + (*BindRPToWorkspaceRequest)(nil), // 221: determined.api.v1.BindRPToWorkspaceRequest + (*UnbindRPFromWorkspaceRequest)(nil), // 222: determined.api.v1.UnbindRPFromWorkspaceRequest + (*OverwriteRPWorkspaceBindingsRequest)(nil), // 223: determined.api.v1.OverwriteRPWorkspaceBindingsRequest + (*ListRPsBoundToWorkspaceRequest)(nil), // 224: determined.api.v1.ListRPsBoundToWorkspaceRequest + (*ListWorkspacesBoundToRPRequest)(nil), // 225: determined.api.v1.ListWorkspacesBoundToRPRequest + (*GetGenericTaskConfigRequest)(nil), // 226: determined.api.v1.GetGenericTaskConfigRequest + (*KillGenericTaskRequest)(nil), // 227: determined.api.v1.KillGenericTaskRequest + (*PauseGenericTaskRequest)(nil), // 228: determined.api.v1.PauseGenericTaskRequest + (*UnpauseGenericTaskRequest)(nil), // 229: determined.api.v1.UnpauseGenericTaskRequest + (*SearchRunsRequest)(nil), // 230: determined.api.v1.SearchRunsRequest + (*MoveRunsRequest)(nil), // 231: determined.api.v1.MoveRunsRequest + (*KillRunsRequest)(nil), // 232: determined.api.v1.KillRunsRequest + (*LoginResponse)(nil), // 233: determined.api.v1.LoginResponse + (*CurrentUserResponse)(nil), // 234: determined.api.v1.CurrentUserResponse + (*LogoutResponse)(nil), // 235: determined.api.v1.LogoutResponse + (*GetUsersResponse)(nil), // 236: determined.api.v1.GetUsersResponse + (*GetUserSettingResponse)(nil), // 237: determined.api.v1.GetUserSettingResponse + (*ResetUserSettingResponse)(nil), // 238: determined.api.v1.ResetUserSettingResponse + (*PostUserSettingResponse)(nil), // 239: determined.api.v1.PostUserSettingResponse + (*GetUserResponse)(nil), // 240: determined.api.v1.GetUserResponse + (*GetUserByUsernameResponse)(nil), // 241: determined.api.v1.GetUserByUsernameResponse + (*GetMeResponse)(nil), // 242: determined.api.v1.GetMeResponse + (*PostUserResponse)(nil), // 243: determined.api.v1.PostUserResponse + (*SetUserPasswordResponse)(nil), // 244: determined.api.v1.SetUserPasswordResponse + (*AssignMultipleGroupsResponse)(nil), // 245: determined.api.v1.AssignMultipleGroupsResponse + (*PatchUserResponse)(nil), // 246: determined.api.v1.PatchUserResponse + (*PatchUsersResponse)(nil), // 247: determined.api.v1.PatchUsersResponse + (*GetTelemetryResponse)(nil), // 248: determined.api.v1.GetTelemetryResponse + (*GetMasterResponse)(nil), // 249: determined.api.v1.GetMasterResponse + (*GetMasterConfigResponse)(nil), // 250: determined.api.v1.GetMasterConfigResponse + (*PatchMasterConfigResponse)(nil), // 251: determined.api.v1.PatchMasterConfigResponse + (*MasterLogsResponse)(nil), // 252: determined.api.v1.MasterLogsResponse + (*GetAgentsResponse)(nil), // 253: determined.api.v1.GetAgentsResponse + (*GetAgentResponse)(nil), // 254: determined.api.v1.GetAgentResponse + (*GetSlotsResponse)(nil), // 255: determined.api.v1.GetSlotsResponse + (*GetSlotResponse)(nil), // 256: determined.api.v1.GetSlotResponse + (*EnableAgentResponse)(nil), // 257: determined.api.v1.EnableAgentResponse + (*DisableAgentResponse)(nil), // 258: determined.api.v1.DisableAgentResponse + (*EnableSlotResponse)(nil), // 259: determined.api.v1.EnableSlotResponse + (*DisableSlotResponse)(nil), // 260: determined.api.v1.DisableSlotResponse + (*CreateGenericTaskResponse)(nil), // 261: determined.api.v1.CreateGenericTaskResponse + (*CreateExperimentResponse)(nil), // 262: determined.api.v1.CreateExperimentResponse + (*PutExperimentResponse)(nil), // 263: determined.api.v1.PutExperimentResponse + (*ContinueExperimentResponse)(nil), // 264: determined.api.v1.ContinueExperimentResponse + (*GetExperimentResponse)(nil), // 265: determined.api.v1.GetExperimentResponse + (*GetExperimentsResponse)(nil), // 266: determined.api.v1.GetExperimentsResponse + (*PutExperimentRetainLogsResponse)(nil), // 267: determined.api.v1.PutExperimentRetainLogsResponse + (*PutExperimentsRetainLogsResponse)(nil), // 268: determined.api.v1.PutExperimentsRetainLogsResponse + (*PutTrialRetainLogsResponse)(nil), // 269: determined.api.v1.PutTrialRetainLogsResponse + (*GetModelDefResponse)(nil), // 270: determined.api.v1.GetModelDefResponse + (*GetTaskContextDirectoryResponse)(nil), // 271: determined.api.v1.GetTaskContextDirectoryResponse + (*GetModelDefTreeResponse)(nil), // 272: determined.api.v1.GetModelDefTreeResponse + (*GetModelDefFileResponse)(nil), // 273: determined.api.v1.GetModelDefFileResponse + (*GetExperimentLabelsResponse)(nil), // 274: determined.api.v1.GetExperimentLabelsResponse + (*GetExperimentValidationHistoryResponse)(nil), // 275: determined.api.v1.GetExperimentValidationHistoryResponse + (*ActivateExperimentResponse)(nil), // 276: determined.api.v1.ActivateExperimentResponse + (*ActivateExperimentsResponse)(nil), // 277: determined.api.v1.ActivateExperimentsResponse + (*PauseExperimentResponse)(nil), // 278: determined.api.v1.PauseExperimentResponse + (*PauseExperimentsResponse)(nil), // 279: determined.api.v1.PauseExperimentsResponse + (*CancelExperimentResponse)(nil), // 280: determined.api.v1.CancelExperimentResponse + (*CancelExperimentsResponse)(nil), // 281: determined.api.v1.CancelExperimentsResponse + (*KillExperimentResponse)(nil), // 282: determined.api.v1.KillExperimentResponse + (*KillExperimentsResponse)(nil), // 283: determined.api.v1.KillExperimentsResponse + (*ArchiveExperimentResponse)(nil), // 284: determined.api.v1.ArchiveExperimentResponse + (*ArchiveExperimentsResponse)(nil), // 285: determined.api.v1.ArchiveExperimentsResponse + (*UnarchiveExperimentResponse)(nil), // 286: determined.api.v1.UnarchiveExperimentResponse + (*UnarchiveExperimentsResponse)(nil), // 287: determined.api.v1.UnarchiveExperimentsResponse + (*PatchExperimentResponse)(nil), // 288: determined.api.v1.PatchExperimentResponse + (*DeleteExperimentsResponse)(nil), // 289: determined.api.v1.DeleteExperimentsResponse + (*DeleteExperimentResponse)(nil), // 290: determined.api.v1.DeleteExperimentResponse + (*GetBestSearcherValidationMetricResponse)(nil), // 291: determined.api.v1.GetBestSearcherValidationMetricResponse + (*GetExperimentCheckpointsResponse)(nil), // 292: determined.api.v1.GetExperimentCheckpointsResponse + (*PutExperimentLabelResponse)(nil), // 293: determined.api.v1.PutExperimentLabelResponse + (*DeleteExperimentLabelResponse)(nil), // 294: determined.api.v1.DeleteExperimentLabelResponse + (*PreviewHPSearchResponse)(nil), // 295: determined.api.v1.PreviewHPSearchResponse + (*GetExperimentTrialsResponse)(nil), // 296: determined.api.v1.GetExperimentTrialsResponse + (*CompareTrialsResponse)(nil), // 297: determined.api.v1.CompareTrialsResponse + (*ReportTrialSourceInfoResponse)(nil), // 298: determined.api.v1.ReportTrialSourceInfoResponse + (*CreateTrialResponse)(nil), // 299: determined.api.v1.CreateTrialResponse + (*PutTrialResponse)(nil), // 300: determined.api.v1.PutTrialResponse + (*PatchTrialResponse)(nil), // 301: determined.api.v1.PatchTrialResponse + (*StartTrialResponse)(nil), // 302: determined.api.v1.StartTrialResponse + (*RunPrepareForReportingResponse)(nil), // 303: determined.api.v1.RunPrepareForReportingResponse + (*GetTrialResponse)(nil), // 304: determined.api.v1.GetTrialResponse + (*GetTrialByExternalIDResponse)(nil), // 305: determined.api.v1.GetTrialByExternalIDResponse + (*GetTrialWorkloadsResponse)(nil), // 306: determined.api.v1.GetTrialWorkloadsResponse + (*TrialLogsResponse)(nil), // 307: determined.api.v1.TrialLogsResponse + (*TrialLogsFieldsResponse)(nil), // 308: determined.api.v1.TrialLogsFieldsResponse + (*AllocationReadyResponse)(nil), // 309: determined.api.v1.AllocationReadyResponse + (*GetAllocationResponse)(nil), // 310: determined.api.v1.GetAllocationResponse + (*AllocationWaitingResponse)(nil), // 311: determined.api.v1.AllocationWaitingResponse + (*PostTaskLogsResponse)(nil), // 312: determined.api.v1.PostTaskLogsResponse + (*TaskLogsResponse)(nil), // 313: determined.api.v1.TaskLogsResponse + (*TaskLogsFieldsResponse)(nil), // 314: determined.api.v1.TaskLogsFieldsResponse + (*GetTrialProfilerMetricsResponse)(nil), // 315: determined.api.v1.GetTrialProfilerMetricsResponse + (*GetTrialProfilerAvailableSeriesResponse)(nil), // 316: determined.api.v1.GetTrialProfilerAvailableSeriesResponse + (*PostTrialProfilerMetricsBatchResponse)(nil), // 317: determined.api.v1.PostTrialProfilerMetricsBatchResponse + (*GetMetricsResponse)(nil), // 318: determined.api.v1.GetMetricsResponse + (*GetTrainingMetricsResponse)(nil), // 319: determined.api.v1.GetTrainingMetricsResponse + (*GetValidationMetricsResponse)(nil), // 320: determined.api.v1.GetValidationMetricsResponse + (*KillTrialResponse)(nil), // 321: determined.api.v1.KillTrialResponse + (*GetTrialCheckpointsResponse)(nil), // 322: determined.api.v1.GetTrialCheckpointsResponse + (*CleanupLogsResponse)(nil), // 323: determined.api.v1.CleanupLogsResponse + (*AllocationPreemptionSignalResponse)(nil), // 324: determined.api.v1.AllocationPreemptionSignalResponse + (*AllocationPendingPreemptionSignalResponse)(nil), // 325: determined.api.v1.AllocationPendingPreemptionSignalResponse + (*AckAllocationPreemptionSignalResponse)(nil), // 326: determined.api.v1.AckAllocationPreemptionSignalResponse + (*MarkAllocationResourcesDaemonResponse)(nil), // 327: determined.api.v1.MarkAllocationResourcesDaemonResponse + (*AllocationRendezvousInfoResponse)(nil), // 328: determined.api.v1.AllocationRendezvousInfoResponse + (*PostAllocationProxyAddressResponse)(nil), // 329: determined.api.v1.PostAllocationProxyAddressResponse + (*GetTaskAcceleratorDataResponse)(nil), // 330: determined.api.v1.GetTaskAcceleratorDataResponse + (*PostAllocationAcceleratorDataResponse)(nil), // 331: determined.api.v1.PostAllocationAcceleratorDataResponse + (*AllocationAllGatherResponse)(nil), // 332: determined.api.v1.AllocationAllGatherResponse + (*NotifyContainerRunningResponse)(nil), // 333: determined.api.v1.NotifyContainerRunningResponse + (*GetCurrentTrialSearcherOperationResponse)(nil), // 334: determined.api.v1.GetCurrentTrialSearcherOperationResponse + (*CompleteTrialSearcherValidationResponse)(nil), // 335: determined.api.v1.CompleteTrialSearcherValidationResponse + (*ReportTrialSearcherEarlyExitResponse)(nil), // 336: determined.api.v1.ReportTrialSearcherEarlyExitResponse + (*ReportTrialProgressResponse)(nil), // 337: determined.api.v1.ReportTrialProgressResponse + (*PostTrialRunnerMetadataResponse)(nil), // 338: determined.api.v1.PostTrialRunnerMetadataResponse + (*ReportTrialMetricsResponse)(nil), // 339: determined.api.v1.ReportTrialMetricsResponse + (*ReportTrialTrainingMetricsResponse)(nil), // 340: determined.api.v1.ReportTrialTrainingMetricsResponse + (*ReportTrialValidationMetricsResponse)(nil), // 341: determined.api.v1.ReportTrialValidationMetricsResponse + (*ReportCheckpointResponse)(nil), // 342: determined.api.v1.ReportCheckpointResponse + (*GetJobsResponse)(nil), // 343: determined.api.v1.GetJobsResponse + (*GetJobsV2Response)(nil), // 344: determined.api.v1.GetJobsV2Response + (*GetJobQueueStatsResponse)(nil), // 345: determined.api.v1.GetJobQueueStatsResponse + (*UpdateJobQueueResponse)(nil), // 346: determined.api.v1.UpdateJobQueueResponse + (*GetTemplatesResponse)(nil), // 347: determined.api.v1.GetTemplatesResponse + (*GetTemplateResponse)(nil), // 348: determined.api.v1.GetTemplateResponse + (*PutTemplateResponse)(nil), // 349: determined.api.v1.PutTemplateResponse + (*PostTemplateResponse)(nil), // 350: determined.api.v1.PostTemplateResponse + (*PatchTemplateConfigResponse)(nil), // 351: determined.api.v1.PatchTemplateConfigResponse + (*DeleteTemplateResponse)(nil), // 352: determined.api.v1.DeleteTemplateResponse + (*GetNotebooksResponse)(nil), // 353: determined.api.v1.GetNotebooksResponse + (*GetNotebookResponse)(nil), // 354: determined.api.v1.GetNotebookResponse + (*IdleNotebookResponse)(nil), // 355: determined.api.v1.IdleNotebookResponse + (*KillNotebookResponse)(nil), // 356: determined.api.v1.KillNotebookResponse + (*SetNotebookPriorityResponse)(nil), // 357: determined.api.v1.SetNotebookPriorityResponse + (*LaunchNotebookResponse)(nil), // 358: determined.api.v1.LaunchNotebookResponse + (*GetShellsResponse)(nil), // 359: determined.api.v1.GetShellsResponse + (*GetShellResponse)(nil), // 360: determined.api.v1.GetShellResponse + (*KillShellResponse)(nil), // 361: determined.api.v1.KillShellResponse + (*SetShellPriorityResponse)(nil), // 362: determined.api.v1.SetShellPriorityResponse + (*LaunchShellResponse)(nil), // 363: determined.api.v1.LaunchShellResponse + (*GetCommandsResponse)(nil), // 364: determined.api.v1.GetCommandsResponse + (*GetCommandResponse)(nil), // 365: determined.api.v1.GetCommandResponse + (*KillCommandResponse)(nil), // 366: determined.api.v1.KillCommandResponse + (*SetCommandPriorityResponse)(nil), // 367: determined.api.v1.SetCommandPriorityResponse + (*LaunchCommandResponse)(nil), // 368: determined.api.v1.LaunchCommandResponse + (*GetTensorboardsResponse)(nil), // 369: determined.api.v1.GetTensorboardsResponse + (*GetTensorboardResponse)(nil), // 370: determined.api.v1.GetTensorboardResponse + (*KillTensorboardResponse)(nil), // 371: determined.api.v1.KillTensorboardResponse + (*SetTensorboardPriorityResponse)(nil), // 372: determined.api.v1.SetTensorboardPriorityResponse + (*LaunchTensorboardResponse)(nil), // 373: determined.api.v1.LaunchTensorboardResponse + (*DeleteTensorboardFilesResponse)(nil), // 374: determined.api.v1.DeleteTensorboardFilesResponse + (*GetActiveTasksCountResponse)(nil), // 375: determined.api.v1.GetActiveTasksCountResponse + (*GetTaskResponse)(nil), // 376: determined.api.v1.GetTaskResponse + (*GetTasksResponse)(nil), // 377: determined.api.v1.GetTasksResponse + (*GetModelResponse)(nil), // 378: determined.api.v1.GetModelResponse + (*PostModelResponse)(nil), // 379: determined.api.v1.PostModelResponse + (*PatchModelResponse)(nil), // 380: determined.api.v1.PatchModelResponse + (*ArchiveModelResponse)(nil), // 381: determined.api.v1.ArchiveModelResponse + (*UnarchiveModelResponse)(nil), // 382: determined.api.v1.UnarchiveModelResponse + (*MoveModelResponse)(nil), // 383: determined.api.v1.MoveModelResponse + (*DeleteModelResponse)(nil), // 384: determined.api.v1.DeleteModelResponse + (*GetModelsResponse)(nil), // 385: determined.api.v1.GetModelsResponse + (*GetModelLabelsResponse)(nil), // 386: determined.api.v1.GetModelLabelsResponse + (*GetModelVersionResponse)(nil), // 387: determined.api.v1.GetModelVersionResponse + (*GetModelVersionsResponse)(nil), // 388: determined.api.v1.GetModelVersionsResponse + (*PostModelVersionResponse)(nil), // 389: determined.api.v1.PostModelVersionResponse + (*PatchModelVersionResponse)(nil), // 390: determined.api.v1.PatchModelVersionResponse + (*DeleteModelVersionResponse)(nil), // 391: determined.api.v1.DeleteModelVersionResponse + (*GetTrialMetricsByModelVersionResponse)(nil), // 392: determined.api.v1.GetTrialMetricsByModelVersionResponse + (*GetCheckpointResponse)(nil), // 393: determined.api.v1.GetCheckpointResponse + (*PostCheckpointMetadataResponse)(nil), // 394: determined.api.v1.PostCheckpointMetadataResponse + (*CheckpointsRemoveFilesResponse)(nil), // 395: determined.api.v1.CheckpointsRemoveFilesResponse + (*PatchCheckpointsResponse)(nil), // 396: determined.api.v1.PatchCheckpointsResponse + (*DeleteCheckpointsResponse)(nil), // 397: determined.api.v1.DeleteCheckpointsResponse + (*GetTrialMetricsByCheckpointResponse)(nil), // 398: determined.api.v1.GetTrialMetricsByCheckpointResponse + (*GetSearcherEventsResponse)(nil), // 399: determined.api.v1.GetSearcherEventsResponse + (*PostSearcherOperationsResponse)(nil), // 400: determined.api.v1.PostSearcherOperationsResponse + (*ExpMetricNamesResponse)(nil), // 401: determined.api.v1.ExpMetricNamesResponse + (*MetricBatchesResponse)(nil), // 402: determined.api.v1.MetricBatchesResponse + (*TrialsSnapshotResponse)(nil), // 403: determined.api.v1.TrialsSnapshotResponse + (*TrialsSampleResponse)(nil), // 404: determined.api.v1.TrialsSampleResponse + (*GetResourcePoolsResponse)(nil), // 405: determined.api.v1.GetResourcePoolsResponse + (*ResourceAllocationRawResponse)(nil), // 406: determined.api.v1.ResourceAllocationRawResponse + (*ResourceAllocationAggregatedResponse)(nil), // 407: determined.api.v1.ResourceAllocationAggregatedResponse + (*GetWorkspaceResponse)(nil), // 408: determined.api.v1.GetWorkspaceResponse + (*GetWorkspaceProjectsResponse)(nil), // 409: determined.api.v1.GetWorkspaceProjectsResponse + (*GetWorkspacesResponse)(nil), // 410: determined.api.v1.GetWorkspacesResponse + (*PostWorkspaceResponse)(nil), // 411: determined.api.v1.PostWorkspaceResponse + (*PatchWorkspaceResponse)(nil), // 412: determined.api.v1.PatchWorkspaceResponse + (*DeleteWorkspaceResponse)(nil), // 413: determined.api.v1.DeleteWorkspaceResponse + (*ArchiveWorkspaceResponse)(nil), // 414: determined.api.v1.ArchiveWorkspaceResponse + (*UnarchiveWorkspaceResponse)(nil), // 415: determined.api.v1.UnarchiveWorkspaceResponse + (*PinWorkspaceResponse)(nil), // 416: determined.api.v1.PinWorkspaceResponse + (*UnpinWorkspaceResponse)(nil), // 417: determined.api.v1.UnpinWorkspaceResponse + (*ModifyWorkspaceNamespaceBindingResponse)(nil), // 418: determined.api.v1.ModifyWorkspaceNamespaceBindingResponse + (*SetResourceQuotaResponse)(nil), // 419: determined.api.v1.SetResourceQuotaResponse + (*GetProjectResponse)(nil), // 420: determined.api.v1.GetProjectResponse + (*GetProjectColumnsResponse)(nil), // 421: determined.api.v1.GetProjectColumnsResponse + (*GetProjectNumericMetricsRangeResponse)(nil), // 422: determined.api.v1.GetProjectNumericMetricsRangeResponse + (*PostProjectResponse)(nil), // 423: determined.api.v1.PostProjectResponse + (*AddProjectNoteResponse)(nil), // 424: determined.api.v1.AddProjectNoteResponse + (*PutProjectNotesResponse)(nil), // 425: determined.api.v1.PutProjectNotesResponse + (*PatchProjectResponse)(nil), // 426: determined.api.v1.PatchProjectResponse + (*DeleteProjectResponse)(nil), // 427: determined.api.v1.DeleteProjectResponse + (*ArchiveProjectResponse)(nil), // 428: determined.api.v1.ArchiveProjectResponse + (*UnarchiveProjectResponse)(nil), // 429: determined.api.v1.UnarchiveProjectResponse + (*MoveProjectResponse)(nil), // 430: determined.api.v1.MoveProjectResponse + (*MoveExperimentResponse)(nil), // 431: determined.api.v1.MoveExperimentResponse + (*MoveExperimentsResponse)(nil), // 432: determined.api.v1.MoveExperimentsResponse + (*GetWebhooksResponse)(nil), // 433: determined.api.v1.GetWebhooksResponse + (*PostWebhookResponse)(nil), // 434: determined.api.v1.PostWebhookResponse + (*DeleteWebhookResponse)(nil), // 435: determined.api.v1.DeleteWebhookResponse + (*TestWebhookResponse)(nil), // 436: determined.api.v1.TestWebhookResponse + (*GetGroupResponse)(nil), // 437: determined.api.v1.GetGroupResponse + (*GetGroupsResponse)(nil), // 438: determined.api.v1.GetGroupsResponse + (*CreateGroupResponse)(nil), // 439: determined.api.v1.CreateGroupResponse + (*UpdateGroupResponse)(nil), // 440: determined.api.v1.UpdateGroupResponse + (*DeleteGroupResponse)(nil), // 441: determined.api.v1.DeleteGroupResponse + (*GetPermissionsSummaryResponse)(nil), // 442: determined.api.v1.GetPermissionsSummaryResponse + (*GetGroupsAndUsersAssignedToWorkspaceResponse)(nil), // 443: determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceResponse + (*GetRolesByIDResponse)(nil), // 444: determined.api.v1.GetRolesByIDResponse + (*GetRolesAssignedToUserResponse)(nil), // 445: determined.api.v1.GetRolesAssignedToUserResponse + (*GetRolesAssignedToGroupResponse)(nil), // 446: determined.api.v1.GetRolesAssignedToGroupResponse + (*SearchRolesAssignableToScopeResponse)(nil), // 447: determined.api.v1.SearchRolesAssignableToScopeResponse + (*ListRolesResponse)(nil), // 448: determined.api.v1.ListRolesResponse + (*AssignRolesResponse)(nil), // 449: determined.api.v1.AssignRolesResponse + (*RemoveAssignmentsResponse)(nil), // 450: determined.api.v1.RemoveAssignmentsResponse + (*PostUserActivityResponse)(nil), // 451: determined.api.v1.PostUserActivityResponse + (*GetProjectsByUserActivityResponse)(nil), // 452: determined.api.v1.GetProjectsByUserActivityResponse + (*SearchExperimentsResponse)(nil), // 453: determined.api.v1.SearchExperimentsResponse + (*BindRPToWorkspaceResponse)(nil), // 454: determined.api.v1.BindRPToWorkspaceResponse + (*UnbindRPFromWorkspaceResponse)(nil), // 455: determined.api.v1.UnbindRPFromWorkspaceResponse + (*OverwriteRPWorkspaceBindingsResponse)(nil), // 456: determined.api.v1.OverwriteRPWorkspaceBindingsResponse + (*ListRPsBoundToWorkspaceResponse)(nil), // 457: determined.api.v1.ListRPsBoundToWorkspaceResponse + (*ListWorkspacesBoundToRPResponse)(nil), // 458: determined.api.v1.ListWorkspacesBoundToRPResponse + (*GetGenericTaskConfigResponse)(nil), // 459: determined.api.v1.GetGenericTaskConfigResponse + (*KillGenericTaskResponse)(nil), // 460: determined.api.v1.KillGenericTaskResponse + (*PauseGenericTaskResponse)(nil), // 461: determined.api.v1.PauseGenericTaskResponse + (*UnpauseGenericTaskResponse)(nil), // 462: determined.api.v1.UnpauseGenericTaskResponse + (*SearchRunsResponse)(nil), // 463: determined.api.v1.SearchRunsResponse + (*MoveRunsResponse)(nil), // 464: determined.api.v1.MoveRunsResponse + (*KillRunsResponse)(nil), // 465: determined.api.v1.KillRunsResponse } var file_determined_api_v1_api_proto_depIdxs = []int32{ 0, // 0: determined.api.v1.Determined.Login:input_type -> determined.api.v1.LoginRequest @@ -3243,286 +3255,288 @@ var file_determined_api_v1_api_proto_depIdxs = []int32{ 183, // 183: determined.api.v1.Determined.PinWorkspace:input_type -> determined.api.v1.PinWorkspaceRequest 184, // 184: determined.api.v1.Determined.UnpinWorkspace:input_type -> determined.api.v1.UnpinWorkspaceRequest 185, // 185: determined.api.v1.Determined.ModifyWorkspaceNamespaceBinding:input_type -> determined.api.v1.ModifyWorkspaceNamespaceBindingRequest - 186, // 186: determined.api.v1.Determined.GetProject:input_type -> determined.api.v1.GetProjectRequest - 187, // 187: determined.api.v1.Determined.GetProjectColumns:input_type -> determined.api.v1.GetProjectColumnsRequest - 188, // 188: determined.api.v1.Determined.GetProjectNumericMetricsRange:input_type -> determined.api.v1.GetProjectNumericMetricsRangeRequest - 189, // 189: determined.api.v1.Determined.PostProject:input_type -> determined.api.v1.PostProjectRequest - 190, // 190: determined.api.v1.Determined.AddProjectNote:input_type -> determined.api.v1.AddProjectNoteRequest - 191, // 191: determined.api.v1.Determined.PutProjectNotes:input_type -> determined.api.v1.PutProjectNotesRequest - 192, // 192: determined.api.v1.Determined.PatchProject:input_type -> determined.api.v1.PatchProjectRequest - 193, // 193: determined.api.v1.Determined.DeleteProject:input_type -> determined.api.v1.DeleteProjectRequest - 194, // 194: determined.api.v1.Determined.ArchiveProject:input_type -> determined.api.v1.ArchiveProjectRequest - 195, // 195: determined.api.v1.Determined.UnarchiveProject:input_type -> determined.api.v1.UnarchiveProjectRequest - 196, // 196: determined.api.v1.Determined.MoveProject:input_type -> determined.api.v1.MoveProjectRequest - 197, // 197: determined.api.v1.Determined.MoveExperiment:input_type -> determined.api.v1.MoveExperimentRequest - 198, // 198: determined.api.v1.Determined.MoveExperiments:input_type -> determined.api.v1.MoveExperimentsRequest - 199, // 199: determined.api.v1.Determined.GetWebhooks:input_type -> determined.api.v1.GetWebhooksRequest - 200, // 200: determined.api.v1.Determined.PostWebhook:input_type -> determined.api.v1.PostWebhookRequest - 201, // 201: determined.api.v1.Determined.DeleteWebhook:input_type -> determined.api.v1.DeleteWebhookRequest - 202, // 202: determined.api.v1.Determined.TestWebhook:input_type -> determined.api.v1.TestWebhookRequest - 203, // 203: determined.api.v1.Determined.GetGroup:input_type -> determined.api.v1.GetGroupRequest - 204, // 204: determined.api.v1.Determined.GetGroups:input_type -> determined.api.v1.GetGroupsRequest - 205, // 205: determined.api.v1.Determined.CreateGroup:input_type -> determined.api.v1.CreateGroupRequest - 206, // 206: determined.api.v1.Determined.UpdateGroup:input_type -> determined.api.v1.UpdateGroupRequest - 207, // 207: determined.api.v1.Determined.DeleteGroup:input_type -> determined.api.v1.DeleteGroupRequest - 208, // 208: determined.api.v1.Determined.GetPermissionsSummary:input_type -> determined.api.v1.GetPermissionsSummaryRequest - 209, // 209: determined.api.v1.Determined.GetGroupsAndUsersAssignedToWorkspace:input_type -> determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceRequest - 210, // 210: determined.api.v1.Determined.GetRolesByID:input_type -> determined.api.v1.GetRolesByIDRequest - 211, // 211: determined.api.v1.Determined.GetRolesAssignedToUser:input_type -> determined.api.v1.GetRolesAssignedToUserRequest - 212, // 212: determined.api.v1.Determined.GetRolesAssignedToGroup:input_type -> determined.api.v1.GetRolesAssignedToGroupRequest - 213, // 213: determined.api.v1.Determined.SearchRolesAssignableToScope:input_type -> determined.api.v1.SearchRolesAssignableToScopeRequest - 214, // 214: determined.api.v1.Determined.ListRoles:input_type -> determined.api.v1.ListRolesRequest - 215, // 215: determined.api.v1.Determined.AssignRoles:input_type -> determined.api.v1.AssignRolesRequest - 216, // 216: determined.api.v1.Determined.RemoveAssignments:input_type -> determined.api.v1.RemoveAssignmentsRequest - 217, // 217: determined.api.v1.Determined.PostUserActivity:input_type -> determined.api.v1.PostUserActivityRequest - 218, // 218: determined.api.v1.Determined.GetProjectsByUserActivity:input_type -> determined.api.v1.GetProjectsByUserActivityRequest - 219, // 219: determined.api.v1.Determined.SearchExperiments:input_type -> determined.api.v1.SearchExperimentsRequest - 220, // 220: determined.api.v1.Determined.BindRPToWorkspace:input_type -> determined.api.v1.BindRPToWorkspaceRequest - 221, // 221: determined.api.v1.Determined.UnbindRPFromWorkspace:input_type -> determined.api.v1.UnbindRPFromWorkspaceRequest - 222, // 222: determined.api.v1.Determined.OverwriteRPWorkspaceBindings:input_type -> determined.api.v1.OverwriteRPWorkspaceBindingsRequest - 223, // 223: determined.api.v1.Determined.ListRPsBoundToWorkspace:input_type -> determined.api.v1.ListRPsBoundToWorkspaceRequest - 224, // 224: determined.api.v1.Determined.ListWorkspacesBoundToRP:input_type -> determined.api.v1.ListWorkspacesBoundToRPRequest - 225, // 225: determined.api.v1.Determined.GetGenericTaskConfig:input_type -> determined.api.v1.GetGenericTaskConfigRequest - 226, // 226: determined.api.v1.Determined.KillGenericTask:input_type -> determined.api.v1.KillGenericTaskRequest - 227, // 227: determined.api.v1.Determined.PauseGenericTask:input_type -> determined.api.v1.PauseGenericTaskRequest - 228, // 228: determined.api.v1.Determined.UnpauseGenericTask:input_type -> determined.api.v1.UnpauseGenericTaskRequest - 229, // 229: determined.api.v1.Determined.SearchRuns:input_type -> determined.api.v1.SearchRunsRequest - 230, // 230: determined.api.v1.Determined.MoveRuns:input_type -> determined.api.v1.MoveRunsRequest - 231, // 231: determined.api.v1.Determined.KillRuns:input_type -> determined.api.v1.KillRunsRequest - 232, // 232: determined.api.v1.Determined.Login:output_type -> determined.api.v1.LoginResponse - 233, // 233: determined.api.v1.Determined.CurrentUser:output_type -> determined.api.v1.CurrentUserResponse - 234, // 234: determined.api.v1.Determined.Logout:output_type -> determined.api.v1.LogoutResponse - 235, // 235: determined.api.v1.Determined.GetUsers:output_type -> determined.api.v1.GetUsersResponse - 236, // 236: determined.api.v1.Determined.GetUserSetting:output_type -> determined.api.v1.GetUserSettingResponse - 237, // 237: determined.api.v1.Determined.ResetUserSetting:output_type -> determined.api.v1.ResetUserSettingResponse - 238, // 238: determined.api.v1.Determined.PostUserSetting:output_type -> determined.api.v1.PostUserSettingResponse - 239, // 239: determined.api.v1.Determined.GetUser:output_type -> determined.api.v1.GetUserResponse - 240, // 240: determined.api.v1.Determined.GetUserByUsername:output_type -> determined.api.v1.GetUserByUsernameResponse - 241, // 241: determined.api.v1.Determined.GetMe:output_type -> determined.api.v1.GetMeResponse - 242, // 242: determined.api.v1.Determined.PostUser:output_type -> determined.api.v1.PostUserResponse - 243, // 243: determined.api.v1.Determined.SetUserPassword:output_type -> determined.api.v1.SetUserPasswordResponse - 244, // 244: determined.api.v1.Determined.AssignMultipleGroups:output_type -> determined.api.v1.AssignMultipleGroupsResponse - 245, // 245: determined.api.v1.Determined.PatchUser:output_type -> determined.api.v1.PatchUserResponse - 246, // 246: determined.api.v1.Determined.PatchUsers:output_type -> determined.api.v1.PatchUsersResponse - 247, // 247: determined.api.v1.Determined.GetTelemetry:output_type -> determined.api.v1.GetTelemetryResponse - 248, // 248: determined.api.v1.Determined.GetMaster:output_type -> determined.api.v1.GetMasterResponse - 249, // 249: determined.api.v1.Determined.GetMasterConfig:output_type -> determined.api.v1.GetMasterConfigResponse - 250, // 250: determined.api.v1.Determined.PatchMasterConfig:output_type -> determined.api.v1.PatchMasterConfigResponse - 251, // 251: determined.api.v1.Determined.MasterLogs:output_type -> determined.api.v1.MasterLogsResponse - 252, // 252: determined.api.v1.Determined.GetAgents:output_type -> determined.api.v1.GetAgentsResponse - 253, // 253: determined.api.v1.Determined.GetAgent:output_type -> determined.api.v1.GetAgentResponse - 254, // 254: determined.api.v1.Determined.GetSlots:output_type -> determined.api.v1.GetSlotsResponse - 255, // 255: determined.api.v1.Determined.GetSlot:output_type -> determined.api.v1.GetSlotResponse - 256, // 256: determined.api.v1.Determined.EnableAgent:output_type -> determined.api.v1.EnableAgentResponse - 257, // 257: determined.api.v1.Determined.DisableAgent:output_type -> determined.api.v1.DisableAgentResponse - 258, // 258: determined.api.v1.Determined.EnableSlot:output_type -> determined.api.v1.EnableSlotResponse - 259, // 259: determined.api.v1.Determined.DisableSlot:output_type -> determined.api.v1.DisableSlotResponse - 260, // 260: determined.api.v1.Determined.CreateGenericTask:output_type -> determined.api.v1.CreateGenericTaskResponse - 261, // 261: determined.api.v1.Determined.CreateExperiment:output_type -> determined.api.v1.CreateExperimentResponse - 262, // 262: determined.api.v1.Determined.PutExperiment:output_type -> determined.api.v1.PutExperimentResponse - 263, // 263: determined.api.v1.Determined.ContinueExperiment:output_type -> determined.api.v1.ContinueExperimentResponse - 264, // 264: determined.api.v1.Determined.GetExperiment:output_type -> determined.api.v1.GetExperimentResponse - 265, // 265: determined.api.v1.Determined.GetExperiments:output_type -> determined.api.v1.GetExperimentsResponse - 266, // 266: determined.api.v1.Determined.PutExperimentRetainLogs:output_type -> determined.api.v1.PutExperimentRetainLogsResponse - 267, // 267: determined.api.v1.Determined.PutExperimentsRetainLogs:output_type -> determined.api.v1.PutExperimentsRetainLogsResponse - 268, // 268: determined.api.v1.Determined.PutTrialRetainLogs:output_type -> determined.api.v1.PutTrialRetainLogsResponse - 269, // 269: determined.api.v1.Determined.GetModelDef:output_type -> determined.api.v1.GetModelDefResponse - 270, // 270: determined.api.v1.Determined.GetTaskContextDirectory:output_type -> determined.api.v1.GetTaskContextDirectoryResponse - 271, // 271: determined.api.v1.Determined.GetModelDefTree:output_type -> determined.api.v1.GetModelDefTreeResponse - 272, // 272: determined.api.v1.Determined.GetModelDefFile:output_type -> determined.api.v1.GetModelDefFileResponse - 273, // 273: determined.api.v1.Determined.GetExperimentLabels:output_type -> determined.api.v1.GetExperimentLabelsResponse - 274, // 274: determined.api.v1.Determined.GetExperimentValidationHistory:output_type -> determined.api.v1.GetExperimentValidationHistoryResponse - 275, // 275: determined.api.v1.Determined.ActivateExperiment:output_type -> determined.api.v1.ActivateExperimentResponse - 276, // 276: determined.api.v1.Determined.ActivateExperiments:output_type -> determined.api.v1.ActivateExperimentsResponse - 277, // 277: determined.api.v1.Determined.PauseExperiment:output_type -> determined.api.v1.PauseExperimentResponse - 278, // 278: determined.api.v1.Determined.PauseExperiments:output_type -> determined.api.v1.PauseExperimentsResponse - 279, // 279: determined.api.v1.Determined.CancelExperiment:output_type -> determined.api.v1.CancelExperimentResponse - 280, // 280: determined.api.v1.Determined.CancelExperiments:output_type -> determined.api.v1.CancelExperimentsResponse - 281, // 281: determined.api.v1.Determined.KillExperiment:output_type -> determined.api.v1.KillExperimentResponse - 282, // 282: determined.api.v1.Determined.KillExperiments:output_type -> determined.api.v1.KillExperimentsResponse - 283, // 283: determined.api.v1.Determined.ArchiveExperiment:output_type -> determined.api.v1.ArchiveExperimentResponse - 284, // 284: determined.api.v1.Determined.ArchiveExperiments:output_type -> determined.api.v1.ArchiveExperimentsResponse - 285, // 285: determined.api.v1.Determined.UnarchiveExperiment:output_type -> determined.api.v1.UnarchiveExperimentResponse - 286, // 286: determined.api.v1.Determined.UnarchiveExperiments:output_type -> determined.api.v1.UnarchiveExperimentsResponse - 287, // 287: determined.api.v1.Determined.PatchExperiment:output_type -> determined.api.v1.PatchExperimentResponse - 288, // 288: determined.api.v1.Determined.DeleteExperiments:output_type -> determined.api.v1.DeleteExperimentsResponse - 289, // 289: determined.api.v1.Determined.DeleteExperiment:output_type -> determined.api.v1.DeleteExperimentResponse - 290, // 290: determined.api.v1.Determined.GetBestSearcherValidationMetric:output_type -> determined.api.v1.GetBestSearcherValidationMetricResponse - 291, // 291: determined.api.v1.Determined.GetExperimentCheckpoints:output_type -> determined.api.v1.GetExperimentCheckpointsResponse - 292, // 292: determined.api.v1.Determined.PutExperimentLabel:output_type -> determined.api.v1.PutExperimentLabelResponse - 293, // 293: determined.api.v1.Determined.DeleteExperimentLabel:output_type -> determined.api.v1.DeleteExperimentLabelResponse - 294, // 294: determined.api.v1.Determined.PreviewHPSearch:output_type -> determined.api.v1.PreviewHPSearchResponse - 295, // 295: determined.api.v1.Determined.GetExperimentTrials:output_type -> determined.api.v1.GetExperimentTrialsResponse - 296, // 296: determined.api.v1.Determined.CompareTrials:output_type -> determined.api.v1.CompareTrialsResponse - 297, // 297: determined.api.v1.Determined.ReportTrialSourceInfo:output_type -> determined.api.v1.ReportTrialSourceInfoResponse - 298, // 298: determined.api.v1.Determined.CreateTrial:output_type -> determined.api.v1.CreateTrialResponse - 299, // 299: determined.api.v1.Determined.PutTrial:output_type -> determined.api.v1.PutTrialResponse - 300, // 300: determined.api.v1.Determined.PatchTrial:output_type -> determined.api.v1.PatchTrialResponse - 301, // 301: determined.api.v1.Determined.StartTrial:output_type -> determined.api.v1.StartTrialResponse - 302, // 302: determined.api.v1.Determined.RunPrepareForReporting:output_type -> determined.api.v1.RunPrepareForReportingResponse - 303, // 303: determined.api.v1.Determined.GetTrial:output_type -> determined.api.v1.GetTrialResponse - 304, // 304: determined.api.v1.Determined.GetTrialByExternalID:output_type -> determined.api.v1.GetTrialByExternalIDResponse - 305, // 305: determined.api.v1.Determined.GetTrialWorkloads:output_type -> determined.api.v1.GetTrialWorkloadsResponse - 306, // 306: determined.api.v1.Determined.TrialLogs:output_type -> determined.api.v1.TrialLogsResponse - 307, // 307: determined.api.v1.Determined.TrialLogsFields:output_type -> determined.api.v1.TrialLogsFieldsResponse - 308, // 308: determined.api.v1.Determined.AllocationReady:output_type -> determined.api.v1.AllocationReadyResponse - 309, // 309: determined.api.v1.Determined.GetAllocation:output_type -> determined.api.v1.GetAllocationResponse - 310, // 310: determined.api.v1.Determined.AllocationWaiting:output_type -> determined.api.v1.AllocationWaitingResponse - 311, // 311: determined.api.v1.Determined.PostTaskLogs:output_type -> determined.api.v1.PostTaskLogsResponse - 312, // 312: determined.api.v1.Determined.TaskLogs:output_type -> determined.api.v1.TaskLogsResponse - 313, // 313: determined.api.v1.Determined.TaskLogsFields:output_type -> determined.api.v1.TaskLogsFieldsResponse - 314, // 314: determined.api.v1.Determined.GetTrialProfilerMetrics:output_type -> determined.api.v1.GetTrialProfilerMetricsResponse - 315, // 315: determined.api.v1.Determined.GetTrialProfilerAvailableSeries:output_type -> determined.api.v1.GetTrialProfilerAvailableSeriesResponse - 316, // 316: determined.api.v1.Determined.PostTrialProfilerMetricsBatch:output_type -> determined.api.v1.PostTrialProfilerMetricsBatchResponse - 317, // 317: determined.api.v1.Determined.GetMetrics:output_type -> determined.api.v1.GetMetricsResponse - 318, // 318: determined.api.v1.Determined.GetTrainingMetrics:output_type -> determined.api.v1.GetTrainingMetricsResponse - 319, // 319: determined.api.v1.Determined.GetValidationMetrics:output_type -> determined.api.v1.GetValidationMetricsResponse - 320, // 320: determined.api.v1.Determined.KillTrial:output_type -> determined.api.v1.KillTrialResponse - 321, // 321: determined.api.v1.Determined.GetTrialCheckpoints:output_type -> determined.api.v1.GetTrialCheckpointsResponse - 322, // 322: determined.api.v1.Determined.CleanupLogs:output_type -> determined.api.v1.CleanupLogsResponse - 323, // 323: determined.api.v1.Determined.AllocationPreemptionSignal:output_type -> determined.api.v1.AllocationPreemptionSignalResponse - 324, // 324: determined.api.v1.Determined.AllocationPendingPreemptionSignal:output_type -> determined.api.v1.AllocationPendingPreemptionSignalResponse - 325, // 325: determined.api.v1.Determined.AckAllocationPreemptionSignal:output_type -> determined.api.v1.AckAllocationPreemptionSignalResponse - 326, // 326: determined.api.v1.Determined.MarkAllocationResourcesDaemon:output_type -> determined.api.v1.MarkAllocationResourcesDaemonResponse - 327, // 327: determined.api.v1.Determined.AllocationRendezvousInfo:output_type -> determined.api.v1.AllocationRendezvousInfoResponse - 328, // 328: determined.api.v1.Determined.PostAllocationProxyAddress:output_type -> determined.api.v1.PostAllocationProxyAddressResponse - 329, // 329: determined.api.v1.Determined.GetTaskAcceleratorData:output_type -> determined.api.v1.GetTaskAcceleratorDataResponse - 330, // 330: determined.api.v1.Determined.PostAllocationAcceleratorData:output_type -> determined.api.v1.PostAllocationAcceleratorDataResponse - 331, // 331: determined.api.v1.Determined.AllocationAllGather:output_type -> determined.api.v1.AllocationAllGatherResponse - 332, // 332: determined.api.v1.Determined.NotifyContainerRunning:output_type -> determined.api.v1.NotifyContainerRunningResponse - 333, // 333: determined.api.v1.Determined.GetCurrentTrialSearcherOperation:output_type -> determined.api.v1.GetCurrentTrialSearcherOperationResponse - 334, // 334: determined.api.v1.Determined.CompleteTrialSearcherValidation:output_type -> determined.api.v1.CompleteTrialSearcherValidationResponse - 335, // 335: determined.api.v1.Determined.ReportTrialSearcherEarlyExit:output_type -> determined.api.v1.ReportTrialSearcherEarlyExitResponse - 336, // 336: determined.api.v1.Determined.ReportTrialProgress:output_type -> determined.api.v1.ReportTrialProgressResponse - 337, // 337: determined.api.v1.Determined.PostTrialRunnerMetadata:output_type -> determined.api.v1.PostTrialRunnerMetadataResponse - 338, // 338: determined.api.v1.Determined.ReportTrialMetrics:output_type -> determined.api.v1.ReportTrialMetricsResponse - 339, // 339: determined.api.v1.Determined.ReportTrialTrainingMetrics:output_type -> determined.api.v1.ReportTrialTrainingMetricsResponse - 340, // 340: determined.api.v1.Determined.ReportTrialValidationMetrics:output_type -> determined.api.v1.ReportTrialValidationMetricsResponse - 341, // 341: determined.api.v1.Determined.ReportCheckpoint:output_type -> determined.api.v1.ReportCheckpointResponse - 342, // 342: determined.api.v1.Determined.GetJobs:output_type -> determined.api.v1.GetJobsResponse - 343, // 343: determined.api.v1.Determined.GetJobsV2:output_type -> determined.api.v1.GetJobsV2Response - 344, // 344: determined.api.v1.Determined.GetJobQueueStats:output_type -> determined.api.v1.GetJobQueueStatsResponse - 345, // 345: determined.api.v1.Determined.UpdateJobQueue:output_type -> determined.api.v1.UpdateJobQueueResponse - 346, // 346: determined.api.v1.Determined.GetTemplates:output_type -> determined.api.v1.GetTemplatesResponse - 347, // 347: determined.api.v1.Determined.GetTemplate:output_type -> determined.api.v1.GetTemplateResponse - 348, // 348: determined.api.v1.Determined.PutTemplate:output_type -> determined.api.v1.PutTemplateResponse - 349, // 349: determined.api.v1.Determined.PostTemplate:output_type -> determined.api.v1.PostTemplateResponse - 350, // 350: determined.api.v1.Determined.PatchTemplateConfig:output_type -> determined.api.v1.PatchTemplateConfigResponse - 351, // 351: determined.api.v1.Determined.DeleteTemplate:output_type -> determined.api.v1.DeleteTemplateResponse - 352, // 352: determined.api.v1.Determined.GetNotebooks:output_type -> determined.api.v1.GetNotebooksResponse - 353, // 353: determined.api.v1.Determined.GetNotebook:output_type -> determined.api.v1.GetNotebookResponse - 354, // 354: determined.api.v1.Determined.IdleNotebook:output_type -> determined.api.v1.IdleNotebookResponse - 355, // 355: determined.api.v1.Determined.KillNotebook:output_type -> determined.api.v1.KillNotebookResponse - 356, // 356: determined.api.v1.Determined.SetNotebookPriority:output_type -> determined.api.v1.SetNotebookPriorityResponse - 357, // 357: determined.api.v1.Determined.LaunchNotebook:output_type -> determined.api.v1.LaunchNotebookResponse - 358, // 358: determined.api.v1.Determined.GetShells:output_type -> determined.api.v1.GetShellsResponse - 359, // 359: determined.api.v1.Determined.GetShell:output_type -> determined.api.v1.GetShellResponse - 360, // 360: determined.api.v1.Determined.KillShell:output_type -> determined.api.v1.KillShellResponse - 361, // 361: determined.api.v1.Determined.SetShellPriority:output_type -> determined.api.v1.SetShellPriorityResponse - 362, // 362: determined.api.v1.Determined.LaunchShell:output_type -> determined.api.v1.LaunchShellResponse - 363, // 363: determined.api.v1.Determined.GetCommands:output_type -> determined.api.v1.GetCommandsResponse - 364, // 364: determined.api.v1.Determined.GetCommand:output_type -> determined.api.v1.GetCommandResponse - 365, // 365: determined.api.v1.Determined.KillCommand:output_type -> determined.api.v1.KillCommandResponse - 366, // 366: determined.api.v1.Determined.SetCommandPriority:output_type -> determined.api.v1.SetCommandPriorityResponse - 367, // 367: determined.api.v1.Determined.LaunchCommand:output_type -> determined.api.v1.LaunchCommandResponse - 368, // 368: determined.api.v1.Determined.GetTensorboards:output_type -> determined.api.v1.GetTensorboardsResponse - 369, // 369: determined.api.v1.Determined.GetTensorboard:output_type -> determined.api.v1.GetTensorboardResponse - 370, // 370: determined.api.v1.Determined.KillTensorboard:output_type -> determined.api.v1.KillTensorboardResponse - 371, // 371: determined.api.v1.Determined.SetTensorboardPriority:output_type -> determined.api.v1.SetTensorboardPriorityResponse - 372, // 372: determined.api.v1.Determined.LaunchTensorboard:output_type -> determined.api.v1.LaunchTensorboardResponse - 373, // 373: determined.api.v1.Determined.DeleteTensorboardFiles:output_type -> determined.api.v1.DeleteTensorboardFilesResponse - 374, // 374: determined.api.v1.Determined.GetActiveTasksCount:output_type -> determined.api.v1.GetActiveTasksCountResponse - 375, // 375: determined.api.v1.Determined.GetTask:output_type -> determined.api.v1.GetTaskResponse - 376, // 376: determined.api.v1.Determined.GetTasks:output_type -> determined.api.v1.GetTasksResponse - 377, // 377: determined.api.v1.Determined.GetModel:output_type -> determined.api.v1.GetModelResponse - 378, // 378: determined.api.v1.Determined.PostModel:output_type -> determined.api.v1.PostModelResponse - 379, // 379: determined.api.v1.Determined.PatchModel:output_type -> determined.api.v1.PatchModelResponse - 380, // 380: determined.api.v1.Determined.ArchiveModel:output_type -> determined.api.v1.ArchiveModelResponse - 381, // 381: determined.api.v1.Determined.UnarchiveModel:output_type -> determined.api.v1.UnarchiveModelResponse - 382, // 382: determined.api.v1.Determined.MoveModel:output_type -> determined.api.v1.MoveModelResponse - 383, // 383: determined.api.v1.Determined.DeleteModel:output_type -> determined.api.v1.DeleteModelResponse - 384, // 384: determined.api.v1.Determined.GetModels:output_type -> determined.api.v1.GetModelsResponse - 385, // 385: determined.api.v1.Determined.GetModelLabels:output_type -> determined.api.v1.GetModelLabelsResponse - 386, // 386: determined.api.v1.Determined.GetModelVersion:output_type -> determined.api.v1.GetModelVersionResponse - 387, // 387: determined.api.v1.Determined.GetModelVersions:output_type -> determined.api.v1.GetModelVersionsResponse - 388, // 388: determined.api.v1.Determined.PostModelVersion:output_type -> determined.api.v1.PostModelVersionResponse - 389, // 389: determined.api.v1.Determined.PatchModelVersion:output_type -> determined.api.v1.PatchModelVersionResponse - 390, // 390: determined.api.v1.Determined.DeleteModelVersion:output_type -> determined.api.v1.DeleteModelVersionResponse - 391, // 391: determined.api.v1.Determined.GetTrialMetricsByModelVersion:output_type -> determined.api.v1.GetTrialMetricsByModelVersionResponse - 392, // 392: determined.api.v1.Determined.GetCheckpoint:output_type -> determined.api.v1.GetCheckpointResponse - 393, // 393: determined.api.v1.Determined.PostCheckpointMetadata:output_type -> determined.api.v1.PostCheckpointMetadataResponse - 394, // 394: determined.api.v1.Determined.CheckpointsRemoveFiles:output_type -> determined.api.v1.CheckpointsRemoveFilesResponse - 395, // 395: determined.api.v1.Determined.PatchCheckpoints:output_type -> determined.api.v1.PatchCheckpointsResponse - 396, // 396: determined.api.v1.Determined.DeleteCheckpoints:output_type -> determined.api.v1.DeleteCheckpointsResponse - 397, // 397: determined.api.v1.Determined.GetTrialMetricsByCheckpoint:output_type -> determined.api.v1.GetTrialMetricsByCheckpointResponse - 398, // 398: determined.api.v1.Determined.GetSearcherEvents:output_type -> determined.api.v1.GetSearcherEventsResponse - 399, // 399: determined.api.v1.Determined.PostSearcherOperations:output_type -> determined.api.v1.PostSearcherOperationsResponse - 400, // 400: determined.api.v1.Determined.ExpMetricNames:output_type -> determined.api.v1.ExpMetricNamesResponse - 401, // 401: determined.api.v1.Determined.MetricBatches:output_type -> determined.api.v1.MetricBatchesResponse - 402, // 402: determined.api.v1.Determined.TrialsSnapshot:output_type -> determined.api.v1.TrialsSnapshotResponse - 403, // 403: determined.api.v1.Determined.TrialsSample:output_type -> determined.api.v1.TrialsSampleResponse - 404, // 404: determined.api.v1.Determined.GetResourcePools:output_type -> determined.api.v1.GetResourcePoolsResponse - 405, // 405: determined.api.v1.Determined.ResourceAllocationRaw:output_type -> determined.api.v1.ResourceAllocationRawResponse - 406, // 406: determined.api.v1.Determined.ResourceAllocationAggregated:output_type -> determined.api.v1.ResourceAllocationAggregatedResponse - 407, // 407: determined.api.v1.Determined.GetWorkspace:output_type -> determined.api.v1.GetWorkspaceResponse - 408, // 408: determined.api.v1.Determined.GetWorkspaceProjects:output_type -> determined.api.v1.GetWorkspaceProjectsResponse - 409, // 409: determined.api.v1.Determined.GetWorkspaces:output_type -> determined.api.v1.GetWorkspacesResponse - 410, // 410: determined.api.v1.Determined.PostWorkspace:output_type -> determined.api.v1.PostWorkspaceResponse - 411, // 411: determined.api.v1.Determined.PatchWorkspace:output_type -> determined.api.v1.PatchWorkspaceResponse - 412, // 412: determined.api.v1.Determined.DeleteWorkspace:output_type -> determined.api.v1.DeleteWorkspaceResponse - 413, // 413: determined.api.v1.Determined.ArchiveWorkspace:output_type -> determined.api.v1.ArchiveWorkspaceResponse - 414, // 414: determined.api.v1.Determined.UnarchiveWorkspace:output_type -> determined.api.v1.UnarchiveWorkspaceResponse - 415, // 415: determined.api.v1.Determined.PinWorkspace:output_type -> determined.api.v1.PinWorkspaceResponse - 416, // 416: determined.api.v1.Determined.UnpinWorkspace:output_type -> determined.api.v1.UnpinWorkspaceResponse - 417, // 417: determined.api.v1.Determined.ModifyWorkspaceNamespaceBinding:output_type -> determined.api.v1.ModifyWorkspaceNamespaceBindingResponse - 418, // 418: determined.api.v1.Determined.GetProject:output_type -> determined.api.v1.GetProjectResponse - 419, // 419: determined.api.v1.Determined.GetProjectColumns:output_type -> determined.api.v1.GetProjectColumnsResponse - 420, // 420: determined.api.v1.Determined.GetProjectNumericMetricsRange:output_type -> determined.api.v1.GetProjectNumericMetricsRangeResponse - 421, // 421: determined.api.v1.Determined.PostProject:output_type -> determined.api.v1.PostProjectResponse - 422, // 422: determined.api.v1.Determined.AddProjectNote:output_type -> determined.api.v1.AddProjectNoteResponse - 423, // 423: determined.api.v1.Determined.PutProjectNotes:output_type -> determined.api.v1.PutProjectNotesResponse - 424, // 424: determined.api.v1.Determined.PatchProject:output_type -> determined.api.v1.PatchProjectResponse - 425, // 425: determined.api.v1.Determined.DeleteProject:output_type -> determined.api.v1.DeleteProjectResponse - 426, // 426: determined.api.v1.Determined.ArchiveProject:output_type -> determined.api.v1.ArchiveProjectResponse - 427, // 427: determined.api.v1.Determined.UnarchiveProject:output_type -> determined.api.v1.UnarchiveProjectResponse - 428, // 428: determined.api.v1.Determined.MoveProject:output_type -> determined.api.v1.MoveProjectResponse - 429, // 429: determined.api.v1.Determined.MoveExperiment:output_type -> determined.api.v1.MoveExperimentResponse - 430, // 430: determined.api.v1.Determined.MoveExperiments:output_type -> determined.api.v1.MoveExperimentsResponse - 431, // 431: determined.api.v1.Determined.GetWebhooks:output_type -> determined.api.v1.GetWebhooksResponse - 432, // 432: determined.api.v1.Determined.PostWebhook:output_type -> determined.api.v1.PostWebhookResponse - 433, // 433: determined.api.v1.Determined.DeleteWebhook:output_type -> determined.api.v1.DeleteWebhookResponse - 434, // 434: determined.api.v1.Determined.TestWebhook:output_type -> determined.api.v1.TestWebhookResponse - 435, // 435: determined.api.v1.Determined.GetGroup:output_type -> determined.api.v1.GetGroupResponse - 436, // 436: determined.api.v1.Determined.GetGroups:output_type -> determined.api.v1.GetGroupsResponse - 437, // 437: determined.api.v1.Determined.CreateGroup:output_type -> determined.api.v1.CreateGroupResponse - 438, // 438: determined.api.v1.Determined.UpdateGroup:output_type -> determined.api.v1.UpdateGroupResponse - 439, // 439: determined.api.v1.Determined.DeleteGroup:output_type -> determined.api.v1.DeleteGroupResponse - 440, // 440: determined.api.v1.Determined.GetPermissionsSummary:output_type -> determined.api.v1.GetPermissionsSummaryResponse - 441, // 441: determined.api.v1.Determined.GetGroupsAndUsersAssignedToWorkspace:output_type -> determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceResponse - 442, // 442: determined.api.v1.Determined.GetRolesByID:output_type -> determined.api.v1.GetRolesByIDResponse - 443, // 443: determined.api.v1.Determined.GetRolesAssignedToUser:output_type -> determined.api.v1.GetRolesAssignedToUserResponse - 444, // 444: determined.api.v1.Determined.GetRolesAssignedToGroup:output_type -> determined.api.v1.GetRolesAssignedToGroupResponse - 445, // 445: determined.api.v1.Determined.SearchRolesAssignableToScope:output_type -> determined.api.v1.SearchRolesAssignableToScopeResponse - 446, // 446: determined.api.v1.Determined.ListRoles:output_type -> determined.api.v1.ListRolesResponse - 447, // 447: determined.api.v1.Determined.AssignRoles:output_type -> determined.api.v1.AssignRolesResponse - 448, // 448: determined.api.v1.Determined.RemoveAssignments:output_type -> determined.api.v1.RemoveAssignmentsResponse - 449, // 449: determined.api.v1.Determined.PostUserActivity:output_type -> determined.api.v1.PostUserActivityResponse - 450, // 450: determined.api.v1.Determined.GetProjectsByUserActivity:output_type -> determined.api.v1.GetProjectsByUserActivityResponse - 451, // 451: determined.api.v1.Determined.SearchExperiments:output_type -> determined.api.v1.SearchExperimentsResponse - 452, // 452: determined.api.v1.Determined.BindRPToWorkspace:output_type -> determined.api.v1.BindRPToWorkspaceResponse - 453, // 453: determined.api.v1.Determined.UnbindRPFromWorkspace:output_type -> determined.api.v1.UnbindRPFromWorkspaceResponse - 454, // 454: determined.api.v1.Determined.OverwriteRPWorkspaceBindings:output_type -> determined.api.v1.OverwriteRPWorkspaceBindingsResponse - 455, // 455: determined.api.v1.Determined.ListRPsBoundToWorkspace:output_type -> determined.api.v1.ListRPsBoundToWorkspaceResponse - 456, // 456: determined.api.v1.Determined.ListWorkspacesBoundToRP:output_type -> determined.api.v1.ListWorkspacesBoundToRPResponse - 457, // 457: determined.api.v1.Determined.GetGenericTaskConfig:output_type -> determined.api.v1.GetGenericTaskConfigResponse - 458, // 458: determined.api.v1.Determined.KillGenericTask:output_type -> determined.api.v1.KillGenericTaskResponse - 459, // 459: determined.api.v1.Determined.PauseGenericTask:output_type -> determined.api.v1.PauseGenericTaskResponse - 460, // 460: determined.api.v1.Determined.UnpauseGenericTask:output_type -> determined.api.v1.UnpauseGenericTaskResponse - 461, // 461: determined.api.v1.Determined.SearchRuns:output_type -> determined.api.v1.SearchRunsResponse - 462, // 462: determined.api.v1.Determined.MoveRuns:output_type -> determined.api.v1.MoveRunsResponse - 463, // 463: determined.api.v1.Determined.KillRuns:output_type -> determined.api.v1.KillRunsResponse - 232, // [232:464] is the sub-list for method output_type - 0, // [0:232] is the sub-list for method input_type + 186, // 186: determined.api.v1.Determined.SetResourceQuota:input_type -> determined.api.v1.SetResourceQuotaRequest + 187, // 187: determined.api.v1.Determined.GetProject:input_type -> determined.api.v1.GetProjectRequest + 188, // 188: determined.api.v1.Determined.GetProjectColumns:input_type -> determined.api.v1.GetProjectColumnsRequest + 189, // 189: determined.api.v1.Determined.GetProjectNumericMetricsRange:input_type -> determined.api.v1.GetProjectNumericMetricsRangeRequest + 190, // 190: determined.api.v1.Determined.PostProject:input_type -> determined.api.v1.PostProjectRequest + 191, // 191: determined.api.v1.Determined.AddProjectNote:input_type -> determined.api.v1.AddProjectNoteRequest + 192, // 192: determined.api.v1.Determined.PutProjectNotes:input_type -> determined.api.v1.PutProjectNotesRequest + 193, // 193: determined.api.v1.Determined.PatchProject:input_type -> determined.api.v1.PatchProjectRequest + 194, // 194: determined.api.v1.Determined.DeleteProject:input_type -> determined.api.v1.DeleteProjectRequest + 195, // 195: determined.api.v1.Determined.ArchiveProject:input_type -> determined.api.v1.ArchiveProjectRequest + 196, // 196: determined.api.v1.Determined.UnarchiveProject:input_type -> determined.api.v1.UnarchiveProjectRequest + 197, // 197: determined.api.v1.Determined.MoveProject:input_type -> determined.api.v1.MoveProjectRequest + 198, // 198: determined.api.v1.Determined.MoveExperiment:input_type -> determined.api.v1.MoveExperimentRequest + 199, // 199: determined.api.v1.Determined.MoveExperiments:input_type -> determined.api.v1.MoveExperimentsRequest + 200, // 200: determined.api.v1.Determined.GetWebhooks:input_type -> determined.api.v1.GetWebhooksRequest + 201, // 201: determined.api.v1.Determined.PostWebhook:input_type -> determined.api.v1.PostWebhookRequest + 202, // 202: determined.api.v1.Determined.DeleteWebhook:input_type -> determined.api.v1.DeleteWebhookRequest + 203, // 203: determined.api.v1.Determined.TestWebhook:input_type -> determined.api.v1.TestWebhookRequest + 204, // 204: determined.api.v1.Determined.GetGroup:input_type -> determined.api.v1.GetGroupRequest + 205, // 205: determined.api.v1.Determined.GetGroups:input_type -> determined.api.v1.GetGroupsRequest + 206, // 206: determined.api.v1.Determined.CreateGroup:input_type -> determined.api.v1.CreateGroupRequest + 207, // 207: determined.api.v1.Determined.UpdateGroup:input_type -> determined.api.v1.UpdateGroupRequest + 208, // 208: determined.api.v1.Determined.DeleteGroup:input_type -> determined.api.v1.DeleteGroupRequest + 209, // 209: determined.api.v1.Determined.GetPermissionsSummary:input_type -> determined.api.v1.GetPermissionsSummaryRequest + 210, // 210: determined.api.v1.Determined.GetGroupsAndUsersAssignedToWorkspace:input_type -> determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceRequest + 211, // 211: determined.api.v1.Determined.GetRolesByID:input_type -> determined.api.v1.GetRolesByIDRequest + 212, // 212: determined.api.v1.Determined.GetRolesAssignedToUser:input_type -> determined.api.v1.GetRolesAssignedToUserRequest + 213, // 213: determined.api.v1.Determined.GetRolesAssignedToGroup:input_type -> determined.api.v1.GetRolesAssignedToGroupRequest + 214, // 214: determined.api.v1.Determined.SearchRolesAssignableToScope:input_type -> determined.api.v1.SearchRolesAssignableToScopeRequest + 215, // 215: determined.api.v1.Determined.ListRoles:input_type -> determined.api.v1.ListRolesRequest + 216, // 216: determined.api.v1.Determined.AssignRoles:input_type -> determined.api.v1.AssignRolesRequest + 217, // 217: determined.api.v1.Determined.RemoveAssignments:input_type -> determined.api.v1.RemoveAssignmentsRequest + 218, // 218: determined.api.v1.Determined.PostUserActivity:input_type -> determined.api.v1.PostUserActivityRequest + 219, // 219: determined.api.v1.Determined.GetProjectsByUserActivity:input_type -> determined.api.v1.GetProjectsByUserActivityRequest + 220, // 220: determined.api.v1.Determined.SearchExperiments:input_type -> determined.api.v1.SearchExperimentsRequest + 221, // 221: determined.api.v1.Determined.BindRPToWorkspace:input_type -> determined.api.v1.BindRPToWorkspaceRequest + 222, // 222: determined.api.v1.Determined.UnbindRPFromWorkspace:input_type -> determined.api.v1.UnbindRPFromWorkspaceRequest + 223, // 223: determined.api.v1.Determined.OverwriteRPWorkspaceBindings:input_type -> determined.api.v1.OverwriteRPWorkspaceBindingsRequest + 224, // 224: determined.api.v1.Determined.ListRPsBoundToWorkspace:input_type -> determined.api.v1.ListRPsBoundToWorkspaceRequest + 225, // 225: determined.api.v1.Determined.ListWorkspacesBoundToRP:input_type -> determined.api.v1.ListWorkspacesBoundToRPRequest + 226, // 226: determined.api.v1.Determined.GetGenericTaskConfig:input_type -> determined.api.v1.GetGenericTaskConfigRequest + 227, // 227: determined.api.v1.Determined.KillGenericTask:input_type -> determined.api.v1.KillGenericTaskRequest + 228, // 228: determined.api.v1.Determined.PauseGenericTask:input_type -> determined.api.v1.PauseGenericTaskRequest + 229, // 229: determined.api.v1.Determined.UnpauseGenericTask:input_type -> determined.api.v1.UnpauseGenericTaskRequest + 230, // 230: determined.api.v1.Determined.SearchRuns:input_type -> determined.api.v1.SearchRunsRequest + 231, // 231: determined.api.v1.Determined.MoveRuns:input_type -> determined.api.v1.MoveRunsRequest + 232, // 232: determined.api.v1.Determined.KillRuns:input_type -> determined.api.v1.KillRunsRequest + 233, // 233: determined.api.v1.Determined.Login:output_type -> determined.api.v1.LoginResponse + 234, // 234: determined.api.v1.Determined.CurrentUser:output_type -> determined.api.v1.CurrentUserResponse + 235, // 235: determined.api.v1.Determined.Logout:output_type -> determined.api.v1.LogoutResponse + 236, // 236: determined.api.v1.Determined.GetUsers:output_type -> determined.api.v1.GetUsersResponse + 237, // 237: determined.api.v1.Determined.GetUserSetting:output_type -> determined.api.v1.GetUserSettingResponse + 238, // 238: determined.api.v1.Determined.ResetUserSetting:output_type -> determined.api.v1.ResetUserSettingResponse + 239, // 239: determined.api.v1.Determined.PostUserSetting:output_type -> determined.api.v1.PostUserSettingResponse + 240, // 240: determined.api.v1.Determined.GetUser:output_type -> determined.api.v1.GetUserResponse + 241, // 241: determined.api.v1.Determined.GetUserByUsername:output_type -> determined.api.v1.GetUserByUsernameResponse + 242, // 242: determined.api.v1.Determined.GetMe:output_type -> determined.api.v1.GetMeResponse + 243, // 243: determined.api.v1.Determined.PostUser:output_type -> determined.api.v1.PostUserResponse + 244, // 244: determined.api.v1.Determined.SetUserPassword:output_type -> determined.api.v1.SetUserPasswordResponse + 245, // 245: determined.api.v1.Determined.AssignMultipleGroups:output_type -> determined.api.v1.AssignMultipleGroupsResponse + 246, // 246: determined.api.v1.Determined.PatchUser:output_type -> determined.api.v1.PatchUserResponse + 247, // 247: determined.api.v1.Determined.PatchUsers:output_type -> determined.api.v1.PatchUsersResponse + 248, // 248: determined.api.v1.Determined.GetTelemetry:output_type -> determined.api.v1.GetTelemetryResponse + 249, // 249: determined.api.v1.Determined.GetMaster:output_type -> determined.api.v1.GetMasterResponse + 250, // 250: determined.api.v1.Determined.GetMasterConfig:output_type -> determined.api.v1.GetMasterConfigResponse + 251, // 251: determined.api.v1.Determined.PatchMasterConfig:output_type -> determined.api.v1.PatchMasterConfigResponse + 252, // 252: determined.api.v1.Determined.MasterLogs:output_type -> determined.api.v1.MasterLogsResponse + 253, // 253: determined.api.v1.Determined.GetAgents:output_type -> determined.api.v1.GetAgentsResponse + 254, // 254: determined.api.v1.Determined.GetAgent:output_type -> determined.api.v1.GetAgentResponse + 255, // 255: determined.api.v1.Determined.GetSlots:output_type -> determined.api.v1.GetSlotsResponse + 256, // 256: determined.api.v1.Determined.GetSlot:output_type -> determined.api.v1.GetSlotResponse + 257, // 257: determined.api.v1.Determined.EnableAgent:output_type -> determined.api.v1.EnableAgentResponse + 258, // 258: determined.api.v1.Determined.DisableAgent:output_type -> determined.api.v1.DisableAgentResponse + 259, // 259: determined.api.v1.Determined.EnableSlot:output_type -> determined.api.v1.EnableSlotResponse + 260, // 260: determined.api.v1.Determined.DisableSlot:output_type -> determined.api.v1.DisableSlotResponse + 261, // 261: determined.api.v1.Determined.CreateGenericTask:output_type -> determined.api.v1.CreateGenericTaskResponse + 262, // 262: determined.api.v1.Determined.CreateExperiment:output_type -> determined.api.v1.CreateExperimentResponse + 263, // 263: determined.api.v1.Determined.PutExperiment:output_type -> determined.api.v1.PutExperimentResponse + 264, // 264: determined.api.v1.Determined.ContinueExperiment:output_type -> determined.api.v1.ContinueExperimentResponse + 265, // 265: determined.api.v1.Determined.GetExperiment:output_type -> determined.api.v1.GetExperimentResponse + 266, // 266: determined.api.v1.Determined.GetExperiments:output_type -> determined.api.v1.GetExperimentsResponse + 267, // 267: determined.api.v1.Determined.PutExperimentRetainLogs:output_type -> determined.api.v1.PutExperimentRetainLogsResponse + 268, // 268: determined.api.v1.Determined.PutExperimentsRetainLogs:output_type -> determined.api.v1.PutExperimentsRetainLogsResponse + 269, // 269: determined.api.v1.Determined.PutTrialRetainLogs:output_type -> determined.api.v1.PutTrialRetainLogsResponse + 270, // 270: determined.api.v1.Determined.GetModelDef:output_type -> determined.api.v1.GetModelDefResponse + 271, // 271: determined.api.v1.Determined.GetTaskContextDirectory:output_type -> determined.api.v1.GetTaskContextDirectoryResponse + 272, // 272: determined.api.v1.Determined.GetModelDefTree:output_type -> determined.api.v1.GetModelDefTreeResponse + 273, // 273: determined.api.v1.Determined.GetModelDefFile:output_type -> determined.api.v1.GetModelDefFileResponse + 274, // 274: determined.api.v1.Determined.GetExperimentLabels:output_type -> determined.api.v1.GetExperimentLabelsResponse + 275, // 275: determined.api.v1.Determined.GetExperimentValidationHistory:output_type -> determined.api.v1.GetExperimentValidationHistoryResponse + 276, // 276: determined.api.v1.Determined.ActivateExperiment:output_type -> determined.api.v1.ActivateExperimentResponse + 277, // 277: determined.api.v1.Determined.ActivateExperiments:output_type -> determined.api.v1.ActivateExperimentsResponse + 278, // 278: determined.api.v1.Determined.PauseExperiment:output_type -> determined.api.v1.PauseExperimentResponse + 279, // 279: determined.api.v1.Determined.PauseExperiments:output_type -> determined.api.v1.PauseExperimentsResponse + 280, // 280: determined.api.v1.Determined.CancelExperiment:output_type -> determined.api.v1.CancelExperimentResponse + 281, // 281: determined.api.v1.Determined.CancelExperiments:output_type -> determined.api.v1.CancelExperimentsResponse + 282, // 282: determined.api.v1.Determined.KillExperiment:output_type -> determined.api.v1.KillExperimentResponse + 283, // 283: determined.api.v1.Determined.KillExperiments:output_type -> determined.api.v1.KillExperimentsResponse + 284, // 284: determined.api.v1.Determined.ArchiveExperiment:output_type -> determined.api.v1.ArchiveExperimentResponse + 285, // 285: determined.api.v1.Determined.ArchiveExperiments:output_type -> determined.api.v1.ArchiveExperimentsResponse + 286, // 286: determined.api.v1.Determined.UnarchiveExperiment:output_type -> determined.api.v1.UnarchiveExperimentResponse + 287, // 287: determined.api.v1.Determined.UnarchiveExperiments:output_type -> determined.api.v1.UnarchiveExperimentsResponse + 288, // 288: determined.api.v1.Determined.PatchExperiment:output_type -> determined.api.v1.PatchExperimentResponse + 289, // 289: determined.api.v1.Determined.DeleteExperiments:output_type -> determined.api.v1.DeleteExperimentsResponse + 290, // 290: determined.api.v1.Determined.DeleteExperiment:output_type -> determined.api.v1.DeleteExperimentResponse + 291, // 291: determined.api.v1.Determined.GetBestSearcherValidationMetric:output_type -> determined.api.v1.GetBestSearcherValidationMetricResponse + 292, // 292: determined.api.v1.Determined.GetExperimentCheckpoints:output_type -> determined.api.v1.GetExperimentCheckpointsResponse + 293, // 293: determined.api.v1.Determined.PutExperimentLabel:output_type -> determined.api.v1.PutExperimentLabelResponse + 294, // 294: determined.api.v1.Determined.DeleteExperimentLabel:output_type -> determined.api.v1.DeleteExperimentLabelResponse + 295, // 295: determined.api.v1.Determined.PreviewHPSearch:output_type -> determined.api.v1.PreviewHPSearchResponse + 296, // 296: determined.api.v1.Determined.GetExperimentTrials:output_type -> determined.api.v1.GetExperimentTrialsResponse + 297, // 297: determined.api.v1.Determined.CompareTrials:output_type -> determined.api.v1.CompareTrialsResponse + 298, // 298: determined.api.v1.Determined.ReportTrialSourceInfo:output_type -> determined.api.v1.ReportTrialSourceInfoResponse + 299, // 299: determined.api.v1.Determined.CreateTrial:output_type -> determined.api.v1.CreateTrialResponse + 300, // 300: determined.api.v1.Determined.PutTrial:output_type -> determined.api.v1.PutTrialResponse + 301, // 301: determined.api.v1.Determined.PatchTrial:output_type -> determined.api.v1.PatchTrialResponse + 302, // 302: determined.api.v1.Determined.StartTrial:output_type -> determined.api.v1.StartTrialResponse + 303, // 303: determined.api.v1.Determined.RunPrepareForReporting:output_type -> determined.api.v1.RunPrepareForReportingResponse + 304, // 304: determined.api.v1.Determined.GetTrial:output_type -> determined.api.v1.GetTrialResponse + 305, // 305: determined.api.v1.Determined.GetTrialByExternalID:output_type -> determined.api.v1.GetTrialByExternalIDResponse + 306, // 306: determined.api.v1.Determined.GetTrialWorkloads:output_type -> determined.api.v1.GetTrialWorkloadsResponse + 307, // 307: determined.api.v1.Determined.TrialLogs:output_type -> determined.api.v1.TrialLogsResponse + 308, // 308: determined.api.v1.Determined.TrialLogsFields:output_type -> determined.api.v1.TrialLogsFieldsResponse + 309, // 309: determined.api.v1.Determined.AllocationReady:output_type -> determined.api.v1.AllocationReadyResponse + 310, // 310: determined.api.v1.Determined.GetAllocation:output_type -> determined.api.v1.GetAllocationResponse + 311, // 311: determined.api.v1.Determined.AllocationWaiting:output_type -> determined.api.v1.AllocationWaitingResponse + 312, // 312: determined.api.v1.Determined.PostTaskLogs:output_type -> determined.api.v1.PostTaskLogsResponse + 313, // 313: determined.api.v1.Determined.TaskLogs:output_type -> determined.api.v1.TaskLogsResponse + 314, // 314: determined.api.v1.Determined.TaskLogsFields:output_type -> determined.api.v1.TaskLogsFieldsResponse + 315, // 315: determined.api.v1.Determined.GetTrialProfilerMetrics:output_type -> determined.api.v1.GetTrialProfilerMetricsResponse + 316, // 316: determined.api.v1.Determined.GetTrialProfilerAvailableSeries:output_type -> determined.api.v1.GetTrialProfilerAvailableSeriesResponse + 317, // 317: determined.api.v1.Determined.PostTrialProfilerMetricsBatch:output_type -> determined.api.v1.PostTrialProfilerMetricsBatchResponse + 318, // 318: determined.api.v1.Determined.GetMetrics:output_type -> determined.api.v1.GetMetricsResponse + 319, // 319: determined.api.v1.Determined.GetTrainingMetrics:output_type -> determined.api.v1.GetTrainingMetricsResponse + 320, // 320: determined.api.v1.Determined.GetValidationMetrics:output_type -> determined.api.v1.GetValidationMetricsResponse + 321, // 321: determined.api.v1.Determined.KillTrial:output_type -> determined.api.v1.KillTrialResponse + 322, // 322: determined.api.v1.Determined.GetTrialCheckpoints:output_type -> determined.api.v1.GetTrialCheckpointsResponse + 323, // 323: determined.api.v1.Determined.CleanupLogs:output_type -> determined.api.v1.CleanupLogsResponse + 324, // 324: determined.api.v1.Determined.AllocationPreemptionSignal:output_type -> determined.api.v1.AllocationPreemptionSignalResponse + 325, // 325: determined.api.v1.Determined.AllocationPendingPreemptionSignal:output_type -> determined.api.v1.AllocationPendingPreemptionSignalResponse + 326, // 326: determined.api.v1.Determined.AckAllocationPreemptionSignal:output_type -> determined.api.v1.AckAllocationPreemptionSignalResponse + 327, // 327: determined.api.v1.Determined.MarkAllocationResourcesDaemon:output_type -> determined.api.v1.MarkAllocationResourcesDaemonResponse + 328, // 328: determined.api.v1.Determined.AllocationRendezvousInfo:output_type -> determined.api.v1.AllocationRendezvousInfoResponse + 329, // 329: determined.api.v1.Determined.PostAllocationProxyAddress:output_type -> determined.api.v1.PostAllocationProxyAddressResponse + 330, // 330: determined.api.v1.Determined.GetTaskAcceleratorData:output_type -> determined.api.v1.GetTaskAcceleratorDataResponse + 331, // 331: determined.api.v1.Determined.PostAllocationAcceleratorData:output_type -> determined.api.v1.PostAllocationAcceleratorDataResponse + 332, // 332: determined.api.v1.Determined.AllocationAllGather:output_type -> determined.api.v1.AllocationAllGatherResponse + 333, // 333: determined.api.v1.Determined.NotifyContainerRunning:output_type -> determined.api.v1.NotifyContainerRunningResponse + 334, // 334: determined.api.v1.Determined.GetCurrentTrialSearcherOperation:output_type -> determined.api.v1.GetCurrentTrialSearcherOperationResponse + 335, // 335: determined.api.v1.Determined.CompleteTrialSearcherValidation:output_type -> determined.api.v1.CompleteTrialSearcherValidationResponse + 336, // 336: determined.api.v1.Determined.ReportTrialSearcherEarlyExit:output_type -> determined.api.v1.ReportTrialSearcherEarlyExitResponse + 337, // 337: determined.api.v1.Determined.ReportTrialProgress:output_type -> determined.api.v1.ReportTrialProgressResponse + 338, // 338: determined.api.v1.Determined.PostTrialRunnerMetadata:output_type -> determined.api.v1.PostTrialRunnerMetadataResponse + 339, // 339: determined.api.v1.Determined.ReportTrialMetrics:output_type -> determined.api.v1.ReportTrialMetricsResponse + 340, // 340: determined.api.v1.Determined.ReportTrialTrainingMetrics:output_type -> determined.api.v1.ReportTrialTrainingMetricsResponse + 341, // 341: determined.api.v1.Determined.ReportTrialValidationMetrics:output_type -> determined.api.v1.ReportTrialValidationMetricsResponse + 342, // 342: determined.api.v1.Determined.ReportCheckpoint:output_type -> determined.api.v1.ReportCheckpointResponse + 343, // 343: determined.api.v1.Determined.GetJobs:output_type -> determined.api.v1.GetJobsResponse + 344, // 344: determined.api.v1.Determined.GetJobsV2:output_type -> determined.api.v1.GetJobsV2Response + 345, // 345: determined.api.v1.Determined.GetJobQueueStats:output_type -> determined.api.v1.GetJobQueueStatsResponse + 346, // 346: determined.api.v1.Determined.UpdateJobQueue:output_type -> determined.api.v1.UpdateJobQueueResponse + 347, // 347: determined.api.v1.Determined.GetTemplates:output_type -> determined.api.v1.GetTemplatesResponse + 348, // 348: determined.api.v1.Determined.GetTemplate:output_type -> determined.api.v1.GetTemplateResponse + 349, // 349: determined.api.v1.Determined.PutTemplate:output_type -> determined.api.v1.PutTemplateResponse + 350, // 350: determined.api.v1.Determined.PostTemplate:output_type -> determined.api.v1.PostTemplateResponse + 351, // 351: determined.api.v1.Determined.PatchTemplateConfig:output_type -> determined.api.v1.PatchTemplateConfigResponse + 352, // 352: determined.api.v1.Determined.DeleteTemplate:output_type -> determined.api.v1.DeleteTemplateResponse + 353, // 353: determined.api.v1.Determined.GetNotebooks:output_type -> determined.api.v1.GetNotebooksResponse + 354, // 354: determined.api.v1.Determined.GetNotebook:output_type -> determined.api.v1.GetNotebookResponse + 355, // 355: determined.api.v1.Determined.IdleNotebook:output_type -> determined.api.v1.IdleNotebookResponse + 356, // 356: determined.api.v1.Determined.KillNotebook:output_type -> determined.api.v1.KillNotebookResponse + 357, // 357: determined.api.v1.Determined.SetNotebookPriority:output_type -> determined.api.v1.SetNotebookPriorityResponse + 358, // 358: determined.api.v1.Determined.LaunchNotebook:output_type -> determined.api.v1.LaunchNotebookResponse + 359, // 359: determined.api.v1.Determined.GetShells:output_type -> determined.api.v1.GetShellsResponse + 360, // 360: determined.api.v1.Determined.GetShell:output_type -> determined.api.v1.GetShellResponse + 361, // 361: determined.api.v1.Determined.KillShell:output_type -> determined.api.v1.KillShellResponse + 362, // 362: determined.api.v1.Determined.SetShellPriority:output_type -> determined.api.v1.SetShellPriorityResponse + 363, // 363: determined.api.v1.Determined.LaunchShell:output_type -> determined.api.v1.LaunchShellResponse + 364, // 364: determined.api.v1.Determined.GetCommands:output_type -> determined.api.v1.GetCommandsResponse + 365, // 365: determined.api.v1.Determined.GetCommand:output_type -> determined.api.v1.GetCommandResponse + 366, // 366: determined.api.v1.Determined.KillCommand:output_type -> determined.api.v1.KillCommandResponse + 367, // 367: determined.api.v1.Determined.SetCommandPriority:output_type -> determined.api.v1.SetCommandPriorityResponse + 368, // 368: determined.api.v1.Determined.LaunchCommand:output_type -> determined.api.v1.LaunchCommandResponse + 369, // 369: determined.api.v1.Determined.GetTensorboards:output_type -> determined.api.v1.GetTensorboardsResponse + 370, // 370: determined.api.v1.Determined.GetTensorboard:output_type -> determined.api.v1.GetTensorboardResponse + 371, // 371: determined.api.v1.Determined.KillTensorboard:output_type -> determined.api.v1.KillTensorboardResponse + 372, // 372: determined.api.v1.Determined.SetTensorboardPriority:output_type -> determined.api.v1.SetTensorboardPriorityResponse + 373, // 373: determined.api.v1.Determined.LaunchTensorboard:output_type -> determined.api.v1.LaunchTensorboardResponse + 374, // 374: determined.api.v1.Determined.DeleteTensorboardFiles:output_type -> determined.api.v1.DeleteTensorboardFilesResponse + 375, // 375: determined.api.v1.Determined.GetActiveTasksCount:output_type -> determined.api.v1.GetActiveTasksCountResponse + 376, // 376: determined.api.v1.Determined.GetTask:output_type -> determined.api.v1.GetTaskResponse + 377, // 377: determined.api.v1.Determined.GetTasks:output_type -> determined.api.v1.GetTasksResponse + 378, // 378: determined.api.v1.Determined.GetModel:output_type -> determined.api.v1.GetModelResponse + 379, // 379: determined.api.v1.Determined.PostModel:output_type -> determined.api.v1.PostModelResponse + 380, // 380: determined.api.v1.Determined.PatchModel:output_type -> determined.api.v1.PatchModelResponse + 381, // 381: determined.api.v1.Determined.ArchiveModel:output_type -> determined.api.v1.ArchiveModelResponse + 382, // 382: determined.api.v1.Determined.UnarchiveModel:output_type -> determined.api.v1.UnarchiveModelResponse + 383, // 383: determined.api.v1.Determined.MoveModel:output_type -> determined.api.v1.MoveModelResponse + 384, // 384: determined.api.v1.Determined.DeleteModel:output_type -> determined.api.v1.DeleteModelResponse + 385, // 385: determined.api.v1.Determined.GetModels:output_type -> determined.api.v1.GetModelsResponse + 386, // 386: determined.api.v1.Determined.GetModelLabels:output_type -> determined.api.v1.GetModelLabelsResponse + 387, // 387: determined.api.v1.Determined.GetModelVersion:output_type -> determined.api.v1.GetModelVersionResponse + 388, // 388: determined.api.v1.Determined.GetModelVersions:output_type -> determined.api.v1.GetModelVersionsResponse + 389, // 389: determined.api.v1.Determined.PostModelVersion:output_type -> determined.api.v1.PostModelVersionResponse + 390, // 390: determined.api.v1.Determined.PatchModelVersion:output_type -> determined.api.v1.PatchModelVersionResponse + 391, // 391: determined.api.v1.Determined.DeleteModelVersion:output_type -> determined.api.v1.DeleteModelVersionResponse + 392, // 392: determined.api.v1.Determined.GetTrialMetricsByModelVersion:output_type -> determined.api.v1.GetTrialMetricsByModelVersionResponse + 393, // 393: determined.api.v1.Determined.GetCheckpoint:output_type -> determined.api.v1.GetCheckpointResponse + 394, // 394: determined.api.v1.Determined.PostCheckpointMetadata:output_type -> determined.api.v1.PostCheckpointMetadataResponse + 395, // 395: determined.api.v1.Determined.CheckpointsRemoveFiles:output_type -> determined.api.v1.CheckpointsRemoveFilesResponse + 396, // 396: determined.api.v1.Determined.PatchCheckpoints:output_type -> determined.api.v1.PatchCheckpointsResponse + 397, // 397: determined.api.v1.Determined.DeleteCheckpoints:output_type -> determined.api.v1.DeleteCheckpointsResponse + 398, // 398: determined.api.v1.Determined.GetTrialMetricsByCheckpoint:output_type -> determined.api.v1.GetTrialMetricsByCheckpointResponse + 399, // 399: determined.api.v1.Determined.GetSearcherEvents:output_type -> determined.api.v1.GetSearcherEventsResponse + 400, // 400: determined.api.v1.Determined.PostSearcherOperations:output_type -> determined.api.v1.PostSearcherOperationsResponse + 401, // 401: determined.api.v1.Determined.ExpMetricNames:output_type -> determined.api.v1.ExpMetricNamesResponse + 402, // 402: determined.api.v1.Determined.MetricBatches:output_type -> determined.api.v1.MetricBatchesResponse + 403, // 403: determined.api.v1.Determined.TrialsSnapshot:output_type -> determined.api.v1.TrialsSnapshotResponse + 404, // 404: determined.api.v1.Determined.TrialsSample:output_type -> determined.api.v1.TrialsSampleResponse + 405, // 405: determined.api.v1.Determined.GetResourcePools:output_type -> determined.api.v1.GetResourcePoolsResponse + 406, // 406: determined.api.v1.Determined.ResourceAllocationRaw:output_type -> determined.api.v1.ResourceAllocationRawResponse + 407, // 407: determined.api.v1.Determined.ResourceAllocationAggregated:output_type -> determined.api.v1.ResourceAllocationAggregatedResponse + 408, // 408: determined.api.v1.Determined.GetWorkspace:output_type -> determined.api.v1.GetWorkspaceResponse + 409, // 409: determined.api.v1.Determined.GetWorkspaceProjects:output_type -> determined.api.v1.GetWorkspaceProjectsResponse + 410, // 410: determined.api.v1.Determined.GetWorkspaces:output_type -> determined.api.v1.GetWorkspacesResponse + 411, // 411: determined.api.v1.Determined.PostWorkspace:output_type -> determined.api.v1.PostWorkspaceResponse + 412, // 412: determined.api.v1.Determined.PatchWorkspace:output_type -> determined.api.v1.PatchWorkspaceResponse + 413, // 413: determined.api.v1.Determined.DeleteWorkspace:output_type -> determined.api.v1.DeleteWorkspaceResponse + 414, // 414: determined.api.v1.Determined.ArchiveWorkspace:output_type -> determined.api.v1.ArchiveWorkspaceResponse + 415, // 415: determined.api.v1.Determined.UnarchiveWorkspace:output_type -> determined.api.v1.UnarchiveWorkspaceResponse + 416, // 416: determined.api.v1.Determined.PinWorkspace:output_type -> determined.api.v1.PinWorkspaceResponse + 417, // 417: determined.api.v1.Determined.UnpinWorkspace:output_type -> determined.api.v1.UnpinWorkspaceResponse + 418, // 418: determined.api.v1.Determined.ModifyWorkspaceNamespaceBinding:output_type -> determined.api.v1.ModifyWorkspaceNamespaceBindingResponse + 419, // 419: determined.api.v1.Determined.SetResourceQuota:output_type -> determined.api.v1.SetResourceQuotaResponse + 420, // 420: determined.api.v1.Determined.GetProject:output_type -> determined.api.v1.GetProjectResponse + 421, // 421: determined.api.v1.Determined.GetProjectColumns:output_type -> determined.api.v1.GetProjectColumnsResponse + 422, // 422: determined.api.v1.Determined.GetProjectNumericMetricsRange:output_type -> determined.api.v1.GetProjectNumericMetricsRangeResponse + 423, // 423: determined.api.v1.Determined.PostProject:output_type -> determined.api.v1.PostProjectResponse + 424, // 424: determined.api.v1.Determined.AddProjectNote:output_type -> determined.api.v1.AddProjectNoteResponse + 425, // 425: determined.api.v1.Determined.PutProjectNotes:output_type -> determined.api.v1.PutProjectNotesResponse + 426, // 426: determined.api.v1.Determined.PatchProject:output_type -> determined.api.v1.PatchProjectResponse + 427, // 427: determined.api.v1.Determined.DeleteProject:output_type -> determined.api.v1.DeleteProjectResponse + 428, // 428: determined.api.v1.Determined.ArchiveProject:output_type -> determined.api.v1.ArchiveProjectResponse + 429, // 429: determined.api.v1.Determined.UnarchiveProject:output_type -> determined.api.v1.UnarchiveProjectResponse + 430, // 430: determined.api.v1.Determined.MoveProject:output_type -> determined.api.v1.MoveProjectResponse + 431, // 431: determined.api.v1.Determined.MoveExperiment:output_type -> determined.api.v1.MoveExperimentResponse + 432, // 432: determined.api.v1.Determined.MoveExperiments:output_type -> determined.api.v1.MoveExperimentsResponse + 433, // 433: determined.api.v1.Determined.GetWebhooks:output_type -> determined.api.v1.GetWebhooksResponse + 434, // 434: determined.api.v1.Determined.PostWebhook:output_type -> determined.api.v1.PostWebhookResponse + 435, // 435: determined.api.v1.Determined.DeleteWebhook:output_type -> determined.api.v1.DeleteWebhookResponse + 436, // 436: determined.api.v1.Determined.TestWebhook:output_type -> determined.api.v1.TestWebhookResponse + 437, // 437: determined.api.v1.Determined.GetGroup:output_type -> determined.api.v1.GetGroupResponse + 438, // 438: determined.api.v1.Determined.GetGroups:output_type -> determined.api.v1.GetGroupsResponse + 439, // 439: determined.api.v1.Determined.CreateGroup:output_type -> determined.api.v1.CreateGroupResponse + 440, // 440: determined.api.v1.Determined.UpdateGroup:output_type -> determined.api.v1.UpdateGroupResponse + 441, // 441: determined.api.v1.Determined.DeleteGroup:output_type -> determined.api.v1.DeleteGroupResponse + 442, // 442: determined.api.v1.Determined.GetPermissionsSummary:output_type -> determined.api.v1.GetPermissionsSummaryResponse + 443, // 443: determined.api.v1.Determined.GetGroupsAndUsersAssignedToWorkspace:output_type -> determined.api.v1.GetGroupsAndUsersAssignedToWorkspaceResponse + 444, // 444: determined.api.v1.Determined.GetRolesByID:output_type -> determined.api.v1.GetRolesByIDResponse + 445, // 445: determined.api.v1.Determined.GetRolesAssignedToUser:output_type -> determined.api.v1.GetRolesAssignedToUserResponse + 446, // 446: determined.api.v1.Determined.GetRolesAssignedToGroup:output_type -> determined.api.v1.GetRolesAssignedToGroupResponse + 447, // 447: determined.api.v1.Determined.SearchRolesAssignableToScope:output_type -> determined.api.v1.SearchRolesAssignableToScopeResponse + 448, // 448: determined.api.v1.Determined.ListRoles:output_type -> determined.api.v1.ListRolesResponse + 449, // 449: determined.api.v1.Determined.AssignRoles:output_type -> determined.api.v1.AssignRolesResponse + 450, // 450: determined.api.v1.Determined.RemoveAssignments:output_type -> determined.api.v1.RemoveAssignmentsResponse + 451, // 451: determined.api.v1.Determined.PostUserActivity:output_type -> determined.api.v1.PostUserActivityResponse + 452, // 452: determined.api.v1.Determined.GetProjectsByUserActivity:output_type -> determined.api.v1.GetProjectsByUserActivityResponse + 453, // 453: determined.api.v1.Determined.SearchExperiments:output_type -> determined.api.v1.SearchExperimentsResponse + 454, // 454: determined.api.v1.Determined.BindRPToWorkspace:output_type -> determined.api.v1.BindRPToWorkspaceResponse + 455, // 455: determined.api.v1.Determined.UnbindRPFromWorkspace:output_type -> determined.api.v1.UnbindRPFromWorkspaceResponse + 456, // 456: determined.api.v1.Determined.OverwriteRPWorkspaceBindings:output_type -> determined.api.v1.OverwriteRPWorkspaceBindingsResponse + 457, // 457: determined.api.v1.Determined.ListRPsBoundToWorkspace:output_type -> determined.api.v1.ListRPsBoundToWorkspaceResponse + 458, // 458: determined.api.v1.Determined.ListWorkspacesBoundToRP:output_type -> determined.api.v1.ListWorkspacesBoundToRPResponse + 459, // 459: determined.api.v1.Determined.GetGenericTaskConfig:output_type -> determined.api.v1.GetGenericTaskConfigResponse + 460, // 460: determined.api.v1.Determined.KillGenericTask:output_type -> determined.api.v1.KillGenericTaskResponse + 461, // 461: determined.api.v1.Determined.PauseGenericTask:output_type -> determined.api.v1.PauseGenericTaskResponse + 462, // 462: determined.api.v1.Determined.UnpauseGenericTask:output_type -> determined.api.v1.UnpauseGenericTaskResponse + 463, // 463: determined.api.v1.Determined.SearchRuns:output_type -> determined.api.v1.SearchRunsResponse + 464, // 464: determined.api.v1.Determined.MoveRuns:output_type -> determined.api.v1.MoveRunsResponse + 465, // 465: determined.api.v1.Determined.KillRuns:output_type -> determined.api.v1.KillRunsResponse + 233, // [233:466] is the sub-list for method output_type + 0, // [0:233] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -3998,6 +4012,8 @@ type DeterminedClient interface { UnpinWorkspace(ctx context.Context, in *UnpinWorkspaceRequest, opts ...grpc.CallOption) (*UnpinWorkspaceResponse, error) // Add namespace binding to a workspace. ModifyWorkspaceNamespaceBinding(ctx context.Context, in *ModifyWorkspaceNamespaceBindingRequest, opts ...grpc.CallOption) (*ModifyWorkspaceNamespaceBindingResponse, error) + // Set resource quota for a worksoace. + SetResourceQuota(ctx context.Context, in *SetResourceQuotaRequest, opts ...grpc.CallOption) (*SetResourceQuotaResponse, error) // Get the requested project. GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*GetProjectResponse, error) // Get a list of columns for experiment list table. @@ -6106,6 +6122,15 @@ func (c *determinedClient) ModifyWorkspaceNamespaceBinding(ctx context.Context, return out, nil } +func (c *determinedClient) SetResourceQuota(ctx context.Context, in *SetResourceQuotaRequest, opts ...grpc.CallOption) (*SetResourceQuotaResponse, error) { + out := new(SetResourceQuotaResponse) + err := c.cc.Invoke(ctx, "/determined.api.v1.Determined/SetResourceQuota", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *determinedClient) GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*GetProjectResponse, error) { out := new(GetProjectResponse) err := c.cc.Invoke(ctx, "/determined.api.v1.Determined/GetProject", in, out, opts...) @@ -6934,6 +6959,8 @@ type DeterminedServer interface { UnpinWorkspace(context.Context, *UnpinWorkspaceRequest) (*UnpinWorkspaceResponse, error) // Add namespace binding to a workspace. ModifyWorkspaceNamespaceBinding(context.Context, *ModifyWorkspaceNamespaceBindingRequest) (*ModifyWorkspaceNamespaceBindingResponse, error) + // Set resource quota for a worksoace. + SetResourceQuota(context.Context, *SetResourceQuotaRequest) (*SetResourceQuotaResponse, error) // Get the requested project. GetProject(context.Context, *GetProjectRequest) (*GetProjectResponse, error) // Get a list of columns for experiment list table. @@ -7593,6 +7620,9 @@ func (*UnimplementedDeterminedServer) UnpinWorkspace(context.Context, *UnpinWork func (*UnimplementedDeterminedServer) ModifyWorkspaceNamespaceBinding(context.Context, *ModifyWorkspaceNamespaceBindingRequest) (*ModifyWorkspaceNamespaceBindingResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ModifyWorkspaceNamespaceBinding not implemented") } +func (*UnimplementedDeterminedServer) SetResourceQuota(context.Context, *SetResourceQuotaRequest) (*SetResourceQuotaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetResourceQuota not implemented") +} func (*UnimplementedDeterminedServer) GetProject(context.Context, *GetProjectRequest) (*GetProjectResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetProject not implemented") } @@ -11126,6 +11156,24 @@ func _Determined_ModifyWorkspaceNamespaceBinding_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _Determined_SetResourceQuota_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetResourceQuotaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DeterminedServer).SetResourceQuota(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/determined.api.v1.Determined/SetResourceQuota", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DeterminedServer).SetResourceQuota(ctx, req.(*SetResourceQuotaRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Determined_GetProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetProjectRequest) if err := dec(in); err != nil { @@ -12646,6 +12694,10 @@ var _Determined_serviceDesc = grpc.ServiceDesc{ MethodName: "ModifyWorkspaceNamespaceBinding", Handler: _Determined_ModifyWorkspaceNamespaceBinding_Handler, }, + { + MethodName: "SetResourceQuota", + Handler: _Determined_SetResourceQuota_Handler, + }, { MethodName: "GetProject", Handler: _Determined_GetProject_Handler, diff --git a/proto/pkg/apiv1/api.pb.gw.go b/proto/pkg/apiv1/api.pb.gw.go index e5f78acf77d..2b954920861 100644 --- a/proto/pkg/apiv1/api.pb.gw.go +++ b/proto/pkg/apiv1/api.pb.gw.go @@ -9549,6 +9549,76 @@ func local_request_Determined_ModifyWorkspaceNamespaceBinding_0(ctx context.Cont } +func request_Determined_SetResourceQuota_0(ctx context.Context, marshaler runtime.Marshaler, client DeterminedClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SetResourceQuotaRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Int32(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.SetResourceQuota(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Determined_SetResourceQuota_0(ctx context.Context, marshaler runtime.Marshaler, server DeterminedServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SetResourceQuotaRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Int32(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.SetResourceQuota(ctx, &protoReq) + return msg, metadata, err + +} + func request_Determined_GetProject_0(ctx context.Context, marshaler runtime.Marshaler, client DeterminedClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GetProjectRequest var metadata runtime.ServerMetadata @@ -15440,6 +15510,26 @@ func RegisterDeterminedHandlerServer(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_Determined_SetResourceQuota_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Determined_SetResourceQuota_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Determined_SetResourceQuota_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Determined_GetProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -20121,6 +20211,26 @@ func RegisterDeterminedHandlerClient(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_Determined_SetResourceQuota_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Determined_SetResourceQuota_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Determined_SetResourceQuota_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Determined_GetProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -21417,6 +21527,8 @@ var ( pattern_Determined_ModifyWorkspaceNamespaceBinding_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "workspaces", "id", "bind"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Determined_SetResourceQuota_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "workspaces", "id", "quota"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Determined_GetProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Determined_GetProjectColumns_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "projects", "id", "columns"}, "", runtime.AssumeColonVerbOpt(true))) @@ -21883,6 +21995,8 @@ var ( forward_Determined_ModifyWorkspaceNamespaceBinding_0 = runtime.ForwardResponseMessage + forward_Determined_SetResourceQuota_0 = runtime.ForwardResponseMessage + forward_Determined_GetProject_0 = runtime.ForwardResponseMessage forward_Determined_GetProjectColumns_0 = runtime.ForwardResponseMessage diff --git a/proto/pkg/apiv1/workspace.pb.go b/proto/pkg/apiv1/workspace.pb.go index e5afbbe5120..a5ff8bf3b1e 100644 --- a/proto/pkg/apiv1/workspace.pb.go +++ b/proto/pkg/apiv1/workspace.pb.go @@ -632,6 +632,8 @@ type PostWorkspaceRequest struct { NamespaceName *string `protobuf:"bytes,17,opt,name=namespace_name,json=namespaceName,proto3,oneof" json:"namespace_name,omitempty"` // Optional indication whether we auto-create a namespace. AutoCreateNamespace bool `protobuf:"varint,18,opt,name=auto_create_namespace,json=autoCreateNamespace,proto3" json:"auto_create_namespace,omitempty"` + // Optional quota to set on the bound namespace. + Quota *int32 `protobuf:"varint,19,opt,name=quota,proto3,oneof" json:"quota,omitempty"` } func (x *PostWorkspaceRequest) Reset() { @@ -722,6 +724,13 @@ func (x *PostWorkspaceRequest) GetAutoCreateNamespace() bool { return false } +func (x *PostWorkspaceRequest) GetQuota() int32 { + if x != nil && x.Quota != nil { + return *x.Quota + } + return 0 +} + // Response to PostWorkspaceRequest. type PostWorkspaceResponse struct { state protoimpl.MessageState @@ -1101,6 +1110,112 @@ func (x *ModifyWorkspaceNamespaceBindingResponse) GetName() string { return "" } +// Request to set the resource quota for a workspace. +type SetResourceQuotaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique name of the workspace. + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // The quota request limit to be put on the workspace. + Quota int32 `protobuf:"varint,2,opt,name=quota,proto3" json:"quota,omitempty"` + // Cluster containing the namespace. + ClusterName string `protobuf:"bytes,3,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` +} + +func (x *SetResourceQuotaRequest) Reset() { + *x = SetResourceQuotaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_determined_api_v1_workspace_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetResourceQuotaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetResourceQuotaRequest) ProtoMessage() {} + +func (x *SetResourceQuotaRequest) ProtoReflect() protoreflect.Message { + mi := &file_determined_api_v1_workspace_proto_msgTypes[14] + 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 SetResourceQuotaRequest.ProtoReflect.Descriptor instead. +func (*SetResourceQuotaRequest) Descriptor() ([]byte, []int) { + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{14} +} + +func (x *SetResourceQuotaRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SetResourceQuotaRequest) GetQuota() int32 { + if x != nil { + return x.Quota + } + return 0 +} + +func (x *SetResourceQuotaRequest) GetClusterName() string { + if x != nil { + return x.ClusterName + } + return "" +} + +// Response for setting the resource quota for a workspace. +type SetResourceQuotaResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetResourceQuotaResponse) Reset() { + *x = SetResourceQuotaResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_determined_api_v1_workspace_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetResourceQuotaResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetResourceQuotaResponse) ProtoMessage() {} + +func (x *SetResourceQuotaResponse) ProtoReflect() protoreflect.Message { + mi := &file_determined_api_v1_workspace_proto_msgTypes[15] + 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 SetResourceQuotaResponse.ProtoReflect.Descriptor instead. +func (*SetResourceQuotaResponse) Descriptor() ([]byte, []int) { + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{15} +} + // Request for archiving a workspace. type ArchiveWorkspaceRequest struct { state protoimpl.MessageState @@ -1114,7 +1229,7 @@ type ArchiveWorkspaceRequest struct { func (x *ArchiveWorkspaceRequest) Reset() { *x = ArchiveWorkspaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[14] + mi := &file_determined_api_v1_workspace_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1127,7 +1242,7 @@ func (x *ArchiveWorkspaceRequest) String() string { func (*ArchiveWorkspaceRequest) ProtoMessage() {} func (x *ArchiveWorkspaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[14] + mi := &file_determined_api_v1_workspace_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1140,7 +1255,7 @@ func (x *ArchiveWorkspaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchiveWorkspaceRequest.ProtoReflect.Descriptor instead. func (*ArchiveWorkspaceRequest) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{14} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{16} } func (x *ArchiveWorkspaceRequest) GetId() int32 { @@ -1160,7 +1275,7 @@ type ArchiveWorkspaceResponse struct { func (x *ArchiveWorkspaceResponse) Reset() { *x = ArchiveWorkspaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[15] + mi := &file_determined_api_v1_workspace_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1173,7 +1288,7 @@ func (x *ArchiveWorkspaceResponse) String() string { func (*ArchiveWorkspaceResponse) ProtoMessage() {} func (x *ArchiveWorkspaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[15] + mi := &file_determined_api_v1_workspace_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1186,7 +1301,7 @@ func (x *ArchiveWorkspaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchiveWorkspaceResponse.ProtoReflect.Descriptor instead. func (*ArchiveWorkspaceResponse) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{15} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{17} } // Request for un-archiving a workspace. @@ -1202,7 +1317,7 @@ type UnarchiveWorkspaceRequest struct { func (x *UnarchiveWorkspaceRequest) Reset() { *x = UnarchiveWorkspaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[16] + mi := &file_determined_api_v1_workspace_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1215,7 +1330,7 @@ func (x *UnarchiveWorkspaceRequest) String() string { func (*UnarchiveWorkspaceRequest) ProtoMessage() {} func (x *UnarchiveWorkspaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[16] + mi := &file_determined_api_v1_workspace_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1228,7 +1343,7 @@ func (x *UnarchiveWorkspaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnarchiveWorkspaceRequest.ProtoReflect.Descriptor instead. func (*UnarchiveWorkspaceRequest) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{16} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{18} } func (x *UnarchiveWorkspaceRequest) GetId() int32 { @@ -1248,7 +1363,7 @@ type UnarchiveWorkspaceResponse struct { func (x *UnarchiveWorkspaceResponse) Reset() { *x = UnarchiveWorkspaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[17] + mi := &file_determined_api_v1_workspace_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1261,7 +1376,7 @@ func (x *UnarchiveWorkspaceResponse) String() string { func (*UnarchiveWorkspaceResponse) ProtoMessage() {} func (x *UnarchiveWorkspaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[17] + mi := &file_determined_api_v1_workspace_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1274,7 +1389,7 @@ func (x *UnarchiveWorkspaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnarchiveWorkspaceResponse.ProtoReflect.Descriptor instead. func (*UnarchiveWorkspaceResponse) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{17} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{19} } // Request for pinning a workspace. @@ -1290,7 +1405,7 @@ type PinWorkspaceRequest struct { func (x *PinWorkspaceRequest) Reset() { *x = PinWorkspaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[18] + mi := &file_determined_api_v1_workspace_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1303,7 +1418,7 @@ func (x *PinWorkspaceRequest) String() string { func (*PinWorkspaceRequest) ProtoMessage() {} func (x *PinWorkspaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[18] + mi := &file_determined_api_v1_workspace_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1316,7 +1431,7 @@ func (x *PinWorkspaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PinWorkspaceRequest.ProtoReflect.Descriptor instead. func (*PinWorkspaceRequest) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{18} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{20} } func (x *PinWorkspaceRequest) GetId() int32 { @@ -1336,7 +1451,7 @@ type PinWorkspaceResponse struct { func (x *PinWorkspaceResponse) Reset() { *x = PinWorkspaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[19] + mi := &file_determined_api_v1_workspace_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1349,7 +1464,7 @@ func (x *PinWorkspaceResponse) String() string { func (*PinWorkspaceResponse) ProtoMessage() {} func (x *PinWorkspaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[19] + mi := &file_determined_api_v1_workspace_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1362,7 +1477,7 @@ func (x *PinWorkspaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PinWorkspaceResponse.ProtoReflect.Descriptor instead. func (*PinWorkspaceResponse) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{19} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{21} } // Request for un-pinning a workspace. @@ -1378,7 +1493,7 @@ type UnpinWorkspaceRequest struct { func (x *UnpinWorkspaceRequest) Reset() { *x = UnpinWorkspaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[20] + mi := &file_determined_api_v1_workspace_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1391,7 +1506,7 @@ func (x *UnpinWorkspaceRequest) String() string { func (*UnpinWorkspaceRequest) ProtoMessage() {} func (x *UnpinWorkspaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[20] + mi := &file_determined_api_v1_workspace_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1404,7 +1519,7 @@ func (x *UnpinWorkspaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnpinWorkspaceRequest.ProtoReflect.Descriptor instead. func (*UnpinWorkspaceRequest) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{20} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{22} } func (x *UnpinWorkspaceRequest) GetId() int32 { @@ -1424,7 +1539,7 @@ type UnpinWorkspaceResponse struct { func (x *UnpinWorkspaceResponse) Reset() { *x = UnpinWorkspaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[21] + mi := &file_determined_api_v1_workspace_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1437,7 +1552,7 @@ func (x *UnpinWorkspaceResponse) String() string { func (*UnpinWorkspaceResponse) ProtoMessage() {} func (x *UnpinWorkspaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[21] + mi := &file_determined_api_v1_workspace_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1450,7 +1565,7 @@ func (x *UnpinWorkspaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnpinWorkspaceResponse.ProtoReflect.Descriptor instead. func (*UnpinWorkspaceResponse) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{21} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{23} } // List the resource pools bound to a workspace. @@ -1470,7 +1585,7 @@ type ListRPsBoundToWorkspaceRequest struct { func (x *ListRPsBoundToWorkspaceRequest) Reset() { *x = ListRPsBoundToWorkspaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[22] + mi := &file_determined_api_v1_workspace_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1483,7 +1598,7 @@ func (x *ListRPsBoundToWorkspaceRequest) String() string { func (*ListRPsBoundToWorkspaceRequest) ProtoMessage() {} func (x *ListRPsBoundToWorkspaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[22] + mi := &file_determined_api_v1_workspace_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1496,7 +1611,7 @@ func (x *ListRPsBoundToWorkspaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRPsBoundToWorkspaceRequest.ProtoReflect.Descriptor instead. func (*ListRPsBoundToWorkspaceRequest) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{22} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{24} } func (x *ListRPsBoundToWorkspaceRequest) GetWorkspaceId() int32 { @@ -1535,7 +1650,7 @@ type ListRPsBoundToWorkspaceResponse struct { func (x *ListRPsBoundToWorkspaceResponse) Reset() { *x = ListRPsBoundToWorkspaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_determined_api_v1_workspace_proto_msgTypes[23] + mi := &file_determined_api_v1_workspace_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1548,7 +1663,7 @@ func (x *ListRPsBoundToWorkspaceResponse) String() string { func (*ListRPsBoundToWorkspaceResponse) ProtoMessage() {} func (x *ListRPsBoundToWorkspaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_determined_api_v1_workspace_proto_msgTypes[23] + mi := &file_determined_api_v1_workspace_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1561,7 +1676,7 @@ func (x *ListRPsBoundToWorkspaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRPsBoundToWorkspaceResponse.ProtoReflect.Descriptor instead. func (*ListRPsBoundToWorkspaceResponse) Descriptor() ([]byte, []int) { - return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{23} + return file_determined_api_v1_workspace_proto_rawDescGZIP(), []int{25} } func (x *ListRPsBoundToWorkspaceResponse) GetResourcePools() []string { @@ -1697,7 +1812,7 @@ var file_determined_api_v1_workspace_proto_rawDesc = []byte{ 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x1f, 0x92, 0x41, 0x1c, 0x0a, 0x1a, 0xd2, 0x01, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0xd2, 0x01, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x04, 0x0a, 0x14, 0x50, 0x6f, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x50, 0x6f, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, @@ -1725,104 +1840,115 @@ var file_determined_api_v1_workspace_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x0c, 0x92, 0x41, 0x09, 0x0a, 0x07, 0xd2, 0x01, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x15, - 0x50, 0x6f, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x11, 0x92, 0x41, 0x0e, 0x0a, 0x0c, 0xd2, 0x01, - 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x15, 0x50, - 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x16, 0x92, 0x41, 0x13, - 0x0a, 0x11, 0xd2, 0x01, 0x02, 0x69, 0x64, 0xd2, 0x01, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, - 0x11, 0x92, 0x41, 0x0e, 0x0a, 0x0c, 0xd2, 0x01, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x22, 0x34, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0a, 0x92, 0x41, - 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x3a, 0x11, 0x92, 0x41, 0x0e, 0x0a, 0x0c, 0xd2, 0x01, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x26, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x57, - 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, - 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x4b, 0x0a, 0x27, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x3a, 0x0c, 0x92, 0x41, 0x09, 0x0a, 0x07, 0xd2, 0x01, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x35, - 0x0a, 0x17, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x3a, 0x0c, 0x92, 0x41, 0x09, 0x0a, 0x07, 0xd2, 0x01, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x22, 0x6c, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x11, 0x92, 0x41, + 0x0e, 0x0a, 0x0c, 0xd2, 0x01, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0x86, 0x01, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, - 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x37, 0x0a, 0x19, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0a, - 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x6e, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x50, 0x69, 0x6e, 0x57, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x3a, 0x16, 0x92, 0x41, 0x13, 0x0a, 0x11, 0xd2, 0x01, 0x02, 0x69, 0x64, 0xd2, 0x01, 0x09, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x63, + 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x3a, 0x11, 0x92, 0x41, 0x0e, 0x0a, 0x0c, 0xd2, 0x01, 0x09, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x64, 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, + 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x3a, 0x11, 0x92, 0x41, 0x0e, 0x0a, 0x0c, 0xd2, 0x01, 0x09, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x26, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, + 0x02, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4b, 0x0a, 0x27, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x0c, 0x92, 0x41, 0x09, 0x0a, 0x07, 0xd2, 0x01, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x71, + 0x75, 0x6f, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, + 0x02, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x35, 0x0a, 0x17, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, + 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x37, 0x0a, 0x19, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, - 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x50, + 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x55, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x50, 0x69, 0x6e, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x3a, 0x0a, 0x92, 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, + 0x50, 0x69, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x15, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0a, 0x92, + 0x41, 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x15, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0a, 0x92, 0x41, - 0x07, 0x0a, 0x05, 0xd2, 0x01, 0x02, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x55, 0x6e, 0x70, 0x69, - 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, 0x73, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x1c, 0x92, 0x41, 0x19, 0x0a, 0x17, 0xd2, 0x01, 0x0c, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0xd2, 0x01, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, 0x73, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, - 0x3d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 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, 0x42, 0x35, - 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x61, 0x69, 0x2f, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, - 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, 0x73, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x1c, 0x92, 0x41, 0x19, 0x0a, 0x17, 0xd2, 0x01, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0xd2, 0x01, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x50, + 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, + 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 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, 0x42, + 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x61, 0x69, 0x2f, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1838,7 +1964,7 @@ func file_determined_api_v1_workspace_proto_rawDescGZIP() []byte { } var file_determined_api_v1_workspace_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_determined_api_v1_workspace_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_determined_api_v1_workspace_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_determined_api_v1_workspace_proto_goTypes = []interface{}{ (GetWorkspaceProjectsRequest_SortBy)(0), // 0: determined.api.v1.GetWorkspaceProjectsRequest.SortBy (GetWorkspacesRequest_SortBy)(0), // 1: determined.api.v1.GetWorkspacesRequest.SortBy @@ -1856,44 +1982,46 @@ var file_determined_api_v1_workspace_proto_goTypes = []interface{}{ (*DeleteWorkspaceResponse)(nil), // 13: determined.api.v1.DeleteWorkspaceResponse (*ModifyWorkspaceNamespaceBindingRequest)(nil), // 14: determined.api.v1.ModifyWorkspaceNamespaceBindingRequest (*ModifyWorkspaceNamespaceBindingResponse)(nil), // 15: determined.api.v1.ModifyWorkspaceNamespaceBindingResponse - (*ArchiveWorkspaceRequest)(nil), // 16: determined.api.v1.ArchiveWorkspaceRequest - (*ArchiveWorkspaceResponse)(nil), // 17: determined.api.v1.ArchiveWorkspaceResponse - (*UnarchiveWorkspaceRequest)(nil), // 18: determined.api.v1.UnarchiveWorkspaceRequest - (*UnarchiveWorkspaceResponse)(nil), // 19: determined.api.v1.UnarchiveWorkspaceResponse - (*PinWorkspaceRequest)(nil), // 20: determined.api.v1.PinWorkspaceRequest - (*PinWorkspaceResponse)(nil), // 21: determined.api.v1.PinWorkspaceResponse - (*UnpinWorkspaceRequest)(nil), // 22: determined.api.v1.UnpinWorkspaceRequest - (*UnpinWorkspaceResponse)(nil), // 23: determined.api.v1.UnpinWorkspaceResponse - (*ListRPsBoundToWorkspaceRequest)(nil), // 24: determined.api.v1.ListRPsBoundToWorkspaceRequest - (*ListRPsBoundToWorkspaceResponse)(nil), // 25: determined.api.v1.ListRPsBoundToWorkspaceResponse - (*workspacev1.Workspace)(nil), // 26: determined.workspace.v1.Workspace - (OrderBy)(0), // 27: determined.api.v1.OrderBy - (*wrappers.BoolValue)(nil), // 28: google.protobuf.BoolValue - (*projectv1.Project)(nil), // 29: determined.project.v1.Project - (*Pagination)(nil), // 30: determined.api.v1.Pagination - (*userv1.AgentUserGroup)(nil), // 31: determined.user.v1.AgentUserGroup - (*_struct.Struct)(nil), // 32: google.protobuf.Struct - (*workspacev1.PatchWorkspace)(nil), // 33: determined.workspace.v1.PatchWorkspace + (*SetResourceQuotaRequest)(nil), // 16: determined.api.v1.SetResourceQuotaRequest + (*SetResourceQuotaResponse)(nil), // 17: determined.api.v1.SetResourceQuotaResponse + (*ArchiveWorkspaceRequest)(nil), // 18: determined.api.v1.ArchiveWorkspaceRequest + (*ArchiveWorkspaceResponse)(nil), // 19: determined.api.v1.ArchiveWorkspaceResponse + (*UnarchiveWorkspaceRequest)(nil), // 20: determined.api.v1.UnarchiveWorkspaceRequest + (*UnarchiveWorkspaceResponse)(nil), // 21: determined.api.v1.UnarchiveWorkspaceResponse + (*PinWorkspaceRequest)(nil), // 22: determined.api.v1.PinWorkspaceRequest + (*PinWorkspaceResponse)(nil), // 23: determined.api.v1.PinWorkspaceResponse + (*UnpinWorkspaceRequest)(nil), // 24: determined.api.v1.UnpinWorkspaceRequest + (*UnpinWorkspaceResponse)(nil), // 25: determined.api.v1.UnpinWorkspaceResponse + (*ListRPsBoundToWorkspaceRequest)(nil), // 26: determined.api.v1.ListRPsBoundToWorkspaceRequest + (*ListRPsBoundToWorkspaceResponse)(nil), // 27: determined.api.v1.ListRPsBoundToWorkspaceResponse + (*workspacev1.Workspace)(nil), // 28: determined.workspace.v1.Workspace + (OrderBy)(0), // 29: determined.api.v1.OrderBy + (*wrappers.BoolValue)(nil), // 30: google.protobuf.BoolValue + (*projectv1.Project)(nil), // 31: determined.project.v1.Project + (*Pagination)(nil), // 32: determined.api.v1.Pagination + (*userv1.AgentUserGroup)(nil), // 33: determined.user.v1.AgentUserGroup + (*_struct.Struct)(nil), // 34: google.protobuf.Struct + (*workspacev1.PatchWorkspace)(nil), // 35: determined.workspace.v1.PatchWorkspace } var file_determined_api_v1_workspace_proto_depIdxs = []int32{ - 26, // 0: determined.api.v1.GetWorkspaceResponse.workspace:type_name -> determined.workspace.v1.Workspace + 28, // 0: determined.api.v1.GetWorkspaceResponse.workspace:type_name -> determined.workspace.v1.Workspace 0, // 1: determined.api.v1.GetWorkspaceProjectsRequest.sort_by:type_name -> determined.api.v1.GetWorkspaceProjectsRequest.SortBy - 27, // 2: determined.api.v1.GetWorkspaceProjectsRequest.order_by:type_name -> determined.api.v1.OrderBy - 28, // 3: determined.api.v1.GetWorkspaceProjectsRequest.archived:type_name -> google.protobuf.BoolValue - 29, // 4: determined.api.v1.GetWorkspaceProjectsResponse.projects:type_name -> determined.project.v1.Project - 30, // 5: determined.api.v1.GetWorkspaceProjectsResponse.pagination:type_name -> determined.api.v1.Pagination + 29, // 2: determined.api.v1.GetWorkspaceProjectsRequest.order_by:type_name -> determined.api.v1.OrderBy + 30, // 3: determined.api.v1.GetWorkspaceProjectsRequest.archived:type_name -> google.protobuf.BoolValue + 31, // 4: determined.api.v1.GetWorkspaceProjectsResponse.projects:type_name -> determined.project.v1.Project + 32, // 5: determined.api.v1.GetWorkspaceProjectsResponse.pagination:type_name -> determined.api.v1.Pagination 1, // 6: determined.api.v1.GetWorkspacesRequest.sort_by:type_name -> determined.api.v1.GetWorkspacesRequest.SortBy - 27, // 7: determined.api.v1.GetWorkspacesRequest.order_by:type_name -> determined.api.v1.OrderBy - 28, // 8: determined.api.v1.GetWorkspacesRequest.archived:type_name -> google.protobuf.BoolValue - 28, // 9: determined.api.v1.GetWorkspacesRequest.pinned:type_name -> google.protobuf.BoolValue - 26, // 10: determined.api.v1.GetWorkspacesResponse.workspaces:type_name -> determined.workspace.v1.Workspace - 30, // 11: determined.api.v1.GetWorkspacesResponse.pagination:type_name -> determined.api.v1.Pagination - 31, // 12: determined.api.v1.PostWorkspaceRequest.agent_user_group:type_name -> determined.user.v1.AgentUserGroup - 32, // 13: determined.api.v1.PostWorkspaceRequest.checkpoint_storage_config:type_name -> google.protobuf.Struct - 26, // 14: determined.api.v1.PostWorkspaceResponse.workspace:type_name -> determined.workspace.v1.Workspace - 33, // 15: determined.api.v1.PatchWorkspaceRequest.workspace:type_name -> determined.workspace.v1.PatchWorkspace - 26, // 16: determined.api.v1.PatchWorkspaceResponse.workspace:type_name -> determined.workspace.v1.Workspace - 30, // 17: determined.api.v1.ListRPsBoundToWorkspaceResponse.pagination:type_name -> determined.api.v1.Pagination + 29, // 7: determined.api.v1.GetWorkspacesRequest.order_by:type_name -> determined.api.v1.OrderBy + 30, // 8: determined.api.v1.GetWorkspacesRequest.archived:type_name -> google.protobuf.BoolValue + 30, // 9: determined.api.v1.GetWorkspacesRequest.pinned:type_name -> google.protobuf.BoolValue + 28, // 10: determined.api.v1.GetWorkspacesResponse.workspaces:type_name -> determined.workspace.v1.Workspace + 32, // 11: determined.api.v1.GetWorkspacesResponse.pagination:type_name -> determined.api.v1.Pagination + 33, // 12: determined.api.v1.PostWorkspaceRequest.agent_user_group:type_name -> determined.user.v1.AgentUserGroup + 34, // 13: determined.api.v1.PostWorkspaceRequest.checkpoint_storage_config:type_name -> google.protobuf.Struct + 28, // 14: determined.api.v1.PostWorkspaceResponse.workspace:type_name -> determined.workspace.v1.Workspace + 35, // 15: determined.api.v1.PatchWorkspaceRequest.workspace:type_name -> determined.workspace.v1.PatchWorkspace + 28, // 16: determined.api.v1.PatchWorkspaceResponse.workspace:type_name -> determined.workspace.v1.Workspace + 32, // 17: determined.api.v1.ListRPsBoundToWorkspaceResponse.pagination:type_name -> determined.api.v1.Pagination 18, // [18:18] is the sub-list for method output_type 18, // [18:18] is the sub-list for method input_type 18, // [18:18] is the sub-list for extension type_name @@ -2077,7 +2205,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArchiveWorkspaceRequest); i { + switch v := v.(*SetResourceQuotaRequest); i { case 0: return &v.state case 1: @@ -2089,7 +2217,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArchiveWorkspaceResponse); i { + switch v := v.(*SetResourceQuotaResponse); i { case 0: return &v.state case 1: @@ -2101,7 +2229,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnarchiveWorkspaceRequest); i { + switch v := v.(*ArchiveWorkspaceRequest); i { case 0: return &v.state case 1: @@ -2113,7 +2241,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnarchiveWorkspaceResponse); i { + switch v := v.(*ArchiveWorkspaceResponse); i { case 0: return &v.state case 1: @@ -2125,7 +2253,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PinWorkspaceRequest); i { + switch v := v.(*UnarchiveWorkspaceRequest); i { case 0: return &v.state case 1: @@ -2137,7 +2265,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PinWorkspaceResponse); i { + switch v := v.(*UnarchiveWorkspaceResponse); i { case 0: return &v.state case 1: @@ -2149,7 +2277,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnpinWorkspaceRequest); i { + switch v := v.(*PinWorkspaceRequest); i { case 0: return &v.state case 1: @@ -2161,7 +2289,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnpinWorkspaceResponse); i { + switch v := v.(*PinWorkspaceResponse); i { case 0: return &v.state case 1: @@ -2173,7 +2301,7 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRPsBoundToWorkspaceRequest); i { + switch v := v.(*UnpinWorkspaceRequest); i { case 0: return &v.state case 1: @@ -2185,6 +2313,30 @@ func file_determined_api_v1_workspace_proto_init() { } } file_determined_api_v1_workspace_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnpinWorkspaceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_determined_api_v1_workspace_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRPsBoundToWorkspaceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_determined_api_v1_workspace_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRPsBoundToWorkspaceResponse); i { case 0: return &v.state @@ -2205,7 +2357,7 @@ func file_determined_api_v1_workspace_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_determined_api_v1_workspace_proto_rawDesc, NumEnums: 2, - NumMessages: 24, + NumMessages: 26, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/src/determined/api/v1/api.proto b/proto/src/determined/api/v1/api.proto index 954ea140dd9..635e80e56c7 100644 --- a/proto/src/determined/api/v1/api.proto +++ b/proto/src/determined/api/v1/api.proto @@ -2053,6 +2053,18 @@ service Determined { }; } + + // Set resource quota for a worksoace. + rpc SetResourceQuota(SetResourceQuotaRequest) returns (SetResourceQuotaResponse) { + option (google.api.http) = { + post: "/api/v1/workspaces/{id}/quota", + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + tags: "Workspaces" + }; + } + // Get the requested project. rpc GetProject(GetProjectRequest) returns (GetProjectResponse) { option (google.api.http) = { diff --git a/proto/src/determined/api/v1/workspace.proto b/proto/src/determined/api/v1/workspace.proto index b4e011167c0..01ae55f72f4 100644 --- a/proto/src/determined/api/v1/workspace.proto +++ b/proto/src/determined/api/v1/workspace.proto @@ -162,6 +162,8 @@ message PostWorkspaceRequest { optional string namespace_name = 17; // Optional indication whether we auto-create a namespace. bool auto_create_namespace = 18; + // Optional quota to set on the bound namespace. + optional int32 quota = 19; } // Response to PostWorkspaceRequest. @@ -242,6 +244,23 @@ message ModifyWorkspaceNamespaceBindingResponse { string name = 1; } +// Request to set the resource quota for a workspace. +message SetResourceQuotaRequest { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: { required: [ "id" ] } + }; + + // The unique name of the workspace. + int32 id = 1; + // The quota request limit to be put on the workspace. + int32 quota = 2; + // Cluster containing the namespace. + string cluster_name = 3; +} + +// Response for setting the resource quota for a workspace. +message SetResourceQuotaResponse {} + // Request for archiving a workspace. message ArchiveWorkspaceRequest { option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { diff --git a/webui/react/src/services/api-ts-sdk/api.ts b/webui/react/src/services/api-ts-sdk/api.ts index 586f8e5c910..657338c0d0d 100644 --- a/webui/react/src/services/api-ts-sdk/api.ts +++ b/webui/react/src/services/api-ts-sdk/api.ts @@ -8024,6 +8024,12 @@ export interface V1PostWorkspaceRequest { * @memberof V1PostWorkspaceRequest */ autoCreateNamespace?: boolean; + /** + * Optional quota to set on the bound namespace. + * @type {number} + * @memberof V1PostWorkspaceRequest + */ + quota?: number; } /** * Response to PostWorkspaceRequest. @@ -9926,6 +9932,38 @@ export interface V1SetNotebookPriorityResponse { */ notebook?: V1Notebook; } +/** + * Request to set the resource quota for a workspace. + * @export + * @interface V1SetResourceQuotaRequest + */ +export interface V1SetResourceQuotaRequest { + /** + * The unique name of the workspace. + * @type {number} + * @memberof V1SetResourceQuotaRequest + */ + id: number; + /** + * The quota request limit to be put on the workspace. + * @type {number} + * @memberof V1SetResourceQuotaRequest + */ + quota?: number; + /** + * Cluster containing the namespace. + * @type {string} + * @memberof V1SetResourceQuotaRequest + */ + clusterName?: string; +} +/** + * Response for setting the resource quota for a workspace. + * @export + * @interface V1SetResourceQuotaResponse + */ +export interface V1SetResourceQuotaResponse { +} /** * SetSearcherProgressOperation informs the master of the progress of the custom searcher. * @export @@ -33601,6 +33639,50 @@ export const WorkspacesApiFetchParamCreator = function (configuration?: Configur options: localVarRequestOptions, }; }, + /** + * + * @summary Set resource quota for a worksoace. + * @param {number} id The unique name of the workspace. + * @param {V1SetResourceQuotaRequest} body + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + setResourceQuota(id: number, body: V1SetResourceQuotaRequest, options: any = {}): FetchArgs { + // verify required parameter 'id' is not null or undefined + if (id === null || id === undefined) { + throw new RequiredError('id','Required parameter id was null or undefined when calling setResourceQuota.'); + } + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError('body','Required parameter body was null or undefined when calling setResourceQuota.'); + } + const localVarPath = `/api/v1/workspaces/{id}/quota` + .replace(`{${"id"}}`, encodeURIComponent(String(id))); + const localVarUrlObj = new URL(localVarPath, BASE_PATH); + const localVarRequestOptions = { method: 'POST', ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication BearerToken required + if (configuration && configuration.apiKey) { + const localVarApiKeyValue = typeof configuration.apiKey === 'function' + ? configuration.apiKey("Authorization") + : configuration.apiKey; + localVarHeaderParameter["Authorization"] = localVarApiKeyValue; + } + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + objToSearchParams(localVarQueryParameter, localVarUrlObj.searchParams); + objToSearchParams(options.query || {}, localVarUrlObj.searchParams); + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...options.headers }; + localVarRequestOptions.body = JSON.stringify(body) + + return { + url: `${localVarUrlObj.pathname}${localVarUrlObj.search}`, + options: localVarRequestOptions, + }; + }, /** * * @summary Unarchive a workspace. @@ -33893,6 +33975,26 @@ export const WorkspacesApiFp = function (configuration?: Configuration) { }); }; }, + /** + * + * @summary Set resource quota for a worksoace. + * @param {number} id The unique name of the workspace. + * @param {V1SetResourceQuotaRequest} body + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + setResourceQuota(id: number, body: V1SetResourceQuotaRequest, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = WorkspacesApiFetchParamCreator(configuration).setResourceQuota(id, body, options); + return (fetch: FetchAPI = window.fetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, /** * * @summary Unarchive a workspace. @@ -34061,6 +34163,17 @@ export const WorkspacesApiFactory = function (configuration?: Configuration, fet postWorkspace(body: V1PostWorkspaceRequest, options?: any) { return WorkspacesApiFp(configuration).postWorkspace(body, options)(fetch, basePath); }, + /** + * + * @summary Set resource quota for a worksoace. + * @param {number} id The unique name of the workspace. + * @param {V1SetResourceQuotaRequest} body + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + setResourceQuota(id: number, body: V1SetResourceQuotaRequest, options?: any) { + return WorkspacesApiFp(configuration).setResourceQuota(id, body, options)(fetch, basePath); + }, /** * * @summary Unarchive a workspace. @@ -34232,6 +34345,19 @@ export class WorkspacesApi extends BaseAPI { return WorkspacesApiFp(this.configuration).postWorkspace(body, options)(this.fetch, this.basePath) } + /** + * + * @summary Set resource quota for a worksoace. + * @param {number} id The unique name of the workspace. + * @param {V1SetResourceQuotaRequest} body + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorkspacesApi + */ + public setResourceQuota(id: number, body: V1SetResourceQuotaRequest, options?: any) { + return WorkspacesApiFp(this.configuration).setResourceQuota(id, body, options)(this.fetch, this.basePath) + } + /** * * @summary Unarchive a workspace.