diff --git a/Makefile b/Makefile index 83204e496b..e43fc77622 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ NAME = "github.com/goto/optimus" LAST_COMMIT := $(shell git rev-parse --short HEAD) LAST_TAG := "$(shell git rev-list --tags --max-count=1)" OPMS_VERSION := "$(shell git describe --tags ${LAST_TAG})-next" -PROTON_COMMIT := "8ddad14e124639b9921e03c92775629df7cb7d80" +PROTON_COMMIT := "6c23cfa641ff762cb1082abc2a6edb89eccde42c" .PHONY: build test test-ci generate-proto unit-test-ci integration-test vet coverage clean install lint diff --git a/client/jsonschema/job.json b/client/jsonschema/job.json index f057a79755..b50f9e39d0 100644 --- a/client/jsonschema/job.json +++ b/client/jsonschema/job.json @@ -211,6 +211,18 @@ }, "airflow": { "$ref": "#/$defs/JobSpecMetadataAirflow" + }, + "kubernetes": { + "$ref": "#/$defs/JobSpecMetadataKubernetes" + } + }, + "additionalProperties": false, + "type": "object" + }, + "JobSpecMetadataKubernetes": { + "properties": { + "service_account": { + "type": "string" } }, "additionalProperties": false, diff --git a/client/local/model/job_spec.go b/client/local/model/job_spec.go index 74e9789394..68578c31db 100644 --- a/client/local/model/job_spec.go +++ b/client/local/model/job_spec.go @@ -179,8 +179,9 @@ type JobSpecDependencyHTTP struct { } type JobSpecMetadata struct { - Resource *JobSpecMetadataResource `yaml:"resource,omitempty"` - Airflow *JobSpecMetadataAirflow `yaml:"airflow,omitempty"` + Resource *JobSpecMetadataResource `yaml:"resource,omitempty"` + Airflow *JobSpecMetadataAirflow `yaml:"airflow,omitempty"` + Kubernetes *JobSpecMetadataKubernetes `yaml:"kubernetes,omitempty"` } type JobSpecMetadataResource struct { @@ -198,6 +199,10 @@ type JobSpecMetadataAirflow struct { Queue string `yaml:"queue" json:"queue"` } +type JobSpecMetadataKubernetes struct { + ServiceAccount string `yaml:"service_account,omitempty"` +} + func (j *JobSpec) ToProto() *pb.JobSpecification { taskConfig := j.getProtoJobConfigItems() js := &pb.JobSpecification{ @@ -263,9 +268,16 @@ func (j *JobSpec) getProtoJobMetadata() *pb.JobMetadata { Queue: j.Metadata.Airflow.Queue, } } + var kubernetes *pb.JobSpecMetadataKubernetes + if j.Metadata.Kubernetes != nil { + kubernetes = &pb.JobSpecMetadataKubernetes{ + ServiceAccount: j.Metadata.Kubernetes.ServiceAccount, + } + } return &pb.JobMetadata{ - Resource: resource, - Airflow: airflow, + Resource: resource, + Airflow: airflow, + Kubernetes: kubernetes, } } @@ -635,9 +647,20 @@ func toJobSpecMetadata(protoMetadata *pb.JobMetadata) *JobSpecMetadata { Queue: protoMetadata.Airflow.Queue, } } + + var metadataKubernetesSpec *JobSpecMetadataKubernetes + if protoMetadata.Kubernetes != nil { + if protoMetadata.Kubernetes.ServiceAccount != "" { + metadataKubernetesSpec = &JobSpecMetadataKubernetes{ + ServiceAccount: protoMetadata.Kubernetes.ServiceAccount, + } + } + } + metadataSpec = &JobSpecMetadata{ - Resource: metadataResourceSpec, - Airflow: metadataAirflowSpec, + Resource: metadataResourceSpec, + Airflow: metadataAirflowSpec, + Kubernetes: metadataKubernetesSpec, } } return metadataSpec diff --git a/client/local/model/job_spec_test.go b/client/local/model/job_spec_test.go index 725209fe5d..b71df5f12e 100644 --- a/client/local/model/job_spec_test.go +++ b/client/local/model/job_spec_test.go @@ -171,6 +171,9 @@ func (*JobSpecTestSuite) getCompleteJobSpec() model.JobSpec { Pool: "poolA", Queue: "queueA", }, + Kubernetes: &model.JobSpecMetadataKubernetes{ + ServiceAccount: "serviceAccountA", + }, }, } } @@ -273,6 +276,9 @@ func (*JobSpecTestSuite) getCompleteJobSpecProto() *pb.JobSpecification { Pool: "poolA", Queue: "queueA", }, + Kubernetes: &pb.JobSpecMetadataKubernetes{ + ServiceAccount: "serviceAccountA", + }, }, } } diff --git a/core/job/handler/v1beta1/job_adapter.go b/core/job/handler/v1beta1/job_adapter.go index 5c02e3e07c..9c8ee40468 100644 --- a/core/job/handler/v1beta1/job_adapter.go +++ b/core/job/handler/v1beta1/job_adapter.go @@ -505,6 +505,10 @@ func toMetadata(jobMetadata *pb.JobMetadata) (*job.Metadata, error) { } metadataBuilder = metadataBuilder.WithScheduler(schedulerMetadata) } + if jobMetadata.Kubernetes != nil { + metadataKubernetes := job.NewKubernetesMetadata(jobMetadata.Kubernetes.ServiceAccount) + metadataBuilder = metadataBuilder.WithKubernetes(metadataKubernetes) + } metadata, err := metadataBuilder.Build() if err != nil { return nil, err @@ -543,9 +547,16 @@ func fromMetadata(metadata *job.Metadata) *pb.JobMetadata { metadataSchedulerProto.Queue = metadata.Scheduler()["queue"] } } + + metadataKubernetesProto := &pb.JobSpecMetadataKubernetes{} + if metadata.Kubernetes() != nil { + metadataKubernetesProto.ServiceAccount = metadata.Kubernetes().ServiceAccount() + } + return &pb.JobMetadata{ - Resource: metadataResourceProto, - Airflow: metadataSchedulerProto, + Resource: metadataResourceProto, + Airflow: metadataSchedulerProto, + Kubernetes: metadataKubernetesProto, } } diff --git a/core/job/handler/v1beta1/job_test.go b/core/job/handler/v1beta1/job_test.go index ff29ef42ed..2346f8815f 100644 --- a/core/job/handler/v1beta1/job_test.go +++ b/core/job/handler/v1beta1/job_test.go @@ -65,15 +65,18 @@ func TestNewJobHandler(t *testing.T) { Request: &pb.JobSpecMetadataResourceConfig{Cpu: "1", Memory: "8"}, Limit: &pb.JobSpecMetadataResourceConfig{Cpu: ".5", Memory: "4"}, }, - Airflow: &pb.JobSpecMetadataAirflow{Pool: "100", Queue: "50"}, + Airflow: &pb.JobSpecMetadataAirflow{Pool: "100", Queue: "50"}, + Kubernetes: &pb.JobSpecMetadataKubernetes{ServiceAccount: "sample-service-account"}, } resourceRequestConfig := job.NewMetadataResourceConfig("1", "8") resourceLimitConfig := job.NewMetadataResourceConfig(".5", "4") resourceMetadata := job.NewResourceMetadata(resourceRequestConfig, resourceLimitConfig) + kubernetesMetadata := job.NewKubernetesMetadata("sample-service-account") metadataSpec, _ := job.NewMetadataBuilder(). WithResource(resourceMetadata). WithScheduler(map[string]string{"pool": "100", "queue": "50"}). + WithKubernetes(kubernetesMetadata). Build() log := log.NewNoop() diff --git a/core/job/spec.go b/core/job/spec.go index df3b91b995..aa8de8505e 100644 --- a/core/job/spec.go +++ b/core/job/spec.go @@ -508,9 +508,22 @@ func NewResourceMetadata(request, limit *MetadataResourceConfig) *MetadataResour return &MetadataResource{request: request, limit: limit} } +type MetadataKubernetes struct { + serviceAccount string +} + +func (m MetadataKubernetes) ServiceAccount() string { + return m.serviceAccount +} + +func NewKubernetesMetadata(serviceAccount string) *MetadataKubernetes { + return &MetadataKubernetes{serviceAccount: serviceAccount} +} + type Metadata struct { - resource *MetadataResource - scheduler map[string]string + resource *MetadataResource + scheduler map[string]string + kubernetes *MetadataKubernetes } func (m Metadata) Resource() *MetadataResource { @@ -521,6 +534,10 @@ func (m Metadata) Scheduler() map[string]string { return m.scheduler } +func (m Metadata) Kubernetes() *MetadataKubernetes { + return m.kubernetes +} + func (m Metadata) validate() error { return validateMap(m.scheduler) } @@ -552,6 +569,11 @@ func (m *MetadataBuilder) WithScheduler(scheduler map[string]string) *MetadataBu return m } +func (m *MetadataBuilder) WithKubernetes(kubernetes *MetadataKubernetes) *MetadataBuilder { + m.metadata.kubernetes = kubernetes + return m +} + type Hook struct { name string version string diff --git a/core/scheduler/job.go b/core/scheduler/job.go index b489c54028..45c1be5471 100644 --- a/core/scheduler/job.go +++ b/core/scheduler/job.go @@ -401,8 +401,9 @@ type Webhook struct { } type RuntimeConfig struct { - Resource *Resource - Scheduler map[string]string + Resource *Resource + Scheduler map[string]string + Kubernetes *Kubernetes } type Resource struct { @@ -415,6 +416,10 @@ type ResourceConfig struct { Memory string } +type Kubernetes struct { + ServiceAccount string +} + type Upstreams struct { HTTP []*HTTPUpstreams UpstreamJobs []*JobUpstream diff --git a/ext/scheduler/airflow/dag/compiler_test.go b/ext/scheduler/airflow/dag/compiler_test.go index 6faef6a1c4..c755b4348b 100644 --- a/ext/scheduler/airflow/dag/compiler_test.go +++ b/ext/scheduler/airflow/dag/compiler_test.go @@ -196,6 +196,9 @@ func setupJobDetails(tnnt tenant.Tenant) *scheduler.JobWithDetails { Memory: "2G", }, }, + Kubernetes: &scheduler.Kubernetes{ + ServiceAccount: "sample-service-account", + }, } tnnt1, _ := tenant.NewTenant("project", "namespace") diff --git a/ext/scheduler/airflow/dag/expected_dag.2.1.py b/ext/scheduler/airflow/dag/expected_dag.2.1.py index 00c20dd925..d9957c6d98 100644 --- a/ext/scheduler/airflow/dag/expected_dag.2.1.py +++ b/ext/scheduler/airflow/dag/expected_dag.2.1.py @@ -139,6 +139,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -176,6 +177,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -211,6 +213,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/expected_dag.2.4.py b/ext/scheduler/airflow/dag/expected_dag.2.4.py index 00c20dd925..d9957c6d98 100644 --- a/ext/scheduler/airflow/dag/expected_dag.2.4.py +++ b/ext/scheduler/airflow/dag/expected_dag.2.4.py @@ -139,6 +139,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -176,6 +177,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -211,6 +213,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/expected_dag.2.6.py b/ext/scheduler/airflow/dag/expected_dag.2.6.py index 743edd93b8..253e7f09ef 100644 --- a/ext/scheduler/airflow/dag/expected_dag.2.6.py +++ b/ext/scheduler/airflow/dag/expected_dag.2.6.py @@ -139,6 +139,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, container_resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -176,6 +177,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, container_resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -211,6 +213,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, container_resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/expected_dag.2.9.py b/ext/scheduler/airflow/dag/expected_dag.2.9.py index 2ef01dcd08..c8f32cbb71 100644 --- a/ext/scheduler/airflow/dag/expected_dag.2.9.py +++ b/ext/scheduler/airflow/dag/expected_dag.2.9.py @@ -141,6 +141,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, container_resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -178,6 +179,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, container_resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -213,6 +215,7 @@ def get_entrypoint_cmd(plugin_entrypoint_script): do_xcom_push=False, env_vars=executor_env_vars, container_resources=resources, + service_account_name="sample-service-account", reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/models.go b/ext/scheduler/airflow/dag/models.go index b0a8712424..d320137d38 100644 --- a/ext/scheduler/airflow/dag/models.go +++ b/ext/scheduler/airflow/dag/models.go @@ -105,8 +105,9 @@ func PrepareHooksForJob(job *scheduler.Job, pluginRepo PluginRepo) (Hooks, error } type RuntimeConfig struct { - Resource *Resource - Airflow AirflowConfig + Resource *Resource + Airflow AirflowConfig + Kubernetes *Kubernetes } func SetupRuntimeConfig(jobDetails *scheduler.JobWithDetails) RuntimeConfig { @@ -116,6 +117,9 @@ func SetupRuntimeConfig(jobDetails *scheduler.JobWithDetails) RuntimeConfig { if resource := ToResource(jobDetails.RuntimeConfig.Resource); resource != nil { runtimeConf.Resource = resource } + if kubernetes := ToKubernetes(jobDetails.RuntimeConfig.Kubernetes); kubernetes != nil { + runtimeConf.Kubernetes = kubernetes + } return runtimeConf } @@ -177,6 +181,19 @@ func ToAirflowConfig(schedulerConf map[string]string) AirflowConfig { return conf } +type Kubernetes struct { + ServiceAccount string +} + +func ToKubernetes(config *scheduler.Kubernetes) *Kubernetes { + if config == nil { + return nil + } + return &Kubernetes{ + ServiceAccount: config.ServiceAccount, + } +} + func SLAMissDuration(job *scheduler.JobWithDetails) (int64, error) { var slaMissDurationInSec int64 for _, notify := range job.Alerts { // We are ranging and picking one value diff --git a/ext/scheduler/airflow/dag/template/dag.2.1.py.tmpl b/ext/scheduler/airflow/dag/template/dag.2.1.py.tmpl index 2c391bac3d..3fd0863f10 100644 --- a/ext/scheduler/airflow/dag/template/dag.2.1.py.tmpl +++ b/ext/scheduler/airflow/dag/template/dag.2.1.py.tmpl @@ -173,6 +173,9 @@ init_container = k8s.V1Container( {{- if .RuntimeConfig.Resource }} resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -217,6 +220,9 @@ hook_{{$hookName}} = SuperKubernetesPodOperator( {{- if $.RuntimeConfig.Resource }} resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/template/dag.2.4.py.tmpl b/ext/scheduler/airflow/dag/template/dag.2.4.py.tmpl index 2c391bac3d..3fd0863f10 100644 --- a/ext/scheduler/airflow/dag/template/dag.2.4.py.tmpl +++ b/ext/scheduler/airflow/dag/template/dag.2.4.py.tmpl @@ -173,6 +173,9 @@ init_container = k8s.V1Container( {{- if .RuntimeConfig.Resource }} resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -217,6 +220,9 @@ hook_{{$hookName}} = SuperKubernetesPodOperator( {{- if $.RuntimeConfig.Resource }} resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/template/dag.2.6.py.tmpl b/ext/scheduler/airflow/dag/template/dag.2.6.py.tmpl index 94ba4e76c9..00b5c60c5c 100644 --- a/ext/scheduler/airflow/dag/template/dag.2.6.py.tmpl +++ b/ext/scheduler/airflow/dag/template/dag.2.6.py.tmpl @@ -173,6 +173,9 @@ init_container = k8s.V1Container( {{- if .RuntimeConfig.Resource }} container_resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -217,6 +220,9 @@ hook_{{$hookName}} = SuperKubernetesPodOperator( {{- if $.RuntimeConfig.Resource }} container_resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/ext/scheduler/airflow/dag/template/dag.2.9.py.tmpl b/ext/scheduler/airflow/dag/template/dag.2.9.py.tmpl index e3463da0f3..c3052a8e65 100644 --- a/ext/scheduler/airflow/dag/template/dag.2.9.py.tmpl +++ b/ext/scheduler/airflow/dag/template/dag.2.9.py.tmpl @@ -173,6 +173,9 @@ init_container = k8s.V1Container( {{- if .RuntimeConfig.Resource }} container_resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], @@ -217,6 +220,9 @@ hook_{{$hookName}} = SuperKubernetesPodOperator( {{- if $.RuntimeConfig.Resource }} container_resources=resources, {{- end }} + {{- if $.RuntimeConfig.Kubernetes }} + service_account_name="{{ $.RuntimeConfig.Kubernetes.ServiceAccount }}", + {{- end }} reattach_on_restart=True, volume_mounts=asset_volume_mounts, volumes=[volume], diff --git a/internal/store/postgres/job/adapter.go b/internal/store/postgres/job/adapter.go index 69e5463d5a..017b133bba 100644 --- a/internal/store/postgres/job/adapter.go +++ b/internal/store/postgres/job/adapter.go @@ -142,8 +142,9 @@ type Hook struct { } type Metadata struct { - Resource *MetadataResource - Scheduler map[string]string + Resource *MetadataResource + Scheduler map[string]string + Kubernetes *MetadataKubernetes } type MetadataResource struct { @@ -156,6 +157,10 @@ type MetadataResourceConfig struct { Memory string } +type MetadataKubernetes struct { + ServiceAccount string +} + type Config struct { Configs map[string]string } @@ -443,9 +448,17 @@ func toStorageMetadata(metadataSpec *job.Metadata) ([]byte, error) { } } + var metadataKubernetes *MetadataKubernetes + if metadataSpec.Kubernetes() != nil { + metadataKubernetes = &MetadataKubernetes{ + ServiceAccount: metadataSpec.Kubernetes().ServiceAccount(), + } + } + metadata := Metadata{ - Resource: metadataResource, - Scheduler: metadataSpec.Scheduler(), + Resource: metadataResource, + Scheduler: metadataSpec.Scheduler(), + Kubernetes: metadataKubernetes, } return json.Marshal(metadata) } @@ -576,6 +589,10 @@ func fromStorageSpec(jobSpec *Spec) (*job.Spec, error) { if storeMetadata.Scheduler != nil { metadataBuilder = metadataBuilder.WithScheduler(storeMetadata.Scheduler) } + if storeMetadata.Kubernetes != nil { + kubernetesMetadata := job.NewKubernetesMetadata(storeMetadata.Kubernetes.ServiceAccount) + metadataBuilder = metadataBuilder.WithKubernetes(kubernetesMetadata) + } metadata, err := metadataBuilder.Build() if err != nil { return nil, err diff --git a/internal/store/postgres/scheduler/job_repository.go b/internal/store/postgres/scheduler/job_repository.go index 4b3801bb9a..ec83d84774 100644 --- a/internal/store/postgres/scheduler/job_repository.go +++ b/internal/store/postgres/scheduler/job_repository.go @@ -295,8 +295,9 @@ func FromChangelogRow(row pgx.Row) (*changelog, error) { } type Metadata struct { - Resource *MetadataResource - Scheduler map[string]string + Resource *MetadataResource + Scheduler map[string]string + Kubernetes *MetadataKubernetes } type MetadataResource struct { @@ -309,6 +310,10 @@ type MetadataResourceConfig struct { Memory string } +type MetadataKubernetes struct { + ServiceAccount string +} + func fromStorageMetadata(metadata json.RawMessage) (scheduler.RuntimeConfig, error) { if metadata == nil { return scheduler.RuntimeConfig{}, nil @@ -341,6 +346,11 @@ func fromStorageMetadata(metadata json.RawMessage) (scheduler.RuntimeConfig, err if storeMetadata.Scheduler != nil { runtimeConfig.Scheduler = storeMetadata.Scheduler } + if storeMetadata.Kubernetes != nil { + runtimeConfig.Kubernetes = &scheduler.Kubernetes{ + ServiceAccount: storeMetadata.Kubernetes.ServiceAccount, + } + } return runtimeConfig, nil } diff --git a/protos/gotocompany/optimus/core/v1beta1/job_spec.pb.go b/protos/gotocompany/optimus/core/v1beta1/job_spec.pb.go index 88b937d006..ef67eb0c97 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_spec.pb.go +++ b/protos/gotocompany/optimus/core/v1beta1/job_spec.pb.go @@ -2760,8 +2760,9 @@ type JobMetadata struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Resource *JobSpecMetadataResource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` - Airflow *JobSpecMetadataAirflow `protobuf:"bytes,2,opt,name=airflow,proto3" json:"airflow,omitempty"` + Resource *JobSpecMetadataResource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` + Airflow *JobSpecMetadataAirflow `protobuf:"bytes,2,opt,name=airflow,proto3" json:"airflow,omitempty"` + Kubernetes *JobSpecMetadataKubernetes `protobuf:"bytes,3,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"` } func (x *JobMetadata) Reset() { @@ -2810,6 +2811,13 @@ func (x *JobMetadata) GetAirflow() *JobSpecMetadataAirflow { return nil } +func (x *JobMetadata) GetKubernetes() *JobSpecMetadataKubernetes { + if x != nil { + return x.Kubernetes + } + return nil +} + type JobSpecMetadataResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2975,6 +2983,53 @@ func (x *JobSpecMetadataAirflow) GetQueue() string { return "" } +type JobSpecMetadataKubernetes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` +} + +func (x *JobSpecMetadataKubernetes) Reset() { + *x = JobSpecMetadataKubernetes{} + if protoimpl.UnsafeEnabled { + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpecMetadataKubernetes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpecMetadataKubernetes) ProtoMessage() {} + +func (x *JobSpecMetadataKubernetes) ProtoReflect() protoreflect.Message { + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[43] + 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 JobSpecMetadataKubernetes.ProtoReflect.Descriptor instead. +func (*JobSpecMetadataKubernetes) Descriptor() ([]byte, []int) { + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{43} +} + +func (x *JobSpecMetadataKubernetes) GetServiceAccount() string { + if x != nil { + return x.ServiceAccount + } + return "" +} + type RefreshJobsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2988,7 +3043,7 @@ type RefreshJobsRequest struct { func (x *RefreshJobsRequest) Reset() { *x = RefreshJobsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[43] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3001,7 +3056,7 @@ func (x *RefreshJobsRequest) String() string { func (*RefreshJobsRequest) ProtoMessage() {} func (x *RefreshJobsRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[43] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3014,7 +3069,7 @@ func (x *RefreshJobsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshJobsRequest.ProtoReflect.Descriptor instead. func (*RefreshJobsRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{43} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{44} } func (x *RefreshJobsRequest) GetProjectName() string { @@ -3049,7 +3104,7 @@ type RefreshJobsResponse struct { func (x *RefreshJobsResponse) Reset() { *x = RefreshJobsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[44] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3062,7 +3117,7 @@ func (x *RefreshJobsResponse) String() string { func (*RefreshJobsResponse) ProtoMessage() {} func (x *RefreshJobsResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[44] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3075,7 +3130,7 @@ func (x *RefreshJobsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshJobsResponse.ProtoReflect.Descriptor instead. func (*RefreshJobsResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{44} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{45} } func (x *RefreshJobsResponse) GetLogStatus() *Log { @@ -3096,7 +3151,7 @@ type GetDeployJobsStatusRequest struct { func (x *GetDeployJobsStatusRequest) Reset() { *x = GetDeployJobsStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[45] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3109,7 +3164,7 @@ func (x *GetDeployJobsStatusRequest) String() string { func (*GetDeployJobsStatusRequest) ProtoMessage() {} func (x *GetDeployJobsStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[45] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3122,7 +3177,7 @@ func (x *GetDeployJobsStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDeployJobsStatusRequest.ProtoReflect.Descriptor instead. func (*GetDeployJobsStatusRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{45} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{46} } func (x *GetDeployJobsStatusRequest) GetDeployId() string { @@ -3147,7 +3202,7 @@ type GetDeployJobsStatusResponse struct { func (x *GetDeployJobsStatusResponse) Reset() { *x = GetDeployJobsStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[46] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3160,7 +3215,7 @@ func (x *GetDeployJobsStatusResponse) String() string { func (*GetDeployJobsStatusResponse) ProtoMessage() {} func (x *GetDeployJobsStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[46] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3173,7 +3228,7 @@ func (x *GetDeployJobsStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDeployJobsStatusResponse.ProtoReflect.Descriptor instead. func (*GetDeployJobsStatusResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{46} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{47} } func (x *GetDeployJobsStatusResponse) GetStatus() string { @@ -3223,7 +3278,7 @@ type DeployJobFailure struct { func (x *DeployJobFailure) Reset() { *x = DeployJobFailure{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[47] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3236,7 +3291,7 @@ func (x *DeployJobFailure) String() string { func (*DeployJobFailure) ProtoMessage() {} func (x *DeployJobFailure) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[47] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3249,7 +3304,7 @@ func (x *DeployJobFailure) ProtoReflect() protoreflect.Message { // Deprecated: Use DeployJobFailure.ProtoReflect.Descriptor instead. func (*DeployJobFailure) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{47} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{48} } func (x *DeployJobFailure) GetJobName() string { @@ -3278,7 +3333,7 @@ type GetJobChangelogRequest struct { func (x *GetJobChangelogRequest) Reset() { *x = GetJobChangelogRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[48] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3291,7 +3346,7 @@ func (x *GetJobChangelogRequest) String() string { func (*GetJobChangelogRequest) ProtoMessage() {} func (x *GetJobChangelogRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[48] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3304,7 +3359,7 @@ func (x *GetJobChangelogRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobChangelogRequest.ProtoReflect.Descriptor instead. func (*GetJobChangelogRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{48} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{49} } func (x *GetJobChangelogRequest) GetProjectName() string { @@ -3333,7 +3388,7 @@ type JobChange struct { func (x *JobChange) Reset() { *x = JobChange{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[49] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3346,7 +3401,7 @@ func (x *JobChange) String() string { func (*JobChange) ProtoMessage() {} func (x *JobChange) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[49] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3359,7 +3414,7 @@ func (x *JobChange) ProtoReflect() protoreflect.Message { // Deprecated: Use JobChange.ProtoReflect.Descriptor instead. func (*JobChange) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{49} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{50} } func (x *JobChange) GetAttributeName() string { @@ -3389,7 +3444,7 @@ type JobChangelog struct { func (x *JobChangelog) Reset() { *x = JobChangelog{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[50] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3402,7 +3457,7 @@ func (x *JobChangelog) String() string { func (*JobChangelog) ProtoMessage() {} func (x *JobChangelog) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[50] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3415,7 +3470,7 @@ func (x *JobChangelog) ProtoReflect() protoreflect.Message { // Deprecated: Use JobChangelog.ProtoReflect.Descriptor instead. func (*JobChangelog) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{50} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{51} } func (x *JobChangelog) GetEventType() string { @@ -3450,7 +3505,7 @@ type GetJobChangelogResponse struct { func (x *GetJobChangelogResponse) Reset() { *x = GetJobChangelogResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[51] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3463,7 +3518,7 @@ func (x *GetJobChangelogResponse) String() string { func (*GetJobChangelogResponse) ProtoMessage() {} func (x *GetJobChangelogResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[51] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3476,7 +3531,7 @@ func (x *GetJobChangelogResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobChangelogResponse.ProtoReflect.Descriptor instead. func (*GetJobChangelogResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{51} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{52} } func (x *GetJobChangelogResponse) GetHistory() []*JobChangelog { @@ -3501,7 +3556,7 @@ type GetJobSpecificationsRequest struct { func (x *GetJobSpecificationsRequest) Reset() { *x = GetJobSpecificationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[52] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3514,7 +3569,7 @@ func (x *GetJobSpecificationsRequest) String() string { func (*GetJobSpecificationsRequest) ProtoMessage() {} func (x *GetJobSpecificationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[52] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3527,7 +3582,7 @@ func (x *GetJobSpecificationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobSpecificationsRequest.ProtoReflect.Descriptor instead. func (*GetJobSpecificationsRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{52} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{53} } func (x *GetJobSpecificationsRequest) GetProjectName() string { @@ -3578,7 +3633,7 @@ type GetJobSpecificationsResponse struct { func (x *GetJobSpecificationsResponse) Reset() { *x = GetJobSpecificationsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[53] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3591,7 +3646,7 @@ func (x *GetJobSpecificationsResponse) String() string { func (*GetJobSpecificationsResponse) ProtoMessage() {} func (x *GetJobSpecificationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[53] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3604,7 +3659,7 @@ func (x *GetJobSpecificationsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobSpecificationsResponse.ProtoReflect.Descriptor instead. func (*GetJobSpecificationsResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{53} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{54} } // Deprecated: Do not use. @@ -3635,7 +3690,7 @@ type JobSpecificationResponse struct { func (x *JobSpecificationResponse) Reset() { *x = JobSpecificationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[54] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3648,7 +3703,7 @@ func (x *JobSpecificationResponse) String() string { func (*JobSpecificationResponse) ProtoMessage() {} func (x *JobSpecificationResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[54] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3661,7 +3716,7 @@ func (x *JobSpecificationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use JobSpecificationResponse.ProtoReflect.Descriptor instead. func (*JobSpecificationResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{54} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{55} } func (x *JobSpecificationResponse) GetProjectName() string { @@ -3698,7 +3753,7 @@ type ReplaceAllJobSpecificationsRequest struct { func (x *ReplaceAllJobSpecificationsRequest) Reset() { *x = ReplaceAllJobSpecificationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[55] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3711,7 +3766,7 @@ func (x *ReplaceAllJobSpecificationsRequest) String() string { func (*ReplaceAllJobSpecificationsRequest) ProtoMessage() {} func (x *ReplaceAllJobSpecificationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[55] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3724,7 +3779,7 @@ func (x *ReplaceAllJobSpecificationsRequest) ProtoReflect() protoreflect.Message // Deprecated: Use ReplaceAllJobSpecificationsRequest.ProtoReflect.Descriptor instead. func (*ReplaceAllJobSpecificationsRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{55} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{56} } func (x *ReplaceAllJobSpecificationsRequest) GetProjectName() string { @@ -3759,7 +3814,7 @@ type ReplaceAllJobSpecificationsResponse struct { func (x *ReplaceAllJobSpecificationsResponse) Reset() { *x = ReplaceAllJobSpecificationsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[56] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3772,7 +3827,7 @@ func (x *ReplaceAllJobSpecificationsResponse) String() string { func (*ReplaceAllJobSpecificationsResponse) ProtoMessage() {} func (x *ReplaceAllJobSpecificationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[56] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3785,7 +3840,7 @@ func (x *ReplaceAllJobSpecificationsResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use ReplaceAllJobSpecificationsResponse.ProtoReflect.Descriptor instead. func (*ReplaceAllJobSpecificationsResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{56} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{57} } func (x *ReplaceAllJobSpecificationsResponse) GetLogStatus() *Log { @@ -3808,7 +3863,7 @@ type GetJobTaskRequest struct { func (x *GetJobTaskRequest) Reset() { *x = GetJobTaskRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[57] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3821,7 +3876,7 @@ func (x *GetJobTaskRequest) String() string { func (*GetJobTaskRequest) ProtoMessage() {} func (x *GetJobTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[57] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3834,7 +3889,7 @@ func (x *GetJobTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobTaskRequest.ProtoReflect.Descriptor instead. func (*GetJobTaskRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{57} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{58} } func (x *GetJobTaskRequest) GetProjectName() string { @@ -3869,7 +3924,7 @@ type GetJobTaskResponse struct { func (x *GetJobTaskResponse) Reset() { *x = GetJobTaskResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[58] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3882,7 +3937,7 @@ func (x *GetJobTaskResponse) String() string { func (*GetJobTaskResponse) ProtoMessage() {} func (x *GetJobTaskResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[58] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3895,7 +3950,7 @@ func (x *GetJobTaskResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobTaskResponse.ProtoReflect.Descriptor instead. func (*GetJobTaskResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{58} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{59} } func (x *GetJobTaskResponse) GetTask() *JobTask { @@ -3922,7 +3977,7 @@ type JobTask struct { func (x *JobTask) Reset() { *x = JobTask{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[59] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3935,7 +3990,7 @@ func (x *JobTask) String() string { func (*JobTask) ProtoMessage() {} func (x *JobTask) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[59] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3948,7 +4003,7 @@ func (x *JobTask) ProtoReflect() protoreflect.Message { // Deprecated: Use JobTask.ProtoReflect.Descriptor instead. func (*JobTask) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{59} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{60} } func (x *JobTask) GetName() string { @@ -4002,7 +4057,7 @@ type GetWindowRequest struct { func (x *GetWindowRequest) Reset() { *x = GetWindowRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[60] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4015,7 +4070,7 @@ func (x *GetWindowRequest) String() string { func (*GetWindowRequest) ProtoMessage() {} func (x *GetWindowRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[60] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4028,7 +4083,7 @@ func (x *GetWindowRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWindowRequest.ProtoReflect.Descriptor instead. func (*GetWindowRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{60} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{61} } func (x *GetWindowRequest) GetScheduledAt() *timestamppb.Timestamp { @@ -4079,7 +4134,7 @@ type GetWindowResponse struct { func (x *GetWindowResponse) Reset() { *x = GetWindowResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[61] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4092,7 +4147,7 @@ func (x *GetWindowResponse) String() string { func (*GetWindowResponse) ProtoMessage() {} func (x *GetWindowResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[61] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4105,7 +4160,7 @@ func (x *GetWindowResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWindowResponse.ProtoReflect.Descriptor instead. func (*GetWindowResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{61} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{62} } func (x *GetWindowResponse) GetStart() *timestamppb.Timestamp { @@ -4137,7 +4192,7 @@ type UpdateJobsStateRequest struct { func (x *UpdateJobsStateRequest) Reset() { *x = UpdateJobsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[62] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4150,7 +4205,7 @@ func (x *UpdateJobsStateRequest) String() string { func (*UpdateJobsStateRequest) ProtoMessage() {} func (x *UpdateJobsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[62] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4163,7 +4218,7 @@ func (x *UpdateJobsStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJobsStateRequest.ProtoReflect.Descriptor instead. func (*UpdateJobsStateRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{62} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{63} } func (x *UpdateJobsStateRequest) GetProjectName() string { @@ -4210,7 +4265,7 @@ type UpdateJobsStateResponse struct { func (x *UpdateJobsStateResponse) Reset() { *x = UpdateJobsStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[63] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4223,7 +4278,7 @@ func (x *UpdateJobsStateResponse) String() string { func (*UpdateJobsStateResponse) ProtoMessage() {} func (x *UpdateJobsStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[63] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4236,7 +4291,7 @@ func (x *UpdateJobsStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJobsStateResponse.ProtoReflect.Descriptor instead. func (*UpdateJobsStateResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{63} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{64} } type SyncJobsStateRequest struct { @@ -4252,7 +4307,7 @@ type SyncJobsStateRequest struct { func (x *SyncJobsStateRequest) Reset() { *x = SyncJobsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[64] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4265,7 +4320,7 @@ func (x *SyncJobsStateRequest) String() string { func (*SyncJobsStateRequest) ProtoMessage() {} func (x *SyncJobsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[64] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4278,7 +4333,7 @@ func (x *SyncJobsStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncJobsStateRequest.ProtoReflect.Descriptor instead. func (*SyncJobsStateRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{64} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{65} } func (x *SyncJobsStateRequest) GetProjectName() string { @@ -4311,7 +4366,7 @@ type SyncJobsStateResponse struct { func (x *SyncJobsStateResponse) Reset() { *x = SyncJobsStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[65] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4324,7 +4379,7 @@ func (x *SyncJobsStateResponse) String() string { func (*SyncJobsStateResponse) ProtoMessage() {} func (x *SyncJobsStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[65] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4337,7 +4392,7 @@ func (x *SyncJobsStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncJobsStateResponse.ProtoReflect.Descriptor instead. func (*SyncJobsStateResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{65} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{66} } type BulkDeleteJobsRequest struct { @@ -4352,7 +4407,7 @@ type BulkDeleteJobsRequest struct { func (x *BulkDeleteJobsRequest) Reset() { *x = BulkDeleteJobsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[66] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4365,7 +4420,7 @@ func (x *BulkDeleteJobsRequest) String() string { func (*BulkDeleteJobsRequest) ProtoMessage() {} func (x *BulkDeleteJobsRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[66] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4378,7 +4433,7 @@ func (x *BulkDeleteJobsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkDeleteJobsRequest.ProtoReflect.Descriptor instead. func (*BulkDeleteJobsRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{66} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{67} } func (x *BulkDeleteJobsRequest) GetProjectName() string { @@ -4406,7 +4461,7 @@ type BulkDeleteJobsResponse struct { func (x *BulkDeleteJobsResponse) Reset() { *x = BulkDeleteJobsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[67] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4419,7 +4474,7 @@ func (x *BulkDeleteJobsResponse) String() string { func (*BulkDeleteJobsResponse) ProtoMessage() {} func (x *BulkDeleteJobsResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[67] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4432,7 +4487,7 @@ func (x *BulkDeleteJobsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkDeleteJobsResponse.ProtoReflect.Descriptor instead. func (*BulkDeleteJobsResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{67} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{68} } func (x *BulkDeleteJobsResponse) GetResultsByJobName() map[string]*BulkDeleteJobsResponse_JobDeletionStatus { @@ -4456,7 +4511,7 @@ type JobInspectResponse_BasicInfoSection struct { func (x *JobInspectResponse_BasicInfoSection) Reset() { *x = JobInspectResponse_BasicInfoSection{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[68] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4469,7 +4524,7 @@ func (x *JobInspectResponse_BasicInfoSection) String() string { func (*JobInspectResponse_BasicInfoSection) ProtoMessage() {} func (x *JobInspectResponse_BasicInfoSection) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[68] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4529,7 +4584,7 @@ type JobInspectResponse_JobDependency struct { func (x *JobInspectResponse_JobDependency) Reset() { *x = JobInspectResponse_JobDependency{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[69] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4542,7 +4597,7 @@ func (x *JobInspectResponse_JobDependency) String() string { func (*JobInspectResponse_JobDependency) ProtoMessage() {} func (x *JobInspectResponse_JobDependency) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[69] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4615,7 +4670,7 @@ type JobInspectResponse_UpstreamSection struct { func (x *JobInspectResponse_UpstreamSection) Reset() { *x = JobInspectResponse_UpstreamSection{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[70] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4628,7 +4683,7 @@ func (x *JobInspectResponse_UpstreamSection) String() string { func (*JobInspectResponse_UpstreamSection) ProtoMessage() {} func (x *JobInspectResponse_UpstreamSection) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[70] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4691,7 +4746,7 @@ type JobInspectResponse_DownstreamSection struct { func (x *JobInspectResponse_DownstreamSection) Reset() { *x = JobInspectResponse_DownstreamSection{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[71] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4704,7 +4759,7 @@ func (x *JobInspectResponse_DownstreamSection) String() string { func (*JobInspectResponse_DownstreamSection) ProtoMessage() {} func (x *JobInspectResponse_DownstreamSection) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[71] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4747,7 +4802,7 @@ type JobInspectResponse_UpstreamSection_UnknownDependencies struct { func (x *JobInspectResponse_UpstreamSection_UnknownDependencies) Reset() { *x = JobInspectResponse_UpstreamSection_UnknownDependencies{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[72] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4760,7 +4815,7 @@ func (x *JobInspectResponse_UpstreamSection_UnknownDependencies) String() string func (*JobInspectResponse_UpstreamSection_UnknownDependencies) ProtoMessage() {} func (x *JobInspectResponse_UpstreamSection_UnknownDependencies) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[72] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4809,7 +4864,7 @@ type ValidateRequest_FromServer struct { func (x *ValidateRequest_FromServer) Reset() { *x = ValidateRequest_FromServer{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[73] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4822,7 +4877,7 @@ func (x *ValidateRequest_FromServer) String() string { func (*ValidateRequest_FromServer) ProtoMessage() {} func (x *ValidateRequest_FromServer) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[73] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4863,7 +4918,7 @@ type ValidateRequest_FromOutside struct { func (x *ValidateRequest_FromOutside) Reset() { *x = ValidateRequest_FromOutside{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[74] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4876,7 +4931,7 @@ func (x *ValidateRequest_FromOutside) String() string { func (*ValidateRequest_FromOutside) ProtoMessage() {} func (x *ValidateRequest_FromOutside) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[74] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4912,7 +4967,7 @@ type ValidateResponse_Result struct { func (x *ValidateResponse_Result) Reset() { *x = ValidateResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[75] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4925,7 +4980,7 @@ func (x *ValidateResponse_Result) String() string { func (*ValidateResponse_Result) ProtoMessage() {} func (x *ValidateResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[75] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4973,7 +5028,7 @@ type ValidateResponse_ResultList struct { func (x *ValidateResponse_ResultList) Reset() { *x = ValidateResponse_ResultList{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[76] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4986,7 +5041,7 @@ func (x *ValidateResponse_ResultList) String() string { func (*ValidateResponse_ResultList) ProtoMessage() {} func (x *ValidateResponse_ResultList) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[76] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5026,7 +5081,7 @@ type JobSpecification_Window struct { func (x *JobSpecification_Window) Reset() { *x = JobSpecification_Window{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[78] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5039,7 +5094,7 @@ func (x *JobSpecification_Window) String() string { func (*JobSpecification_Window) ProtoMessage() {} func (x *JobSpecification_Window) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[78] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5111,7 +5166,7 @@ type JobSpecification_Behavior struct { func (x *JobSpecification_Behavior) Reset() { *x = JobSpecification_Behavior{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[81] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5124,7 +5179,7 @@ func (x *JobSpecification_Behavior) String() string { func (*JobSpecification_Behavior) ProtoMessage() {} func (x *JobSpecification_Behavior) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[81] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5175,7 +5230,7 @@ type JobSpecification_Behavior_Retry struct { func (x *JobSpecification_Behavior_Retry) Reset() { *x = JobSpecification_Behavior_Retry{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[82] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5188,7 +5243,7 @@ func (x *JobSpecification_Behavior_Retry) String() string { func (*JobSpecification_Behavior_Retry) ProtoMessage() {} func (x *JobSpecification_Behavior_Retry) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[82] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5241,7 +5296,7 @@ type JobSpecification_Behavior_Notifiers struct { func (x *JobSpecification_Behavior_Notifiers) Reset() { *x = JobSpecification_Behavior_Notifiers{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[83] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5254,7 +5309,7 @@ func (x *JobSpecification_Behavior_Notifiers) String() string { func (*JobSpecification_Behavior_Notifiers) ProtoMessage() {} func (x *JobSpecification_Behavior_Notifiers) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[83] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5317,7 +5372,7 @@ type JobSpecification_Behavior_Webhook struct { func (x *JobSpecification_Behavior_Webhook) Reset() { *x = JobSpecification_Behavior_Webhook{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[84] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5330,7 +5385,7 @@ func (x *JobSpecification_Behavior_Webhook) String() string { func (*JobSpecification_Behavior_Webhook) ProtoMessage() {} func (x *JobSpecification_Behavior_Webhook) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[84] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5372,7 +5427,7 @@ type JobSpecification_Behavior_Webhook_WebhookEndpoint struct { func (x *JobSpecification_Behavior_Webhook_WebhookEndpoint) Reset() { *x = JobSpecification_Behavior_Webhook_WebhookEndpoint{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[86] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5385,7 +5440,7 @@ func (x *JobSpecification_Behavior_Webhook_WebhookEndpoint) String() string { func (*JobSpecification_Behavior_Webhook_WebhookEndpoint) ProtoMessage() {} func (x *JobSpecification_Behavior_Webhook_WebhookEndpoint) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[86] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5427,7 +5482,7 @@ type JobTask_Destination struct { func (x *JobTask_Destination) Reset() { *x = JobTask_Destination{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[91] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5440,7 +5495,7 @@ func (x *JobTask_Destination) String() string { func (*JobTask_Destination) ProtoMessage() {} func (x *JobTask_Destination) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[91] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5453,7 +5508,7 @@ func (x *JobTask_Destination) ProtoReflect() protoreflect.Message { // Deprecated: Use JobTask_Destination.ProtoReflect.Descriptor instead. func (*JobTask_Destination) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{59, 0} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{60, 0} } func (x *JobTask_Destination) GetDestination() string { @@ -5481,7 +5536,7 @@ type JobTask_Dependency struct { func (x *JobTask_Dependency) Reset() { *x = JobTask_Dependency{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[92] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5494,7 +5549,7 @@ func (x *JobTask_Dependency) String() string { func (*JobTask_Dependency) ProtoMessage() {} func (x *JobTask_Dependency) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[92] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5507,7 +5562,7 @@ func (x *JobTask_Dependency) ProtoReflect() protoreflect.Message { // Deprecated: Use JobTask_Dependency.ProtoReflect.Descriptor instead. func (*JobTask_Dependency) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{59, 1} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{60, 1} } func (x *JobTask_Dependency) GetDependency() string { @@ -5529,7 +5584,7 @@ type SyncJobsStateRequest_JobStatePair struct { func (x *SyncJobsStateRequest_JobStatePair) Reset() { *x = SyncJobsStateRequest_JobStatePair{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[93] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5542,7 +5597,7 @@ func (x *SyncJobsStateRequest_JobStatePair) String() string { func (*SyncJobsStateRequest_JobStatePair) ProtoMessage() {} func (x *SyncJobsStateRequest_JobStatePair) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[93] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5555,7 +5610,7 @@ func (x *SyncJobsStateRequest_JobStatePair) ProtoReflect() protoreflect.Message // Deprecated: Use SyncJobsStateRequest_JobStatePair.ProtoReflect.Descriptor instead. func (*SyncJobsStateRequest_JobStatePair) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{64, 0} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{65, 0} } func (x *SyncJobsStateRequest_JobStatePair) GetJobName() string { @@ -5584,7 +5639,7 @@ type BulkDeleteJobsRequest_JobToDelete struct { func (x *BulkDeleteJobsRequest_JobToDelete) Reset() { *x = BulkDeleteJobsRequest_JobToDelete{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[94] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5597,7 +5652,7 @@ func (x *BulkDeleteJobsRequest_JobToDelete) String() string { func (*BulkDeleteJobsRequest_JobToDelete) ProtoMessage() {} func (x *BulkDeleteJobsRequest_JobToDelete) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[94] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5610,7 +5665,7 @@ func (x *BulkDeleteJobsRequest_JobToDelete) ProtoReflect() protoreflect.Message // Deprecated: Use BulkDeleteJobsRequest_JobToDelete.ProtoReflect.Descriptor instead. func (*BulkDeleteJobsRequest_JobToDelete) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{66, 0} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{67, 0} } func (x *BulkDeleteJobsRequest_JobToDelete) GetNamespaceName() string { @@ -5639,7 +5694,7 @@ type BulkDeleteJobsResponse_JobDeletionStatus struct { func (x *BulkDeleteJobsResponse_JobDeletionStatus) Reset() { *x = BulkDeleteJobsResponse_JobDeletionStatus{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[95] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5652,7 +5707,7 @@ func (x *BulkDeleteJobsResponse_JobDeletionStatus) String() string { func (*BulkDeleteJobsResponse_JobDeletionStatus) ProtoMessage() {} func (x *BulkDeleteJobsResponse_JobDeletionStatus) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[95] + mi := &file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5665,7 +5720,7 @@ func (x *BulkDeleteJobsResponse_JobDeletionStatus) ProtoReflect() protoreflect.M // Deprecated: Use BulkDeleteJobsResponse_JobDeletionStatus.ProtoReflect.Descriptor instead. func (*BulkDeleteJobsResponse_JobDeletionStatus) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{67, 0} + return file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP(), []int{68, 0} } func (x *BulkDeleteJobsResponse_JobDeletionStatus) GetSuccess() bool { @@ -6392,7 +6447,7 @@ var file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDesc = []byte{ 0x52, 0x59, 0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x12, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x13, 0x22, - 0x04, 0x08, 0x02, 0x10, 0x05, 0x22, 0x04, 0x08, 0x14, 0x10, 0x14, 0x22, 0xb8, 0x01, 0x0a, 0x0b, + 0x04, 0x08, 0x02, 0x10, 0x05, 0x22, 0x04, 0x08, 0x14, 0x10, 0x14, 0x22, 0x95, 0x02, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x55, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, @@ -6404,598 +6459,608 @@ var file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDesc = []byte{ 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x07, 0x61, - 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x4a, 0x6f, 0x62, 0x53, 0x70, - 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, - 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x22, 0x49, 0x0a, 0x1d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x22, - 0x42, 0x0a, 0x16, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x6f, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, - 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x61, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, - 0x04, 0x08, 0x01, 0x10, 0x06, 0x22, 0x39, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x64, - 0x22, 0xa3, 0x03, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, - 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, + 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x5b, 0x0a, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x08, - 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, - 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x89, 0x01, 0x0a, 0x14, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, - 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x46, - 0x0a, 0x18, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x4a, 0x6f, 0x62, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, - 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0x56, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, - 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x22, - 0x90, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, - 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x43, 0x0a, - 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, + 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x75, 0x62, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x65, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x59, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, + 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x22, 0x49, 0x0a, 0x1d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x22, 0x42, 0x0a, 0x16, + 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, + 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x22, 0x44, 0x0a, 0x19, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7d, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, + 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x06, 0x22, 0x39, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x49, 0x64, 0x22, 0xa3, 0x03, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4e, 0x0a, 0x08, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x22, 0x63, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, - 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x07, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xda, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4a, + 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, + 0x65, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x89, 0x01, 0x0a, 0x14, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x1a, 0x46, 0x0a, 0x18, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x10, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x56, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x09, 0x4a, 0x6f, + 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x69, + 0x66, 0x66, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x6c, 0x6f, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x63, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x48, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, + 0x67, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xda, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, + 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, - 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6a, 0x6f, 0x62, - 0x73, 0x12, 0x7a, 0x0a, 0x1b, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x19, 0x6a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xaa, 0x01, - 0x0a, 0x18, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xb6, 0x01, 0x0a, 0x22, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x6a, - 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, + 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x7a, 0x0a, 0x1b, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6a, - 0x6f, 0x62, 0x73, 0x22, 0x6b, 0x0a, 0x23, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, - 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6c, 0x6f, - 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, - 0xfb, 0x02, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x19, 0x6a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x22, 0xaa, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xb6, 0x01, + 0x0a, 0x22, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, + 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x58, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, - 0x6b, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0c, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x0b, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, - 0x2c, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1e, 0x0a, - 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x22, 0xbc, 0x01, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x77, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, - 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xd9, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x6b, 0x0a, 0x23, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x41, 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, + 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x02, 0x0a, - 0x14, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x62, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x1a, 0x6b, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, - 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x17, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x15, 0x42, 0x75, - 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, + 0x73, 0x6b, 0x22, 0xfb, 0x02, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, + 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, + 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, + 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x43, 0x0a, + 0x0b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x1a, 0x2c, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, + 0x77, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x03, 0x65, 0x6e, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xd9, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, - 0x62, 0x54, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x1a, - 0x4f, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x54, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0xf2, 0x02, 0x0a, 0x16, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, - 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x13, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x79, 0x4a, 0x6f, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x42, 0x79, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x47, 0x0a, 0x11, 0x4a, 0x6f, - 0x62, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x1a, 0x8f, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x42, - 0x79, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x60, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x54, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x32, 0xa4, 0x24, 0x0a, 0x17, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xb1, 0x02, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, + 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x09, 0x6a, 0x6f, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x6b, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x01, 0x0a, + 0x15, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x04, 0x6a, 0x6f, 0x62, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x04, 0x6a, 0x6f, + 0x62, 0x73, 0x1a, 0x4f, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x54, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0xf2, 0x02, 0x0a, 0x16, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, + 0x0a, 0x13, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, + 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x79, 0x4a, + 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x42, 0x79, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x47, 0x0a, + 0x11, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x8f, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x42, 0x79, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x60, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x54, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x32, 0xa4, + 0x24, 0x0a, 0x17, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x16, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, + 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0xca, + 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, + 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0xca, 0x01, 0x0a, 0x0a, - 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, - 0x62, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x69, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xe6, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, + 0x22, 0x46, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, + 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xe6, 0x01, 0x0a, 0x16, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x43, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, + 0x62, 0x3a, 0x01, 0x2a, 0x12, 0xe1, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x4a, 0x6f, 0x62, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, + 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xea, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x22, 0x3e, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x3a, 0x01, - 0x2a, 0x12, 0xe1, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x44, 0x1a, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, - 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xea, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xf1, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x1a, 0x3f, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x3a, - 0x01, 0x2a, 0x12, 0xf1, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2d, 0x75, 0x70, 0x73, - 0x65, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xe5, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4a, 0x6f, - 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2d, + 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xe5, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, + 0x12, 0xc8, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x6c, 0x6f, 0x67, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, - 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xac, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, - 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x12, 0xee, 0x01, 0x0a, 0x16, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xc8, 0x01, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, - 0x67, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, - 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x6f, 0x67, 0x12, 0xee, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x4b, 0x2a, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, + 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd0, 0x01, 0x0a, + 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x2a, 0x49, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, - 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd0, 0x01, 0x0a, 0x12, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4a, 0x6f, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, - 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x39, 0x22, 0x34, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2d, 0x6a, 0x6f, 0x62, 0x2d, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xdd, 0x01, 0x0a, - 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x12, 0xce, 0x01, 0x0a, - 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, - 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, - 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x88, 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2b, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0xa2, 0x01, - 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x22, 0x34, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2d, 0x6a, + 0x6f, 0x62, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x12, + 0xdd, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, + 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, + 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x12, + 0xce, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, - 0x30, 0x01, 0x12, 0xc5, 0x01, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x31, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x22, 0x47, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x0b, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x88, 0x02, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0xa2, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, + 0x88, 0x02, 0x01, 0x30, 0x01, 0x12, 0xc5, 0x01, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, - 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0xb0, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, - 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x4a, - 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x28, 0x01, 0x30, 0x01, 0x12, 0xcf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, - 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 0x4e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x90, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x88, - 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0xde, 0x01, 0x0a, 0x0f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, - 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x32, 0x4b, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x6a, 0x6f, - 0x62, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x53, - 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x67, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x4c, 0x22, 0x47, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, + 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, + 0x0b, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x94, 0x01, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0xb0, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x41, 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x32, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x2d, 0x6a, 0x6f, 0x62, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x3a, 0x01, 0x2a, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, + 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x6c, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0xcf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 0x4e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x90, 0x01, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1a, 0x88, 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0xde, 0x01, 0x0a, + 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x32, 0x4b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x2d, 0x6a, 0x6f, 0x62, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xd6, 0x01, + 0x0a, 0x0d, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x36, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x2d, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x42, 0xaa, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x1e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2f, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, 0x45, 0x12, 0x05, 0x32, 0x03, 0x30, 0x2e, - 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, 0x39, 0x31, 0x30, - 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x23, 0x0a, 0x21, 0x4f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, + 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x32, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x2d, 0x6a, 0x6f, 0x62, 0x2d, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, + 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x2d, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0xaa, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x1e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, 0x45, 0x12, 0x05, 0x32, + 0x03, 0x30, 0x2e, 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, + 0x39, 0x31, 0x30, 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x23, 0x0a, + 0x21, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7011,7 +7076,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDescGZIP() []byte { } var file_gotocompany_optimus_core_v1beta1_job_spec_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes = make([]protoimpl.MessageInfo, 97) +var file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes = make([]protoimpl.MessageInfo, 98) var file_gotocompany_optimus_core_v1beta1_job_spec_proto_goTypes = []interface{}{ (JobState)(0), // 0: gotocompany.optimus.core.v1beta1.JobState (JobEvent_Type)(0), // 1: gotocompany.optimus.core.v1beta1.JobEvent.Type @@ -7058,99 +7123,100 @@ var file_gotocompany_optimus_core_v1beta1_job_spec_proto_goTypes = []interface{} (*JobSpecMetadataResource)(nil), // 42: gotocompany.optimus.core.v1beta1.JobSpecMetadataResource (*JobSpecMetadataResourceConfig)(nil), // 43: gotocompany.optimus.core.v1beta1.JobSpecMetadataResourceConfig (*JobSpecMetadataAirflow)(nil), // 44: gotocompany.optimus.core.v1beta1.JobSpecMetadataAirflow - (*RefreshJobsRequest)(nil), // 45: gotocompany.optimus.core.v1beta1.RefreshJobsRequest - (*RefreshJobsResponse)(nil), // 46: gotocompany.optimus.core.v1beta1.RefreshJobsResponse - (*GetDeployJobsStatusRequest)(nil), // 47: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusRequest - (*GetDeployJobsStatusResponse)(nil), // 48: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse - (*DeployJobFailure)(nil), // 49: gotocompany.optimus.core.v1beta1.DeployJobFailure - (*GetJobChangelogRequest)(nil), // 50: gotocompany.optimus.core.v1beta1.GetJobChangelogRequest - (*JobChange)(nil), // 51: gotocompany.optimus.core.v1beta1.JobChange - (*JobChangelog)(nil), // 52: gotocompany.optimus.core.v1beta1.JobChangelog - (*GetJobChangelogResponse)(nil), // 53: gotocompany.optimus.core.v1beta1.GetJobChangelogResponse - (*GetJobSpecificationsRequest)(nil), // 54: gotocompany.optimus.core.v1beta1.GetJobSpecificationsRequest - (*GetJobSpecificationsResponse)(nil), // 55: gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse - (*JobSpecificationResponse)(nil), // 56: gotocompany.optimus.core.v1beta1.JobSpecificationResponse - (*ReplaceAllJobSpecificationsRequest)(nil), // 57: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsRequest - (*ReplaceAllJobSpecificationsResponse)(nil), // 58: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsResponse - (*GetJobTaskRequest)(nil), // 59: gotocompany.optimus.core.v1beta1.GetJobTaskRequest - (*GetJobTaskResponse)(nil), // 60: gotocompany.optimus.core.v1beta1.GetJobTaskResponse - (*JobTask)(nil), // 61: gotocompany.optimus.core.v1beta1.JobTask - (*GetWindowRequest)(nil), // 62: gotocompany.optimus.core.v1beta1.GetWindowRequest - (*GetWindowResponse)(nil), // 63: gotocompany.optimus.core.v1beta1.GetWindowResponse - (*UpdateJobsStateRequest)(nil), // 64: gotocompany.optimus.core.v1beta1.UpdateJobsStateRequest - (*UpdateJobsStateResponse)(nil), // 65: gotocompany.optimus.core.v1beta1.UpdateJobsStateResponse - (*SyncJobsStateRequest)(nil), // 66: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest - (*SyncJobsStateResponse)(nil), // 67: gotocompany.optimus.core.v1beta1.SyncJobsStateResponse - (*BulkDeleteJobsRequest)(nil), // 68: gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest - (*BulkDeleteJobsResponse)(nil), // 69: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse - (*JobInspectResponse_BasicInfoSection)(nil), // 70: gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection - (*JobInspectResponse_JobDependency)(nil), // 71: gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency - (*JobInspectResponse_UpstreamSection)(nil), // 72: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection - (*JobInspectResponse_DownstreamSection)(nil), // 73: gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection - (*JobInspectResponse_UpstreamSection_UnknownDependencies)(nil), // 74: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.UnknownDependencies - (*ValidateRequest_FromServer)(nil), // 75: gotocompany.optimus.core.v1beta1.ValidateRequest.FromServer - (*ValidateRequest_FromOutside)(nil), // 76: gotocompany.optimus.core.v1beta1.ValidateRequest.FromOutside - (*ValidateResponse_Result)(nil), // 77: gotocompany.optimus.core.v1beta1.ValidateResponse.Result - (*ValidateResponse_ResultList)(nil), // 78: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultList - nil, // 79: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultsByJobNameEntry - (*JobSpecification_Window)(nil), // 80: gotocompany.optimus.core.v1beta1.JobSpecification.Window - nil, // 81: gotocompany.optimus.core.v1beta1.JobSpecification.AssetsEntry - nil, // 82: gotocompany.optimus.core.v1beta1.JobSpecification.LabelsEntry - (*JobSpecification_Behavior)(nil), // 83: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior - (*JobSpecification_Behavior_Retry)(nil), // 84: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Retry - (*JobSpecification_Behavior_Notifiers)(nil), // 85: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers - (*JobSpecification_Behavior_Webhook)(nil), // 86: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook - nil, // 87: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.ConfigEntry - (*JobSpecification_Behavior_Webhook_WebhookEndpoint)(nil), // 88: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint - nil, // 89: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint.HeadersEntry - nil, // 90: gotocompany.optimus.core.v1beta1.HttpDependency.HeadersEntry - nil, // 91: gotocompany.optimus.core.v1beta1.HttpDependency.ParamsEntry - nil, // 92: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.UnknownDependenciesEntry - (*JobTask_Destination)(nil), // 93: gotocompany.optimus.core.v1beta1.JobTask.Destination - (*JobTask_Dependency)(nil), // 94: gotocompany.optimus.core.v1beta1.JobTask.Dependency - (*SyncJobsStateRequest_JobStatePair)(nil), // 95: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.JobStatePair - (*BulkDeleteJobsRequest_JobToDelete)(nil), // 96: gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest.JobToDelete - (*BulkDeleteJobsResponse_JobDeletionStatus)(nil), // 97: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.JobDeletionStatus - nil, // 98: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.ResultsByJobNameEntry - (*Log)(nil), // 99: gotocompany.optimus.core.v1beta1.Log - (*timestamppb.Timestamp)(nil), // 100: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 101: google.protobuf.Duration - (*structpb.Struct)(nil), // 102: google.protobuf.Struct + (*JobSpecMetadataKubernetes)(nil), // 45: gotocompany.optimus.core.v1beta1.JobSpecMetadataKubernetes + (*RefreshJobsRequest)(nil), // 46: gotocompany.optimus.core.v1beta1.RefreshJobsRequest + (*RefreshJobsResponse)(nil), // 47: gotocompany.optimus.core.v1beta1.RefreshJobsResponse + (*GetDeployJobsStatusRequest)(nil), // 48: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusRequest + (*GetDeployJobsStatusResponse)(nil), // 49: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse + (*DeployJobFailure)(nil), // 50: gotocompany.optimus.core.v1beta1.DeployJobFailure + (*GetJobChangelogRequest)(nil), // 51: gotocompany.optimus.core.v1beta1.GetJobChangelogRequest + (*JobChange)(nil), // 52: gotocompany.optimus.core.v1beta1.JobChange + (*JobChangelog)(nil), // 53: gotocompany.optimus.core.v1beta1.JobChangelog + (*GetJobChangelogResponse)(nil), // 54: gotocompany.optimus.core.v1beta1.GetJobChangelogResponse + (*GetJobSpecificationsRequest)(nil), // 55: gotocompany.optimus.core.v1beta1.GetJobSpecificationsRequest + (*GetJobSpecificationsResponse)(nil), // 56: gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse + (*JobSpecificationResponse)(nil), // 57: gotocompany.optimus.core.v1beta1.JobSpecificationResponse + (*ReplaceAllJobSpecificationsRequest)(nil), // 58: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsRequest + (*ReplaceAllJobSpecificationsResponse)(nil), // 59: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsResponse + (*GetJobTaskRequest)(nil), // 60: gotocompany.optimus.core.v1beta1.GetJobTaskRequest + (*GetJobTaskResponse)(nil), // 61: gotocompany.optimus.core.v1beta1.GetJobTaskResponse + (*JobTask)(nil), // 62: gotocompany.optimus.core.v1beta1.JobTask + (*GetWindowRequest)(nil), // 63: gotocompany.optimus.core.v1beta1.GetWindowRequest + (*GetWindowResponse)(nil), // 64: gotocompany.optimus.core.v1beta1.GetWindowResponse + (*UpdateJobsStateRequest)(nil), // 65: gotocompany.optimus.core.v1beta1.UpdateJobsStateRequest + (*UpdateJobsStateResponse)(nil), // 66: gotocompany.optimus.core.v1beta1.UpdateJobsStateResponse + (*SyncJobsStateRequest)(nil), // 67: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest + (*SyncJobsStateResponse)(nil), // 68: gotocompany.optimus.core.v1beta1.SyncJobsStateResponse + (*BulkDeleteJobsRequest)(nil), // 69: gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest + (*BulkDeleteJobsResponse)(nil), // 70: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse + (*JobInspectResponse_BasicInfoSection)(nil), // 71: gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection + (*JobInspectResponse_JobDependency)(nil), // 72: gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency + (*JobInspectResponse_UpstreamSection)(nil), // 73: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection + (*JobInspectResponse_DownstreamSection)(nil), // 74: gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection + (*JobInspectResponse_UpstreamSection_UnknownDependencies)(nil), // 75: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.UnknownDependencies + (*ValidateRequest_FromServer)(nil), // 76: gotocompany.optimus.core.v1beta1.ValidateRequest.FromServer + (*ValidateRequest_FromOutside)(nil), // 77: gotocompany.optimus.core.v1beta1.ValidateRequest.FromOutside + (*ValidateResponse_Result)(nil), // 78: gotocompany.optimus.core.v1beta1.ValidateResponse.Result + (*ValidateResponse_ResultList)(nil), // 79: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultList + nil, // 80: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultsByJobNameEntry + (*JobSpecification_Window)(nil), // 81: gotocompany.optimus.core.v1beta1.JobSpecification.Window + nil, // 82: gotocompany.optimus.core.v1beta1.JobSpecification.AssetsEntry + nil, // 83: gotocompany.optimus.core.v1beta1.JobSpecification.LabelsEntry + (*JobSpecification_Behavior)(nil), // 84: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior + (*JobSpecification_Behavior_Retry)(nil), // 85: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Retry + (*JobSpecification_Behavior_Notifiers)(nil), // 86: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers + (*JobSpecification_Behavior_Webhook)(nil), // 87: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook + nil, // 88: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.ConfigEntry + (*JobSpecification_Behavior_Webhook_WebhookEndpoint)(nil), // 89: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint + nil, // 90: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint.HeadersEntry + nil, // 91: gotocompany.optimus.core.v1beta1.HttpDependency.HeadersEntry + nil, // 92: gotocompany.optimus.core.v1beta1.HttpDependency.ParamsEntry + nil, // 93: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.UnknownDependenciesEntry + (*JobTask_Destination)(nil), // 94: gotocompany.optimus.core.v1beta1.JobTask.Destination + (*JobTask_Dependency)(nil), // 95: gotocompany.optimus.core.v1beta1.JobTask.Dependency + (*SyncJobsStateRequest_JobStatePair)(nil), // 96: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.JobStatePair + (*BulkDeleteJobsRequest_JobToDelete)(nil), // 97: gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest.JobToDelete + (*BulkDeleteJobsResponse_JobDeletionStatus)(nil), // 98: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.JobDeletionStatus + nil, // 99: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.ResultsByJobNameEntry + (*Log)(nil), // 100: gotocompany.optimus.core.v1beta1.Log + (*timestamppb.Timestamp)(nil), // 101: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 102: google.protobuf.Duration + (*structpb.Struct)(nil), // 103: google.protobuf.Struct } var file_gotocompany_optimus_core_v1beta1_job_spec_proto_depIdxs = []int32{ 29, // 0: gotocompany.optimus.core.v1beta1.DeployJobSpecificationRequest.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 99, // 1: gotocompany.optimus.core.v1beta1.DeployJobSpecificationResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log + 100, // 1: gotocompany.optimus.core.v1beta1.DeployJobSpecificationResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log 29, // 2: gotocompany.optimus.core.v1beta1.AddJobSpecificationsRequest.specs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 3: gotocompany.optimus.core.v1beta1.UpdateJobSpecificationsRequest.specs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 4: gotocompany.optimus.core.v1beta1.UpsertJobSpecificationsRequest.specs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 5: gotocompany.optimus.core.v1beta1.JobInspectRequest.spec:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 100, // 6: gotocompany.optimus.core.v1beta1.JobInspectRequest.scheduled_at:type_name -> google.protobuf.Timestamp - 100, // 7: gotocompany.optimus.core.v1beta1.JobRun.scheduled_at:type_name -> google.protobuf.Timestamp - 70, // 8: gotocompany.optimus.core.v1beta1.JobInspectResponse.basic_info:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection - 72, // 9: gotocompany.optimus.core.v1beta1.JobInspectResponse.upstreams:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection - 73, // 10: gotocompany.optimus.core.v1beta1.JobInspectResponse.downstreams:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection + 101, // 6: gotocompany.optimus.core.v1beta1.JobInspectRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 101, // 7: gotocompany.optimus.core.v1beta1.JobRun.scheduled_at:type_name -> google.protobuf.Timestamp + 71, // 8: gotocompany.optimus.core.v1beta1.JobInspectResponse.basic_info:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection + 73, // 9: gotocompany.optimus.core.v1beta1.JobInspectResponse.upstreams:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection + 74, // 10: gotocompany.optimus.core.v1beta1.JobInspectResponse.downstreams:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection 29, // 11: gotocompany.optimus.core.v1beta1.CreateJobSpecificationRequest.spec:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 12: gotocompany.optimus.core.v1beta1.GetJobSpecificationResponse.spec:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 13: gotocompany.optimus.core.v1beta1.ListJobSpecificationResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 14: gotocompany.optimus.core.v1beta1.CheckJobSpecificationRequest.job:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification 29, // 15: gotocompany.optimus.core.v1beta1.CheckJobSpecificationsRequest.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 99, // 16: gotocompany.optimus.core.v1beta1.CheckJobSpecificationsResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log - 75, // 17: gotocompany.optimus.core.v1beta1.ValidateRequest.from_server:type_name -> gotocompany.optimus.core.v1beta1.ValidateRequest.FromServer - 76, // 18: gotocompany.optimus.core.v1beta1.ValidateRequest.from_outside:type_name -> gotocompany.optimus.core.v1beta1.ValidateRequest.FromOutside - 79, // 19: gotocompany.optimus.core.v1beta1.ValidateResponse.results_by_job_name:type_name -> gotocompany.optimus.core.v1beta1.ValidateResponse.ResultsByJobNameEntry + 100, // 16: gotocompany.optimus.core.v1beta1.CheckJobSpecificationsResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log + 76, // 17: gotocompany.optimus.core.v1beta1.ValidateRequest.from_server:type_name -> gotocompany.optimus.core.v1beta1.ValidateRequest.FromServer + 77, // 18: gotocompany.optimus.core.v1beta1.ValidateRequest.from_outside:type_name -> gotocompany.optimus.core.v1beta1.ValidateRequest.FromOutside + 80, // 19: gotocompany.optimus.core.v1beta1.ValidateResponse.results_by_job_name:type_name -> gotocompany.optimus.core.v1beta1.ValidateResponse.ResultsByJobNameEntry 39, // 20: gotocompany.optimus.core.v1beta1.JobSpecification.config:type_name -> gotocompany.optimus.core.v1beta1.JobConfigItem 37, // 21: gotocompany.optimus.core.v1beta1.JobSpecification.task:type_name -> gotocompany.optimus.core.v1beta1.JobSpecTask - 80, // 22: gotocompany.optimus.core.v1beta1.JobSpecification.window:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Window + 81, // 22: gotocompany.optimus.core.v1beta1.JobSpecification.window:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Window 30, // 23: gotocompany.optimus.core.v1beta1.JobSpecification.dependencies:type_name -> gotocompany.optimus.core.v1beta1.JobDependency - 81, // 24: gotocompany.optimus.core.v1beta1.JobSpecification.assets:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.AssetsEntry + 82, // 24: gotocompany.optimus.core.v1beta1.JobSpecification.assets:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.AssetsEntry 38, // 25: gotocompany.optimus.core.v1beta1.JobSpecification.hooks:type_name -> gotocompany.optimus.core.v1beta1.JobSpecHook - 82, // 26: gotocompany.optimus.core.v1beta1.JobSpecification.labels:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.LabelsEntry - 83, // 27: gotocompany.optimus.core.v1beta1.JobSpecification.behavior:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior + 83, // 26: gotocompany.optimus.core.v1beta1.JobSpecification.labels:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.LabelsEntry + 84, // 27: gotocompany.optimus.core.v1beta1.JobSpecification.behavior:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior 41, // 28: gotocompany.optimus.core.v1beta1.JobSpecification.metadata:type_name -> gotocompany.optimus.core.v1beta1.JobMetadata 31, // 29: gotocompany.optimus.core.v1beta1.JobDependency.http_dependency:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency - 90, // 30: gotocompany.optimus.core.v1beta1.HttpDependency.headers:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency.HeadersEntry - 91, // 31: gotocompany.optimus.core.v1beta1.HttpDependency.params:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency.ParamsEntry - 101, // 32: gotocompany.optimus.core.v1beta1.SLAMissAlertConfig.duration_threshold:type_name -> google.protobuf.Duration + 91, // 30: gotocompany.optimus.core.v1beta1.HttpDependency.headers:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency.HeadersEntry + 92, // 31: gotocompany.optimus.core.v1beta1.HttpDependency.params:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency.ParamsEntry + 102, // 32: gotocompany.optimus.core.v1beta1.SLAMissAlertConfig.duration_threshold:type_name -> google.protobuf.Duration 32, // 33: gotocompany.optimus.core.v1beta1.OperatorAlertConfig.sla_miss:type_name -> gotocompany.optimus.core.v1beta1.SLAMissAlertConfig 33, // 34: gotocompany.optimus.core.v1beta1.OperatorAlertConfig.retry:type_name -> gotocompany.optimus.core.v1beta1.RetryAlertConfig 34, // 35: gotocompany.optimus.core.v1beta1.OperatorAlertConfig.success:type_name -> gotocompany.optimus.core.v1beta1.SuccessAlertConfig @@ -7160,106 +7226,107 @@ var file_gotocompany_optimus_core_v1beta1_job_spec_proto_depIdxs = []int32{ 39, // 39: gotocompany.optimus.core.v1beta1.JobSpecHook.config:type_name -> gotocompany.optimus.core.v1beta1.JobConfigItem 36, // 40: gotocompany.optimus.core.v1beta1.JobSpecHook.alert:type_name -> gotocompany.optimus.core.v1beta1.OperatorAlertConfig 1, // 41: gotocompany.optimus.core.v1beta1.JobEvent.type:type_name -> gotocompany.optimus.core.v1beta1.JobEvent.Type - 102, // 42: gotocompany.optimus.core.v1beta1.JobEvent.value:type_name -> google.protobuf.Struct + 103, // 42: gotocompany.optimus.core.v1beta1.JobEvent.value:type_name -> google.protobuf.Struct 42, // 43: gotocompany.optimus.core.v1beta1.JobMetadata.resource:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataResource 44, // 44: gotocompany.optimus.core.v1beta1.JobMetadata.airflow:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataAirflow - 43, // 45: gotocompany.optimus.core.v1beta1.JobSpecMetadataResource.request:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataResourceConfig - 43, // 46: gotocompany.optimus.core.v1beta1.JobSpecMetadataResource.limit:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataResourceConfig - 99, // 47: gotocompany.optimus.core.v1beta1.RefreshJobsResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log - 49, // 48: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.failures:type_name -> gotocompany.optimus.core.v1beta1.DeployJobFailure - 92, // 49: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.unknown_dependencies:type_name -> gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.UnknownDependenciesEntry - 51, // 50: gotocompany.optimus.core.v1beta1.JobChangelog.change:type_name -> gotocompany.optimus.core.v1beta1.JobChange - 52, // 51: gotocompany.optimus.core.v1beta1.GetJobChangelogResponse.history:type_name -> gotocompany.optimus.core.v1beta1.JobChangelog - 29, // 52: gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 56, // 53: gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse.job_specification_responses:type_name -> gotocompany.optimus.core.v1beta1.JobSpecificationResponse - 29, // 54: gotocompany.optimus.core.v1beta1.JobSpecificationResponse.job:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 29, // 55: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsRequest.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 99, // 56: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log - 61, // 57: gotocompany.optimus.core.v1beta1.GetJobTaskResponse.task:type_name -> gotocompany.optimus.core.v1beta1.JobTask - 93, // 58: gotocompany.optimus.core.v1beta1.JobTask.destination:type_name -> gotocompany.optimus.core.v1beta1.JobTask.Destination - 94, // 59: gotocompany.optimus.core.v1beta1.JobTask.dependencies:type_name -> gotocompany.optimus.core.v1beta1.JobTask.Dependency - 100, // 60: gotocompany.optimus.core.v1beta1.GetWindowRequest.scheduled_at:type_name -> google.protobuf.Timestamp - 100, // 61: gotocompany.optimus.core.v1beta1.GetWindowResponse.start:type_name -> google.protobuf.Timestamp - 100, // 62: gotocompany.optimus.core.v1beta1.GetWindowResponse.end:type_name -> google.protobuf.Timestamp - 0, // 63: gotocompany.optimus.core.v1beta1.UpdateJobsStateRequest.state:type_name -> gotocompany.optimus.core.v1beta1.JobState - 95, // 64: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.job_states:type_name -> gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.JobStatePair - 96, // 65: gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest.jobs:type_name -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest.JobToDelete - 98, // 66: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.results_by_job_name:type_name -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.ResultsByJobNameEntry - 29, // 67: gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection.job:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 99, // 68: gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection.notice:type_name -> gotocompany.optimus.core.v1beta1.Log - 11, // 69: gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency.runs:type_name -> gotocompany.optimus.core.v1beta1.JobRun - 71, // 70: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.external_dependency:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency - 71, // 71: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.internal_dependency:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency - 31, // 72: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.http_dependency:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency - 74, // 73: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.unknown_dependencies:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.UnknownDependencies - 99, // 74: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.notice:type_name -> gotocompany.optimus.core.v1beta1.Log - 71, // 75: gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection.downstream_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency - 99, // 76: gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection.notice:type_name -> gotocompany.optimus.core.v1beta1.Log - 29, // 77: gotocompany.optimus.core.v1beta1.ValidateRequest.FromOutside.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification - 77, // 78: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultList.results:type_name -> gotocompany.optimus.core.v1beta1.ValidateResponse.Result - 78, // 79: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultsByJobNameEntry.value:type_name -> gotocompany.optimus.core.v1beta1.ValidateResponse.ResultList - 84, // 80: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.retry:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Retry - 85, // 81: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.notify:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers - 86, // 82: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.webhook:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook - 101, // 83: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Retry.delay:type_name -> google.protobuf.Duration - 1, // 84: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.on:type_name -> gotocompany.optimus.core.v1beta1.JobEvent.Type - 87, // 85: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.config:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.ConfigEntry - 1, // 86: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.on:type_name -> gotocompany.optimus.core.v1beta1.JobEvent.Type - 88, // 87: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.endpoints:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint - 89, // 88: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint.headers:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint.HeadersEntry - 0, // 89: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.JobStatePair.state:type_name -> gotocompany.optimus.core.v1beta1.JobState - 97, // 90: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.ResultsByJobNameEntry.value:type_name -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.JobDeletionStatus - 2, // 91: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeployJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.DeployJobSpecificationRequest - 10, // 92: gotocompany.optimus.core.v1beta1.JobSpecificationService.JobInspect:input_type -> gotocompany.optimus.core.v1beta1.JobInspectRequest - 13, // 93: gotocompany.optimus.core.v1beta1.JobSpecificationService.CreateJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.CreateJobSpecificationRequest - 4, // 94: gotocompany.optimus.core.v1beta1.JobSpecificationService.AddJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.AddJobSpecificationsRequest - 6, // 95: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.UpdateJobSpecificationsRequest - 8, // 96: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpsertJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.UpsertJobSpecificationsRequest - 15, // 97: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationRequest - 54, // 98: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationsRequest - 50, // 99: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobChangelog:input_type -> gotocompany.optimus.core.v1beta1.GetJobChangelogRequest - 17, // 100: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeleteJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.DeleteJobSpecificationRequest - 19, // 101: gotocompany.optimus.core.v1beta1.JobSpecificationService.ChangeJobNamespace:input_type -> gotocompany.optimus.core.v1beta1.ChangeJobNamespaceRequest - 21, // 102: gotocompany.optimus.core.v1beta1.JobSpecificationService.ListJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.ListJobSpecificationRequest - 23, // 103: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationRequest - 25, // 104: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationsRequest - 27, // 105: gotocompany.optimus.core.v1beta1.JobSpecificationService.Validate:input_type -> gotocompany.optimus.core.v1beta1.ValidateRequest - 45, // 106: gotocompany.optimus.core.v1beta1.JobSpecificationService.RefreshJobs:input_type -> gotocompany.optimus.core.v1beta1.RefreshJobsRequest - 47, // 107: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetDeployJobsStatus:input_type -> gotocompany.optimus.core.v1beta1.GetDeployJobsStatusRequest - 57, // 108: gotocompany.optimus.core.v1beta1.JobSpecificationService.ReplaceAllJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsRequest - 59, // 109: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobTask:input_type -> gotocompany.optimus.core.v1beta1.GetJobTaskRequest - 62, // 110: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetWindow:input_type -> gotocompany.optimus.core.v1beta1.GetWindowRequest - 64, // 111: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobsState:input_type -> gotocompany.optimus.core.v1beta1.UpdateJobsStateRequest - 66, // 112: gotocompany.optimus.core.v1beta1.JobSpecificationService.SyncJobsState:input_type -> gotocompany.optimus.core.v1beta1.SyncJobsStateRequest - 68, // 113: gotocompany.optimus.core.v1beta1.JobSpecificationService.BulkDeleteJobs:input_type -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest - 3, // 114: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeployJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.DeployJobSpecificationResponse - 12, // 115: gotocompany.optimus.core.v1beta1.JobSpecificationService.JobInspect:output_type -> gotocompany.optimus.core.v1beta1.JobInspectResponse - 14, // 116: gotocompany.optimus.core.v1beta1.JobSpecificationService.CreateJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.CreateJobSpecificationResponse - 5, // 117: gotocompany.optimus.core.v1beta1.JobSpecificationService.AddJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.AddJobSpecificationsResponse - 7, // 118: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.UpdateJobSpecificationsResponse - 9, // 119: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpsertJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.UpsertJobSpecificationsResponse - 16, // 120: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationResponse - 55, // 121: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse - 53, // 122: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobChangelog:output_type -> gotocompany.optimus.core.v1beta1.GetJobChangelogResponse - 18, // 123: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeleteJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.DeleteJobSpecificationResponse - 20, // 124: gotocompany.optimus.core.v1beta1.JobSpecificationService.ChangeJobNamespace:output_type -> gotocompany.optimus.core.v1beta1.ChangeJobNamespaceResponse - 22, // 125: gotocompany.optimus.core.v1beta1.JobSpecificationService.ListJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.ListJobSpecificationResponse - 24, // 126: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationResponse - 26, // 127: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationsResponse - 28, // 128: gotocompany.optimus.core.v1beta1.JobSpecificationService.Validate:output_type -> gotocompany.optimus.core.v1beta1.ValidateResponse - 46, // 129: gotocompany.optimus.core.v1beta1.JobSpecificationService.RefreshJobs:output_type -> gotocompany.optimus.core.v1beta1.RefreshJobsResponse - 48, // 130: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetDeployJobsStatus:output_type -> gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse - 58, // 131: gotocompany.optimus.core.v1beta1.JobSpecificationService.ReplaceAllJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsResponse - 60, // 132: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobTask:output_type -> gotocompany.optimus.core.v1beta1.GetJobTaskResponse - 63, // 133: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetWindow:output_type -> gotocompany.optimus.core.v1beta1.GetWindowResponse - 65, // 134: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobsState:output_type -> gotocompany.optimus.core.v1beta1.UpdateJobsStateResponse - 67, // 135: gotocompany.optimus.core.v1beta1.JobSpecificationService.SyncJobsState:output_type -> gotocompany.optimus.core.v1beta1.SyncJobsStateResponse - 69, // 136: gotocompany.optimus.core.v1beta1.JobSpecificationService.BulkDeleteJobs:output_type -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse - 114, // [114:137] is the sub-list for method output_type - 91, // [91:114] is the sub-list for method input_type - 91, // [91:91] is the sub-list for extension type_name - 91, // [91:91] is the sub-list for extension extendee - 0, // [0:91] is the sub-list for field type_name + 45, // 45: gotocompany.optimus.core.v1beta1.JobMetadata.kubernetes:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataKubernetes + 43, // 46: gotocompany.optimus.core.v1beta1.JobSpecMetadataResource.request:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataResourceConfig + 43, // 47: gotocompany.optimus.core.v1beta1.JobSpecMetadataResource.limit:type_name -> gotocompany.optimus.core.v1beta1.JobSpecMetadataResourceConfig + 100, // 48: gotocompany.optimus.core.v1beta1.RefreshJobsResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log + 50, // 49: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.failures:type_name -> gotocompany.optimus.core.v1beta1.DeployJobFailure + 93, // 50: gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.unknown_dependencies:type_name -> gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse.UnknownDependenciesEntry + 52, // 51: gotocompany.optimus.core.v1beta1.JobChangelog.change:type_name -> gotocompany.optimus.core.v1beta1.JobChange + 53, // 52: gotocompany.optimus.core.v1beta1.GetJobChangelogResponse.history:type_name -> gotocompany.optimus.core.v1beta1.JobChangelog + 29, // 53: gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification + 57, // 54: gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse.job_specification_responses:type_name -> gotocompany.optimus.core.v1beta1.JobSpecificationResponse + 29, // 55: gotocompany.optimus.core.v1beta1.JobSpecificationResponse.job:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification + 29, // 56: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsRequest.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification + 100, // 57: gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsResponse.log_status:type_name -> gotocompany.optimus.core.v1beta1.Log + 62, // 58: gotocompany.optimus.core.v1beta1.GetJobTaskResponse.task:type_name -> gotocompany.optimus.core.v1beta1.JobTask + 94, // 59: gotocompany.optimus.core.v1beta1.JobTask.destination:type_name -> gotocompany.optimus.core.v1beta1.JobTask.Destination + 95, // 60: gotocompany.optimus.core.v1beta1.JobTask.dependencies:type_name -> gotocompany.optimus.core.v1beta1.JobTask.Dependency + 101, // 61: gotocompany.optimus.core.v1beta1.GetWindowRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 101, // 62: gotocompany.optimus.core.v1beta1.GetWindowResponse.start:type_name -> google.protobuf.Timestamp + 101, // 63: gotocompany.optimus.core.v1beta1.GetWindowResponse.end:type_name -> google.protobuf.Timestamp + 0, // 64: gotocompany.optimus.core.v1beta1.UpdateJobsStateRequest.state:type_name -> gotocompany.optimus.core.v1beta1.JobState + 96, // 65: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.job_states:type_name -> gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.JobStatePair + 97, // 66: gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest.jobs:type_name -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest.JobToDelete + 99, // 67: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.results_by_job_name:type_name -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.ResultsByJobNameEntry + 29, // 68: gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection.job:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification + 100, // 69: gotocompany.optimus.core.v1beta1.JobInspectResponse.BasicInfoSection.notice:type_name -> gotocompany.optimus.core.v1beta1.Log + 11, // 70: gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency.runs:type_name -> gotocompany.optimus.core.v1beta1.JobRun + 72, // 71: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.external_dependency:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency + 72, // 72: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.internal_dependency:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency + 31, // 73: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.http_dependency:type_name -> gotocompany.optimus.core.v1beta1.HttpDependency + 75, // 74: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.unknown_dependencies:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.UnknownDependencies + 100, // 75: gotocompany.optimus.core.v1beta1.JobInspectResponse.UpstreamSection.notice:type_name -> gotocompany.optimus.core.v1beta1.Log + 72, // 76: gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection.downstream_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobInspectResponse.JobDependency + 100, // 77: gotocompany.optimus.core.v1beta1.JobInspectResponse.DownstreamSection.notice:type_name -> gotocompany.optimus.core.v1beta1.Log + 29, // 78: gotocompany.optimus.core.v1beta1.ValidateRequest.FromOutside.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification + 78, // 79: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultList.results:type_name -> gotocompany.optimus.core.v1beta1.ValidateResponse.Result + 79, // 80: gotocompany.optimus.core.v1beta1.ValidateResponse.ResultsByJobNameEntry.value:type_name -> gotocompany.optimus.core.v1beta1.ValidateResponse.ResultList + 85, // 81: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.retry:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Retry + 86, // 82: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.notify:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers + 87, // 83: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.webhook:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook + 102, // 84: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Retry.delay:type_name -> google.protobuf.Duration + 1, // 85: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.on:type_name -> gotocompany.optimus.core.v1beta1.JobEvent.Type + 88, // 86: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.config:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Notifiers.ConfigEntry + 1, // 87: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.on:type_name -> gotocompany.optimus.core.v1beta1.JobEvent.Type + 89, // 88: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.endpoints:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint + 90, // 89: gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint.headers:type_name -> gotocompany.optimus.core.v1beta1.JobSpecification.Behavior.Webhook.WebhookEndpoint.HeadersEntry + 0, // 90: gotocompany.optimus.core.v1beta1.SyncJobsStateRequest.JobStatePair.state:type_name -> gotocompany.optimus.core.v1beta1.JobState + 98, // 91: gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.ResultsByJobNameEntry.value:type_name -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse.JobDeletionStatus + 2, // 92: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeployJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.DeployJobSpecificationRequest + 10, // 93: gotocompany.optimus.core.v1beta1.JobSpecificationService.JobInspect:input_type -> gotocompany.optimus.core.v1beta1.JobInspectRequest + 13, // 94: gotocompany.optimus.core.v1beta1.JobSpecificationService.CreateJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.CreateJobSpecificationRequest + 4, // 95: gotocompany.optimus.core.v1beta1.JobSpecificationService.AddJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.AddJobSpecificationsRequest + 6, // 96: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.UpdateJobSpecificationsRequest + 8, // 97: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpsertJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.UpsertJobSpecificationsRequest + 15, // 98: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationRequest + 55, // 99: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationsRequest + 51, // 100: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobChangelog:input_type -> gotocompany.optimus.core.v1beta1.GetJobChangelogRequest + 17, // 101: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeleteJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.DeleteJobSpecificationRequest + 19, // 102: gotocompany.optimus.core.v1beta1.JobSpecificationService.ChangeJobNamespace:input_type -> gotocompany.optimus.core.v1beta1.ChangeJobNamespaceRequest + 21, // 103: gotocompany.optimus.core.v1beta1.JobSpecificationService.ListJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.ListJobSpecificationRequest + 23, // 104: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecification:input_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationRequest + 25, // 105: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationsRequest + 27, // 106: gotocompany.optimus.core.v1beta1.JobSpecificationService.Validate:input_type -> gotocompany.optimus.core.v1beta1.ValidateRequest + 46, // 107: gotocompany.optimus.core.v1beta1.JobSpecificationService.RefreshJobs:input_type -> gotocompany.optimus.core.v1beta1.RefreshJobsRequest + 48, // 108: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetDeployJobsStatus:input_type -> gotocompany.optimus.core.v1beta1.GetDeployJobsStatusRequest + 58, // 109: gotocompany.optimus.core.v1beta1.JobSpecificationService.ReplaceAllJobSpecifications:input_type -> gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsRequest + 60, // 110: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobTask:input_type -> gotocompany.optimus.core.v1beta1.GetJobTaskRequest + 63, // 111: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetWindow:input_type -> gotocompany.optimus.core.v1beta1.GetWindowRequest + 65, // 112: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobsState:input_type -> gotocompany.optimus.core.v1beta1.UpdateJobsStateRequest + 67, // 113: gotocompany.optimus.core.v1beta1.JobSpecificationService.SyncJobsState:input_type -> gotocompany.optimus.core.v1beta1.SyncJobsStateRequest + 69, // 114: gotocompany.optimus.core.v1beta1.JobSpecificationService.BulkDeleteJobs:input_type -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsRequest + 3, // 115: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeployJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.DeployJobSpecificationResponse + 12, // 116: gotocompany.optimus.core.v1beta1.JobSpecificationService.JobInspect:output_type -> gotocompany.optimus.core.v1beta1.JobInspectResponse + 14, // 117: gotocompany.optimus.core.v1beta1.JobSpecificationService.CreateJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.CreateJobSpecificationResponse + 5, // 118: gotocompany.optimus.core.v1beta1.JobSpecificationService.AddJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.AddJobSpecificationsResponse + 7, // 119: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.UpdateJobSpecificationsResponse + 9, // 120: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpsertJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.UpsertJobSpecificationsResponse + 16, // 121: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationResponse + 56, // 122: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.GetJobSpecificationsResponse + 54, // 123: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobChangelog:output_type -> gotocompany.optimus.core.v1beta1.GetJobChangelogResponse + 18, // 124: gotocompany.optimus.core.v1beta1.JobSpecificationService.DeleteJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.DeleteJobSpecificationResponse + 20, // 125: gotocompany.optimus.core.v1beta1.JobSpecificationService.ChangeJobNamespace:output_type -> gotocompany.optimus.core.v1beta1.ChangeJobNamespaceResponse + 22, // 126: gotocompany.optimus.core.v1beta1.JobSpecificationService.ListJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.ListJobSpecificationResponse + 24, // 127: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecification:output_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationResponse + 26, // 128: gotocompany.optimus.core.v1beta1.JobSpecificationService.CheckJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.CheckJobSpecificationsResponse + 28, // 129: gotocompany.optimus.core.v1beta1.JobSpecificationService.Validate:output_type -> gotocompany.optimus.core.v1beta1.ValidateResponse + 47, // 130: gotocompany.optimus.core.v1beta1.JobSpecificationService.RefreshJobs:output_type -> gotocompany.optimus.core.v1beta1.RefreshJobsResponse + 49, // 131: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetDeployJobsStatus:output_type -> gotocompany.optimus.core.v1beta1.GetDeployJobsStatusResponse + 59, // 132: gotocompany.optimus.core.v1beta1.JobSpecificationService.ReplaceAllJobSpecifications:output_type -> gotocompany.optimus.core.v1beta1.ReplaceAllJobSpecificationsResponse + 61, // 133: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetJobTask:output_type -> gotocompany.optimus.core.v1beta1.GetJobTaskResponse + 64, // 134: gotocompany.optimus.core.v1beta1.JobSpecificationService.GetWindow:output_type -> gotocompany.optimus.core.v1beta1.GetWindowResponse + 66, // 135: gotocompany.optimus.core.v1beta1.JobSpecificationService.UpdateJobsState:output_type -> gotocompany.optimus.core.v1beta1.UpdateJobsStateResponse + 68, // 136: gotocompany.optimus.core.v1beta1.JobSpecificationService.SyncJobsState:output_type -> gotocompany.optimus.core.v1beta1.SyncJobsStateResponse + 70, // 137: gotocompany.optimus.core.v1beta1.JobSpecificationService.BulkDeleteJobs:output_type -> gotocompany.optimus.core.v1beta1.BulkDeleteJobsResponse + 115, // [115:138] is the sub-list for method output_type + 92, // [92:115] is the sub-list for method input_type + 92, // [92:92] is the sub-list for extension type_name + 92, // [92:92] is the sub-list for extension extendee + 0, // [0:92] is the sub-list for field type_name } func init() { file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() } @@ -7786,7 +7853,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshJobsRequest); i { + switch v := v.(*JobSpecMetadataKubernetes); i { case 0: return &v.state case 1: @@ -7798,7 +7865,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshJobsResponse); i { + switch v := v.(*RefreshJobsRequest); i { case 0: return &v.state case 1: @@ -7810,7 +7877,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDeployJobsStatusRequest); i { + switch v := v.(*RefreshJobsResponse); i { case 0: return &v.state case 1: @@ -7822,7 +7889,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDeployJobsStatusResponse); i { + switch v := v.(*GetDeployJobsStatusRequest); i { case 0: return &v.state case 1: @@ -7834,7 +7901,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeployJobFailure); i { + switch v := v.(*GetDeployJobsStatusResponse); i { case 0: return &v.state case 1: @@ -7846,7 +7913,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobChangelogRequest); i { + switch v := v.(*DeployJobFailure); i { case 0: return &v.state case 1: @@ -7858,7 +7925,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobChange); i { + switch v := v.(*GetJobChangelogRequest); i { case 0: return &v.state case 1: @@ -7870,7 +7937,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobChangelog); i { + switch v := v.(*JobChange); i { case 0: return &v.state case 1: @@ -7882,7 +7949,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobChangelogResponse); i { + switch v := v.(*JobChangelog); i { case 0: return &v.state case 1: @@ -7894,7 +7961,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobSpecificationsRequest); i { + switch v := v.(*GetJobChangelogResponse); i { case 0: return &v.state case 1: @@ -7906,7 +7973,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobSpecificationsResponse); i { + switch v := v.(*GetJobSpecificationsRequest); i { case 0: return &v.state case 1: @@ -7918,7 +7985,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobSpecificationResponse); i { + switch v := v.(*GetJobSpecificationsResponse); i { case 0: return &v.state case 1: @@ -7930,7 +7997,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplaceAllJobSpecificationsRequest); i { + switch v := v.(*JobSpecificationResponse); i { case 0: return &v.state case 1: @@ -7942,7 +8009,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplaceAllJobSpecificationsResponse); i { + switch v := v.(*ReplaceAllJobSpecificationsRequest); i { case 0: return &v.state case 1: @@ -7954,7 +8021,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobTaskRequest); i { + switch v := v.(*ReplaceAllJobSpecificationsResponse); i { case 0: return &v.state case 1: @@ -7966,7 +8033,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobTaskResponse); i { + switch v := v.(*GetJobTaskRequest); i { case 0: return &v.state case 1: @@ -7978,7 +8045,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobTask); i { + switch v := v.(*GetJobTaskResponse); i { case 0: return &v.state case 1: @@ -7990,7 +8057,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWindowRequest); i { + switch v := v.(*JobTask); i { case 0: return &v.state case 1: @@ -8002,7 +8069,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWindowResponse); i { + switch v := v.(*GetWindowRequest); i { case 0: return &v.state case 1: @@ -8014,7 +8081,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobsStateRequest); i { + switch v := v.(*GetWindowResponse); i { case 0: return &v.state case 1: @@ -8026,7 +8093,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobsStateResponse); i { + switch v := v.(*UpdateJobsStateRequest); i { case 0: return &v.state case 1: @@ -8038,7 +8105,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncJobsStateRequest); i { + switch v := v.(*UpdateJobsStateResponse); i { case 0: return &v.state case 1: @@ -8050,7 +8117,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncJobsStateResponse); i { + switch v := v.(*SyncJobsStateRequest); i { case 0: return &v.state case 1: @@ -8062,7 +8129,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkDeleteJobsRequest); i { + switch v := v.(*SyncJobsStateResponse); i { case 0: return &v.state case 1: @@ -8074,7 +8141,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkDeleteJobsResponse); i { + switch v := v.(*BulkDeleteJobsRequest); i { case 0: return &v.state case 1: @@ -8086,7 +8153,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobInspectResponse_BasicInfoSection); i { + switch v := v.(*BulkDeleteJobsResponse); i { case 0: return &v.state case 1: @@ -8098,7 +8165,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobInspectResponse_JobDependency); i { + switch v := v.(*JobInspectResponse_BasicInfoSection); i { case 0: return &v.state case 1: @@ -8110,7 +8177,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobInspectResponse_UpstreamSection); i { + switch v := v.(*JobInspectResponse_JobDependency); i { case 0: return &v.state case 1: @@ -8122,7 +8189,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobInspectResponse_DownstreamSection); i { + switch v := v.(*JobInspectResponse_UpstreamSection); i { case 0: return &v.state case 1: @@ -8134,7 +8201,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobInspectResponse_UpstreamSection_UnknownDependencies); i { + switch v := v.(*JobInspectResponse_DownstreamSection); i { case 0: return &v.state case 1: @@ -8146,7 +8213,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateRequest_FromServer); i { + switch v := v.(*JobInspectResponse_UpstreamSection_UnknownDependencies); i { case 0: return &v.state case 1: @@ -8158,7 +8225,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateRequest_FromOutside); i { + switch v := v.(*ValidateRequest_FromServer); i { case 0: return &v.state case 1: @@ -8170,7 +8237,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateResponse_Result); i { + switch v := v.(*ValidateRequest_FromOutside); i { case 0: return &v.state case 1: @@ -8182,6 +8249,18 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateResponse_Result); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateResponse_ResultList); i { case 0: return &v.state @@ -8193,7 +8272,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSpecification_Window); i { case 0: return &v.state @@ -8205,7 +8284,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSpecification_Behavior); i { case 0: return &v.state @@ -8217,7 +8296,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSpecification_Behavior_Retry); i { case 0: return &v.state @@ -8229,7 +8308,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSpecification_Behavior_Notifiers); i { case 0: return &v.state @@ -8241,7 +8320,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSpecification_Behavior_Webhook); i { case 0: return &v.state @@ -8253,7 +8332,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobSpecification_Behavior_Webhook_WebhookEndpoint); i { case 0: return &v.state @@ -8265,7 +8344,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobTask_Destination); i { case 0: return &v.state @@ -8277,7 +8356,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobTask_Dependency); i { case 0: return &v.state @@ -8289,7 +8368,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncJobsStateRequest_JobStatePair); i { case 0: return &v.state @@ -8301,7 +8380,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BulkDeleteJobsRequest_JobToDelete); i { case 0: return &v.state @@ -8313,7 +8392,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_spec_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BulkDeleteJobsResponse_JobDeletionStatus); i { case 0: return &v.state @@ -8336,7 +8415,7 @@ func file_gotocompany_optimus_core_v1beta1_job_spec_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gotocompany_optimus_core_v1beta1_job_spec_proto_rawDesc, NumEnums: 2, - NumMessages: 97, + NumMessages: 98, NumExtensions: 0, NumServices: 1, }, diff --git a/protos/gotocompany/optimus/core/v1beta1/job_spec.swagger.json b/protos/gotocompany/optimus/core/v1beta1/job_spec.swagger.json index c4f4ac3973..a3f4fe445e 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_spec.swagger.json +++ b/protos/gotocompany/optimus/core/v1beta1/job_spec.swagger.json @@ -1560,6 +1560,9 @@ }, "airflow": { "$ref": "#/definitions/v1beta1JobSpecMetadataAirflow" + }, + "kubernetes": { + "$ref": "#/definitions/v1beta1JobSpecMetadataKubernetes" } } }, @@ -1606,6 +1609,14 @@ } } }, + "v1beta1JobSpecMetadataKubernetes": { + "type": "object", + "properties": { + "serviceAccount": { + "type": "string" + } + } + }, "v1beta1JobSpecMetadataResource": { "type": "object", "properties": { diff --git a/tests/setup/job.go b/tests/setup/job.go index a0b085784a..ce3d360d32 100644 --- a/tests/setup/job.go +++ b/tests/setup/job.go @@ -35,6 +35,7 @@ type DummyJobBuilder struct { resourceRequestConfig *job.MetadataResourceConfig resourceLimitConfig *job.MetadataResourceConfig scheduler map[string]string + kubernetes *job.MetadataKubernetes name job.Name @@ -134,6 +135,7 @@ func NewDummyJobBuilder() *DummyJobBuilder { resourceRequestConfig: job.NewMetadataResourceConfig("128m", "128Mi"), resourceLimitConfig: job.NewMetadataResourceConfig("128m", "128Mi"), scheduler: map[string]string{"scheduler_config_key": "value"}, + kubernetes: job.NewKubernetesMetadata("sample_service_account"), name: name, destinationURN: dummyDestination, sourceURNs: []resource.URN{dummySource}, @@ -303,6 +305,7 @@ func (d *DummyJobBuilder) Build(tnnt tenant.Tenant) *job.Job { metadata, err := job.NewMetadataBuilder(). WithResource(resourceMetadata). WithScheduler(d.scheduler). + WithKubernetes(d.kubernetes). Build() if err != nil { panic(err)