From c0aa9cd9f6b743a5a5eb1808737310ef647c20b3 Mon Sep 17 00:00:00 2001 From: Nick Zelei <2420177+nickzelei@users.noreply.github.com> Date: Tue, 21 Nov 2023 16:04:30 -0800 Subject: [PATCH] updates jobsource proto to include data gen option (#627) --- backend/gen/go/db/jobs.sql.go | 43 +- backend/gen/go/protos/mgmt/v1alpha1/job.pb.go | 2834 +++++++++-------- .../protos/mgmt/v1alpha1/job.pb.validate.go | 892 ++++-- backend/internal/dtomaps/jobs.go | 3 +- backend/internal/nucleusdb/jobs.go | 5 +- backend/internal/nucleusdb/jobs_test.go | 11 +- backend/protos/mgmt/v1alpha1/job.proto | 38 +- .../mgmt/v1alpha1/job-service/jobs.go | 100 +- .../mgmt/v1alpha1/job-service/jobs_test.go | 30 +- backend/sql/postgresql/models/models.go | 22 +- backend/sql/postgresql/queries/jobs.sql | 11 +- ...121231248_jobs-connection-id-null.down.sql | 3 + ...31121231248_jobs-connection-id-null.up.sql | 2 + frontend/app/jobs/[id]/destinations/page.tsx | 9 +- .../components/SourceConnectionCard.tsx | 47 +- .../[id]/subsets/components/SubsetCard.tsx | 13 +- .../app/new/job/[id]/destination/page.tsx | 9 +- frontend/app/new/job/connect/page.tsx | 2 +- frontend/app/new/job/subset/page.tsx | 7 +- .../mgmt/v1alpha1/job_pb.ts | 235 +- .../datasync/activities/benthos-builder.go | 39 +- .../activities/benthos-builder_test.go | 7 +- 22 files changed, 2696 insertions(+), 1666 deletions(-) create mode 100644 backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.down.sql create mode 100644 backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.up.sql diff --git a/backend/gen/go/db/jobs.sql.go b/backend/gen/go/db/jobs.sql.go index 722c89843b..9a643ce8f6 100644 --- a/backend/gen/go/db/jobs.sql.go +++ b/backend/gen/go/db/jobs.sql.go @@ -14,24 +14,23 @@ import ( const createJob = `-- name: CreateJob :one INSERT INTO neosync_api.jobs ( - name, account_id, status, connection_source_id, connection_options, mappings, + name, account_id, status, connection_options, mappings, cron_schedule, created_by_id, updated_by_id ) VALUES ( - $1, $2, $3, $4, $5, $6, $7, $8, $9 + $1, $2, $3, $4, $5, $6, $7, $8 ) RETURNING id, created_at, updated_at, name, account_id, status, connection_source_id, connection_options, mappings, cron_schedule, created_by_id, updated_by_id ` type CreateJobParams struct { - Name string - AccountID pgtype.UUID - Status int16 - ConnectionSourceID pgtype.UUID - ConnectionOptions *pg_models.JobSourceOptions - Mappings []*pg_models.JobMapping - CronSchedule pgtype.Text - CreatedByID pgtype.UUID - UpdatedByID pgtype.UUID + Name string + AccountID pgtype.UUID + Status int16 + ConnectionOptions *pg_models.JobSourceOptions + Mappings []*pg_models.JobMapping + CronSchedule pgtype.Text + CreatedByID pgtype.UUID + UpdatedByID pgtype.UUID } func (q *Queries) CreateJob(ctx context.Context, db DBTX, arg CreateJobParams) (NeosyncApiJob, error) { @@ -39,7 +38,6 @@ func (q *Queries) CreateJob(ctx context.Context, db DBTX, arg CreateJobParams) ( arg.Name, arg.AccountID, arg.Status, - arg.ConnectionSourceID, arg.ConnectionOptions, arg.Mappings, arg.CronSchedule, @@ -434,27 +432,20 @@ func (q *Queries) UpdateJobSchedule(ctx context.Context, db DBTX, arg UpdateJobS const updateJobSource = `-- name: UpdateJobSource :one UPDATE neosync_api.jobs -SET connection_source_id = $1, -connection_options = $2, -updated_by_id = $3 -WHERE id = $4 +SET connection_options = $1, +updated_by_id = $2 +WHERE id = $3 RETURNING id, created_at, updated_at, name, account_id, status, connection_source_id, connection_options, mappings, cron_schedule, created_by_id, updated_by_id ` type UpdateJobSourceParams struct { - ConnectionSourceID pgtype.UUID - ConnectionOptions *pg_models.JobSourceOptions - UpdatedByID pgtype.UUID - ID pgtype.UUID + ConnectionOptions *pg_models.JobSourceOptions + UpdatedByID pgtype.UUID + ID pgtype.UUID } func (q *Queries) UpdateJobSource(ctx context.Context, db DBTX, arg UpdateJobSourceParams) (NeosyncApiJob, error) { - row := db.QueryRow(ctx, updateJobSource, - arg.ConnectionSourceID, - arg.ConnectionOptions, - arg.UpdatedByID, - arg.ID, - ) + row := db.QueryRow(ctx, updateJobSource, arg.ConnectionOptions, arg.UpdatedByID, arg.ID) var i NeosyncApiJob err := row.Scan( &i.ID, diff --git a/backend/gen/go/protos/mgmt/v1alpha1/job.pb.go b/backend/gen/go/protos/mgmt/v1alpha1/job.pb.go index fd1d032a39..cc05b7c0e7 100644 --- a/backend/gen/go/protos/mgmt/v1alpha1/job.pb.go +++ b/backend/gen/go/protos/mgmt/v1alpha1/job.pb.go @@ -292,8 +292,7 @@ type JobSource struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` - Options *JobSourceOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` + Options *JobSourceOptions `protobuf:"bytes,1,opt,name=options,proto3" json:"options,omitempty"` } func (x *JobSource) Reset() { @@ -328,20 +327,122 @@ func (*JobSource) Descriptor() ([]byte, []int) { return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{2} } -func (x *JobSource) GetConnectionId() string { +func (x *JobSource) GetOptions() *JobSourceOptions { if x != nil { - return x.ConnectionId + return x.Options } - return "" + return nil } -func (x *JobSource) GetOptions() *JobSourceOptions { - if x != nil { - return x.Options +type JobSourceOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Config: + // + // *JobSourceOptions_Postgres + // *JobSourceOptions_AwsS3 + // *JobSourceOptions_Mysql + // *JobSourceOptions_Generate + Config isJobSourceOptions_Config `protobuf_oneof:"config"` +} + +func (x *JobSourceOptions) Reset() { + *x = JobSourceOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSourceOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSourceOptions) ProtoMessage() {} + +func (x *JobSourceOptions) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JobSourceOptions.ProtoReflect.Descriptor instead. +func (*JobSourceOptions) Descriptor() ([]byte, []int) { + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{3} +} + +func (m *JobSourceOptions) GetConfig() isJobSourceOptions_Config { + if m != nil { + return m.Config } return nil } +func (x *JobSourceOptions) GetPostgres() *PostgresSourceConnectionOptions { + if x, ok := x.GetConfig().(*JobSourceOptions_Postgres); ok { + return x.Postgres + } + return nil +} + +func (x *JobSourceOptions) GetAwsS3() *AwsS3SourceConnectionOptions { + if x, ok := x.GetConfig().(*JobSourceOptions_AwsS3); ok { + return x.AwsS3 + } + return nil +} + +func (x *JobSourceOptions) GetMysql() *MysqlSourceConnectionOptions { + if x, ok := x.GetConfig().(*JobSourceOptions_Mysql); ok { + return x.Mysql + } + return nil +} + +func (x *JobSourceOptions) GetGenerate() *GenerateSourceOptions { + if x, ok := x.GetConfig().(*JobSourceOptions_Generate); ok { + return x.Generate + } + return nil +} + +type isJobSourceOptions_Config interface { + isJobSourceOptions_Config() +} + +type JobSourceOptions_Postgres struct { + Postgres *PostgresSourceConnectionOptions `protobuf:"bytes,1,opt,name=postgres,proto3,oneof"` +} + +type JobSourceOptions_AwsS3 struct { + AwsS3 *AwsS3SourceConnectionOptions `protobuf:"bytes,2,opt,name=aws_s3,json=awsS3,proto3,oneof"` +} + +type JobSourceOptions_Mysql struct { + Mysql *MysqlSourceConnectionOptions `protobuf:"bytes,3,opt,name=mysql,proto3,oneof"` +} + +type JobSourceOptions_Generate struct { + Generate *GenerateSourceOptions `protobuf:"bytes,4,opt,name=generate,proto3,oneof"` +} + +func (*JobSourceOptions_Postgres) isJobSourceOptions_Config() {} + +func (*JobSourceOptions_AwsS3) isJobSourceOptions_Config() {} + +func (*JobSourceOptions_Mysql) isJobSourceOptions_Config() {} + +func (*JobSourceOptions_Generate) isJobSourceOptions_Config() {} + type CreateJobDestination struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -354,7 +455,7 @@ type CreateJobDestination struct { func (x *CreateJobDestination) Reset() { *x = CreateJobDestination{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[3] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -367,7 +468,7 @@ func (x *CreateJobDestination) String() string { func (*CreateJobDestination) ProtoMessage() {} func (x *CreateJobDestination) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[3] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -380,7 +481,7 @@ func (x *CreateJobDestination) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateJobDestination.ProtoReflect.Descriptor instead. func (*CreateJobDestination) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{3} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{4} } func (x *CreateJobDestination) GetConnectionId() string { @@ -410,7 +511,7 @@ type JobDestination struct { func (x *JobDestination) Reset() { *x = JobDestination{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[4] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -423,7 +524,7 @@ func (x *JobDestination) String() string { func (*JobDestination) ProtoMessage() {} func (x *JobDestination) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[4] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -436,7 +537,7 @@ func (x *JobDestination) ProtoReflect() protoreflect.Message { // Deprecated: Use JobDestination.ProtoReflect.Descriptor instead. func (*JobDestination) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{4} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{5} } func (x *JobDestination) GetConnectionId() string { @@ -460,36 +561,36 @@ func (x *JobDestination) GetId() string { return "" } -type JobSourceOptions struct { +type GenerateSourceOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Config: + Schemas []*GenerateSourceSchemaOption `protobuf:"bytes,1,rep,name=schemas,proto3" json:"schemas,omitempty"` + // Types that are assignable to ForeignKeyConstraintConfig: // - // *JobSourceOptions_PostgresOptions - // *JobSourceOptions_AwsS3Options - // *JobSourceOptions_MysqlOptions - Config isJobSourceOptions_Config `protobuf_oneof:"config"` + // *GenerateSourceOptions_IgnoreForeignKeys + // *GenerateSourceOptions_FkSourceConnectionId + ForeignKeyConstraintConfig isGenerateSourceOptions_ForeignKeyConstraintConfig `protobuf_oneof:"foreign_key_constraint_config"` } -func (x *JobSourceOptions) Reset() { - *x = JobSourceOptions{} +func (x *GenerateSourceOptions) Reset() { + *x = GenerateSourceOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[5] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *JobSourceOptions) String() string { +func (x *GenerateSourceOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*JobSourceOptions) ProtoMessage() {} +func (*GenerateSourceOptions) ProtoMessage() {} -func (x *JobSourceOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[5] +func (x *GenerateSourceOptions) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -500,60 +601,166 @@ func (x *JobSourceOptions) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use JobSourceOptions.ProtoReflect.Descriptor instead. -func (*JobSourceOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{5} +// Deprecated: Use GenerateSourceOptions.ProtoReflect.Descriptor instead. +func (*GenerateSourceOptions) Descriptor() ([]byte, []int) { + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{6} } -func (m *JobSourceOptions) GetConfig() isJobSourceOptions_Config { - if m != nil { - return m.Config +func (x *GenerateSourceOptions) GetSchemas() []*GenerateSourceSchemaOption { + if x != nil { + return x.Schemas } return nil } -func (x *JobSourceOptions) GetPostgresOptions() *PostgresSourceConnectionOptions { - if x, ok := x.GetConfig().(*JobSourceOptions_PostgresOptions); ok { - return x.PostgresOptions +func (m *GenerateSourceOptions) GetForeignKeyConstraintConfig() isGenerateSourceOptions_ForeignKeyConstraintConfig { + if m != nil { + return m.ForeignKeyConstraintConfig } return nil } -func (x *JobSourceOptions) GetAwsS3Options() *AwsS3SourceConnectionOptions { - if x, ok := x.GetConfig().(*JobSourceOptions_AwsS3Options); ok { - return x.AwsS3Options +func (x *GenerateSourceOptions) GetIgnoreForeignKeys() bool { + if x, ok := x.GetForeignKeyConstraintConfig().(*GenerateSourceOptions_IgnoreForeignKeys); ok { + return x.IgnoreForeignKeys } - return nil + return false } -func (x *JobSourceOptions) GetMysqlOptions() *MysqlSourceConnectionOptions { - if x, ok := x.GetConfig().(*JobSourceOptions_MysqlOptions); ok { - return x.MysqlOptions +func (x *GenerateSourceOptions) GetFkSourceConnectionId() string { + if x, ok := x.GetForeignKeyConstraintConfig().(*GenerateSourceOptions_FkSourceConnectionId); ok { + return x.FkSourceConnectionId + } + return "" +} + +type isGenerateSourceOptions_ForeignKeyConstraintConfig interface { + isGenerateSourceOptions_ForeignKeyConstraintConfig() +} + +type GenerateSourceOptions_IgnoreForeignKeys struct { + IgnoreForeignKeys bool `protobuf:"varint,2,opt,name=ignore_foreign_keys,json=ignoreForeignKeys,proto3,oneof"` +} + +type GenerateSourceOptions_FkSourceConnectionId struct { + FkSourceConnectionId string `protobuf:"bytes,3,opt,name=fk_source_connection_id,json=fkSourceConnectionId,proto3,oneof"` +} + +func (*GenerateSourceOptions_IgnoreForeignKeys) isGenerateSourceOptions_ForeignKeyConstraintConfig() { +} + +func (*GenerateSourceOptions_FkSourceConnectionId) isGenerateSourceOptions_ForeignKeyConstraintConfig() { +} + +type GenerateSourceSchemaOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Schema string `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` + Tables []*GenerateSourceTableOption `protobuf:"bytes,2,rep,name=tables,proto3" json:"tables,omitempty"` +} + +func (x *GenerateSourceSchemaOption) Reset() { + *x = GenerateSourceSchemaOption{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateSourceSchemaOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateSourceSchemaOption) ProtoMessage() {} + +func (x *GenerateSourceSchemaOption) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateSourceSchemaOption.ProtoReflect.Descriptor instead. +func (*GenerateSourceSchemaOption) Descriptor() ([]byte, []int) { + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{7} +} + +func (x *GenerateSourceSchemaOption) GetSchema() string { + if x != nil { + return x.Schema + } + return "" +} + +func (x *GenerateSourceSchemaOption) GetTables() []*GenerateSourceTableOption { + if x != nil { + return x.Tables } return nil } -type isJobSourceOptions_Config interface { - isJobSourceOptions_Config() +type GenerateSourceTableOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"` + RowCount int64 `protobuf:"varint,2,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` } -type JobSourceOptions_PostgresOptions struct { - PostgresOptions *PostgresSourceConnectionOptions `protobuf:"bytes,1,opt,name=postgres_options,json=postgresOptions,proto3,oneof"` +func (x *GenerateSourceTableOption) Reset() { + *x = GenerateSourceTableOption{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type JobSourceOptions_AwsS3Options struct { - AwsS3Options *AwsS3SourceConnectionOptions `protobuf:"bytes,2,opt,name=aws_s3_options,json=awsS3Options,proto3,oneof"` +func (x *GenerateSourceTableOption) String() string { + return protoimpl.X.MessageStringOf(x) } -type JobSourceOptions_MysqlOptions struct { - MysqlOptions *MysqlSourceConnectionOptions `protobuf:"bytes,3,opt,name=mysql_options,json=mysqlOptions,proto3,oneof"` +func (*GenerateSourceTableOption) ProtoMessage() {} + +func (x *GenerateSourceTableOption) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (*JobSourceOptions_PostgresOptions) isJobSourceOptions_Config() {} +// Deprecated: Use GenerateSourceTableOption.ProtoReflect.Descriptor instead. +func (*GenerateSourceTableOption) Descriptor() ([]byte, []int) { + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{8} +} -func (*JobSourceOptions_AwsS3Options) isJobSourceOptions_Config() {} +func (x *GenerateSourceTableOption) GetTable() string { + if x != nil { + return x.Table + } + return "" +} -func (*JobSourceOptions_MysqlOptions) isJobSourceOptions_Config() {} +func (x *GenerateSourceTableOption) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} type PostgresSourceConnectionOptions struct { state protoimpl.MessageState @@ -562,12 +769,13 @@ type PostgresSourceConnectionOptions struct { HaltOnNewColumnAddition bool `protobuf:"varint,1,opt,name=halt_on_new_column_addition,json=haltOnNewColumnAddition,proto3" json:"halt_on_new_column_addition,omitempty"` Schemas []*PostgresSourceSchemaOption `protobuf:"bytes,2,rep,name=schemas,proto3" json:"schemas,omitempty"` + ConnectionId string `protobuf:"bytes,3,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` } func (x *PostgresSourceConnectionOptions) Reset() { *x = PostgresSourceConnectionOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[6] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -580,7 +788,7 @@ func (x *PostgresSourceConnectionOptions) String() string { func (*PostgresSourceConnectionOptions) ProtoMessage() {} func (x *PostgresSourceConnectionOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[6] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -593,7 +801,7 @@ func (x *PostgresSourceConnectionOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use PostgresSourceConnectionOptions.ProtoReflect.Descriptor instead. func (*PostgresSourceConnectionOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{6} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{9} } func (x *PostgresSourceConnectionOptions) GetHaltOnNewColumnAddition() bool { @@ -610,6 +818,13 @@ func (x *PostgresSourceConnectionOptions) GetSchemas() []*PostgresSourceSchemaOp return nil } +func (x *PostgresSourceConnectionOptions) GetConnectionId() string { + if x != nil { + return x.ConnectionId + } + return "" +} + type PostgresSourceSchemaOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -622,7 +837,7 @@ type PostgresSourceSchemaOption struct { func (x *PostgresSourceSchemaOption) Reset() { *x = PostgresSourceSchemaOption{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[7] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -635,7 +850,7 @@ func (x *PostgresSourceSchemaOption) String() string { func (*PostgresSourceSchemaOption) ProtoMessage() {} func (x *PostgresSourceSchemaOption) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[7] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -648,7 +863,7 @@ func (x *PostgresSourceSchemaOption) ProtoReflect() protoreflect.Message { // Deprecated: Use PostgresSourceSchemaOption.ProtoReflect.Descriptor instead. func (*PostgresSourceSchemaOption) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{7} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{10} } func (x *PostgresSourceSchemaOption) GetSchema() string { @@ -677,7 +892,7 @@ type PostgresSourceTableOption struct { func (x *PostgresSourceTableOption) Reset() { *x = PostgresSourceTableOption{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[8] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -690,7 +905,7 @@ func (x *PostgresSourceTableOption) String() string { func (*PostgresSourceTableOption) ProtoMessage() {} func (x *PostgresSourceTableOption) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[8] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -703,7 +918,7 @@ func (x *PostgresSourceTableOption) ProtoReflect() protoreflect.Message { // Deprecated: Use PostgresSourceTableOption.ProtoReflect.Descriptor instead. func (*PostgresSourceTableOption) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{8} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{11} } func (x *PostgresSourceTableOption) GetTable() string { @@ -727,12 +942,13 @@ type MysqlSourceConnectionOptions struct { HaltOnNewColumnAddition bool `protobuf:"varint,1,opt,name=halt_on_new_column_addition,json=haltOnNewColumnAddition,proto3" json:"halt_on_new_column_addition,omitempty"` Schemas []*MysqlSourceSchemaOption `protobuf:"bytes,2,rep,name=schemas,proto3" json:"schemas,omitempty"` + ConnectionId string `protobuf:"bytes,3,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` } func (x *MysqlSourceConnectionOptions) Reset() { *x = MysqlSourceConnectionOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[9] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -745,7 +961,7 @@ func (x *MysqlSourceConnectionOptions) String() string { func (*MysqlSourceConnectionOptions) ProtoMessage() {} func (x *MysqlSourceConnectionOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[9] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -758,7 +974,7 @@ func (x *MysqlSourceConnectionOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use MysqlSourceConnectionOptions.ProtoReflect.Descriptor instead. func (*MysqlSourceConnectionOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{9} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{12} } func (x *MysqlSourceConnectionOptions) GetHaltOnNewColumnAddition() bool { @@ -775,6 +991,13 @@ func (x *MysqlSourceConnectionOptions) GetSchemas() []*MysqlSourceSchemaOption { return nil } +func (x *MysqlSourceConnectionOptions) GetConnectionId() string { + if x != nil { + return x.ConnectionId + } + return "" +} + type MysqlSourceSchemaOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -787,7 +1010,7 @@ type MysqlSourceSchemaOption struct { func (x *MysqlSourceSchemaOption) Reset() { *x = MysqlSourceSchemaOption{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[10] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -800,7 +1023,7 @@ func (x *MysqlSourceSchemaOption) String() string { func (*MysqlSourceSchemaOption) ProtoMessage() {} func (x *MysqlSourceSchemaOption) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[10] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -813,7 +1036,7 @@ func (x *MysqlSourceSchemaOption) ProtoReflect() protoreflect.Message { // Deprecated: Use MysqlSourceSchemaOption.ProtoReflect.Descriptor instead. func (*MysqlSourceSchemaOption) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{10} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{13} } func (x *MysqlSourceSchemaOption) GetSchema() string { @@ -842,7 +1065,7 @@ type MysqlSourceTableOption struct { func (x *MysqlSourceTableOption) Reset() { *x = MysqlSourceTableOption{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[11] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -855,7 +1078,7 @@ func (x *MysqlSourceTableOption) String() string { func (*MysqlSourceTableOption) ProtoMessage() {} func (x *MysqlSourceTableOption) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[11] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -868,7 +1091,7 @@ func (x *MysqlSourceTableOption) ProtoReflect() protoreflect.Message { // Deprecated: Use MysqlSourceTableOption.ProtoReflect.Descriptor instead. func (*MysqlSourceTableOption) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{11} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{14} } func (x *MysqlSourceTableOption) GetTable() string { @@ -889,12 +1112,14 @@ type AwsS3SourceConnectionOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` } func (x *AwsS3SourceConnectionOptions) Reset() { *x = AwsS3SourceConnectionOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[12] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +1132,7 @@ func (x *AwsS3SourceConnectionOptions) String() string { func (*AwsS3SourceConnectionOptions) ProtoMessage() {} func (x *AwsS3SourceConnectionOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[12] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +1145,14 @@ func (x *AwsS3SourceConnectionOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use AwsS3SourceConnectionOptions.ProtoReflect.Descriptor instead. func (*AwsS3SourceConnectionOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{12} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{15} +} + +func (x *AwsS3SourceConnectionOptions) GetConnectionId() string { + if x != nil { + return x.ConnectionId + } + return "" } type JobDestinationOptions struct { @@ -939,7 +1171,7 @@ type JobDestinationOptions struct { func (x *JobDestinationOptions) Reset() { *x = JobDestinationOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[13] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -952,7 +1184,7 @@ func (x *JobDestinationOptions) String() string { func (*JobDestinationOptions) ProtoMessage() {} func (x *JobDestinationOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[13] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -965,7 +1197,7 @@ func (x *JobDestinationOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use JobDestinationOptions.ProtoReflect.Descriptor instead. func (*JobDestinationOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{13} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{16} } func (m *JobDestinationOptions) GetConfig() isJobDestinationOptions_Config { @@ -1030,7 +1262,7 @@ type PostgresDestinationConnectionOptions struct { func (x *PostgresDestinationConnectionOptions) Reset() { *x = PostgresDestinationConnectionOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[14] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1043,7 +1275,7 @@ func (x *PostgresDestinationConnectionOptions) String() string { func (*PostgresDestinationConnectionOptions) ProtoMessage() {} func (x *PostgresDestinationConnectionOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[14] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1056,7 +1288,7 @@ func (x *PostgresDestinationConnectionOptions) ProtoReflect() protoreflect.Messa // Deprecated: Use PostgresDestinationConnectionOptions.ProtoReflect.Descriptor instead. func (*PostgresDestinationConnectionOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{14} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{17} } func (x *PostgresDestinationConnectionOptions) GetTruncateTable() *PostgresTruncateTableConfig { @@ -1085,7 +1317,7 @@ type PostgresTruncateTableConfig struct { func (x *PostgresTruncateTableConfig) Reset() { *x = PostgresTruncateTableConfig{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[15] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1098,7 +1330,7 @@ func (x *PostgresTruncateTableConfig) String() string { func (*PostgresTruncateTableConfig) ProtoMessage() {} func (x *PostgresTruncateTableConfig) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[15] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1111,7 +1343,7 @@ func (x *PostgresTruncateTableConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use PostgresTruncateTableConfig.ProtoReflect.Descriptor instead. func (*PostgresTruncateTableConfig) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{15} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{18} } func (x *PostgresTruncateTableConfig) GetTruncateBeforeInsert() bool { @@ -1140,7 +1372,7 @@ type MysqlDestinationConnectionOptions struct { func (x *MysqlDestinationConnectionOptions) Reset() { *x = MysqlDestinationConnectionOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[16] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1153,7 +1385,7 @@ func (x *MysqlDestinationConnectionOptions) String() string { func (*MysqlDestinationConnectionOptions) ProtoMessage() {} func (x *MysqlDestinationConnectionOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[16] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1166,7 +1398,7 @@ func (x *MysqlDestinationConnectionOptions) ProtoReflect() protoreflect.Message // Deprecated: Use MysqlDestinationConnectionOptions.ProtoReflect.Descriptor instead. func (*MysqlDestinationConnectionOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{16} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{19} } func (x *MysqlDestinationConnectionOptions) GetTruncateTable() *MysqlTruncateTableConfig { @@ -1194,7 +1426,7 @@ type MysqlTruncateTableConfig struct { func (x *MysqlTruncateTableConfig) Reset() { *x = MysqlTruncateTableConfig{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[17] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1207,7 +1439,7 @@ func (x *MysqlTruncateTableConfig) String() string { func (*MysqlTruncateTableConfig) ProtoMessage() {} func (x *MysqlTruncateTableConfig) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[17] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1220,7 +1452,7 @@ func (x *MysqlTruncateTableConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use MysqlTruncateTableConfig.ProtoReflect.Descriptor instead. func (*MysqlTruncateTableConfig) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{17} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{20} } func (x *MysqlTruncateTableConfig) GetTruncateBeforeInsert() bool { @@ -1239,7 +1471,7 @@ type AwsS3DestinationConnectionOptions struct { func (x *AwsS3DestinationConnectionOptions) Reset() { *x = AwsS3DestinationConnectionOptions{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[18] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1252,7 +1484,7 @@ func (x *AwsS3DestinationConnectionOptions) String() string { func (*AwsS3DestinationConnectionOptions) ProtoMessage() {} func (x *AwsS3DestinationConnectionOptions) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[18] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1265,7 +1497,7 @@ func (x *AwsS3DestinationConnectionOptions) ProtoReflect() protoreflect.Message // Deprecated: Use AwsS3DestinationConnectionOptions.ProtoReflect.Descriptor instead. func (*AwsS3DestinationConnectionOptions) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{18} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{21} } type CreateJobRequest struct { @@ -1285,7 +1517,7 @@ type CreateJobRequest struct { func (x *CreateJobRequest) Reset() { *x = CreateJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[19] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1298,7 +1530,7 @@ func (x *CreateJobRequest) String() string { func (*CreateJobRequest) ProtoMessage() {} func (x *CreateJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[19] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1311,7 +1543,7 @@ func (x *CreateJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateJobRequest.ProtoReflect.Descriptor instead. func (*CreateJobRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{19} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{22} } func (x *CreateJobRequest) GetAccountId() string { @@ -1374,7 +1606,7 @@ type CreateJobResponse struct { func (x *CreateJobResponse) Reset() { *x = CreateJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[20] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1387,7 +1619,7 @@ func (x *CreateJobResponse) String() string { func (*CreateJobResponse) ProtoMessage() {} func (x *CreateJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[20] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1400,7 +1632,7 @@ func (x *CreateJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateJobResponse.ProtoReflect.Descriptor instead. func (*CreateJobResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{20} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{23} } func (x *CreateJobResponse) GetJob() *Job { @@ -1424,7 +1656,7 @@ type JobMapping struct { func (x *JobMapping) Reset() { *x = JobMapping{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[21] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1437,7 +1669,7 @@ func (x *JobMapping) String() string { func (*JobMapping) ProtoMessage() {} func (x *JobMapping) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[21] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1450,7 +1682,7 @@ func (x *JobMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use JobMapping.ProtoReflect.Descriptor instead. func (*JobMapping) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{21} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{24} } func (x *JobMapping) GetSchema() string { @@ -1492,7 +1724,7 @@ type GetJobRequest struct { func (x *GetJobRequest) Reset() { *x = GetJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[22] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1505,7 +1737,7 @@ func (x *GetJobRequest) String() string { func (*GetJobRequest) ProtoMessage() {} func (x *GetJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[22] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1518,7 +1750,7 @@ func (x *GetJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRequest.ProtoReflect.Descriptor instead. func (*GetJobRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{22} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{25} } func (x *GetJobRequest) GetId() string { @@ -1539,7 +1771,7 @@ type GetJobResponse struct { func (x *GetJobResponse) Reset() { *x = GetJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[23] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1552,7 +1784,7 @@ func (x *GetJobResponse) String() string { func (*GetJobResponse) ProtoMessage() {} func (x *GetJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[23] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1565,7 +1797,7 @@ func (x *GetJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobResponse.ProtoReflect.Descriptor instead. func (*GetJobResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{23} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{26} } func (x *GetJobResponse) GetJob() *Job { @@ -1587,7 +1819,7 @@ type UpdateJobScheduleRequest struct { func (x *UpdateJobScheduleRequest) Reset() { *x = UpdateJobScheduleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[24] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1600,7 +1832,7 @@ func (x *UpdateJobScheduleRequest) String() string { func (*UpdateJobScheduleRequest) ProtoMessage() {} func (x *UpdateJobScheduleRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[24] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1613,7 +1845,7 @@ func (x *UpdateJobScheduleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJobScheduleRequest.ProtoReflect.Descriptor instead. func (*UpdateJobScheduleRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{24} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{27} } func (x *UpdateJobScheduleRequest) GetId() string { @@ -1641,7 +1873,7 @@ type UpdateJobScheduleResponse struct { func (x *UpdateJobScheduleResponse) Reset() { *x = UpdateJobScheduleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[25] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1654,7 +1886,7 @@ func (x *UpdateJobScheduleResponse) String() string { func (*UpdateJobScheduleResponse) ProtoMessage() {} func (x *UpdateJobScheduleResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[25] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1667,7 +1899,7 @@ func (x *UpdateJobScheduleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJobScheduleResponse.ProtoReflect.Descriptor instead. func (*UpdateJobScheduleResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{25} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{28} } func (x *UpdateJobScheduleResponse) GetJob() *Job { @@ -1690,7 +1922,7 @@ type PauseJobRequest struct { func (x *PauseJobRequest) Reset() { *x = PauseJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[26] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1703,7 +1935,7 @@ func (x *PauseJobRequest) String() string { func (*PauseJobRequest) ProtoMessage() {} func (x *PauseJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[26] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1716,7 +1948,7 @@ func (x *PauseJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseJobRequest.ProtoReflect.Descriptor instead. func (*PauseJobRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{26} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{29} } func (x *PauseJobRequest) GetId() string { @@ -1751,7 +1983,7 @@ type PauseJobResponse struct { func (x *PauseJobResponse) Reset() { *x = PauseJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[27] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1764,7 +1996,7 @@ func (x *PauseJobResponse) String() string { func (*PauseJobResponse) ProtoMessage() {} func (x *PauseJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[27] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1777,7 +2009,7 @@ func (x *PauseJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseJobResponse.ProtoReflect.Descriptor instead. func (*PauseJobResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{27} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{30} } func (x *PauseJobResponse) GetJob() *Job { @@ -1800,7 +2032,7 @@ type UpdateJobSourceConnectionRequest struct { func (x *UpdateJobSourceConnectionRequest) Reset() { *x = UpdateJobSourceConnectionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[28] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1813,7 +2045,7 @@ func (x *UpdateJobSourceConnectionRequest) String() string { func (*UpdateJobSourceConnectionRequest) ProtoMessage() {} func (x *UpdateJobSourceConnectionRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[28] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1826,7 +2058,7 @@ func (x *UpdateJobSourceConnectionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJobSourceConnectionRequest.ProtoReflect.Descriptor instead. func (*UpdateJobSourceConnectionRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{28} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{31} } func (x *UpdateJobSourceConnectionRequest) GetId() string { @@ -1861,7 +2093,7 @@ type UpdateJobSourceConnectionResponse struct { func (x *UpdateJobSourceConnectionResponse) Reset() { *x = UpdateJobSourceConnectionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[29] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1874,7 +2106,7 @@ func (x *UpdateJobSourceConnectionResponse) String() string { func (*UpdateJobSourceConnectionResponse) ProtoMessage() {} func (x *UpdateJobSourceConnectionResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[29] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1887,7 +2119,7 @@ func (x *UpdateJobSourceConnectionResponse) ProtoReflect() protoreflect.Message // Deprecated: Use UpdateJobSourceConnectionResponse.ProtoReflect.Descriptor instead. func (*UpdateJobSourceConnectionResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{29} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{32} } func (x *UpdateJobSourceConnectionResponse) GetJob() *Job { @@ -1908,7 +2140,7 @@ type PostgresSourceSchemaSubset struct { func (x *PostgresSourceSchemaSubset) Reset() { *x = PostgresSourceSchemaSubset{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[30] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1921,7 +2153,7 @@ func (x *PostgresSourceSchemaSubset) String() string { func (*PostgresSourceSchemaSubset) ProtoMessage() {} func (x *PostgresSourceSchemaSubset) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[30] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1934,7 +2166,7 @@ func (x *PostgresSourceSchemaSubset) ProtoReflect() protoreflect.Message { // Deprecated: Use PostgresSourceSchemaSubset.ProtoReflect.Descriptor instead. func (*PostgresSourceSchemaSubset) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{30} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{33} } func (x *PostgresSourceSchemaSubset) GetPostgresSchemas() []*PostgresSourceSchemaOption { @@ -1955,7 +2187,7 @@ type MysqlSourceSchemaSubset struct { func (x *MysqlSourceSchemaSubset) Reset() { *x = MysqlSourceSchemaSubset{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[31] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1968,7 +2200,7 @@ func (x *MysqlSourceSchemaSubset) String() string { func (*MysqlSourceSchemaSubset) ProtoMessage() {} func (x *MysqlSourceSchemaSubset) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[31] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1981,7 +2213,7 @@ func (x *MysqlSourceSchemaSubset) ProtoReflect() protoreflect.Message { // Deprecated: Use MysqlSourceSchemaSubset.ProtoReflect.Descriptor instead. func (*MysqlSourceSchemaSubset) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{31} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{34} } func (x *MysqlSourceSchemaSubset) GetMysqlSchemas() []*MysqlSourceSchemaOption { @@ -2006,7 +2238,7 @@ type JobSourceSqlSubetSchemas struct { func (x *JobSourceSqlSubetSchemas) Reset() { *x = JobSourceSqlSubetSchemas{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[32] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2019,7 +2251,7 @@ func (x *JobSourceSqlSubetSchemas) String() string { func (*JobSourceSqlSubetSchemas) ProtoMessage() {} func (x *JobSourceSqlSubetSchemas) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[32] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2032,7 +2264,7 @@ func (x *JobSourceSqlSubetSchemas) ProtoReflect() protoreflect.Message { // Deprecated: Use JobSourceSqlSubetSchemas.ProtoReflect.Descriptor instead. func (*JobSourceSqlSubetSchemas) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{32} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{35} } func (m *JobSourceSqlSubetSchemas) GetSchemas() isJobSourceSqlSubetSchemas_Schemas { @@ -2084,7 +2316,7 @@ type SetJobSourceSqlConnectionSubsetsRequest struct { func (x *SetJobSourceSqlConnectionSubsetsRequest) Reset() { *x = SetJobSourceSqlConnectionSubsetsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[33] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2097,7 +2329,7 @@ func (x *SetJobSourceSqlConnectionSubsetsRequest) String() string { func (*SetJobSourceSqlConnectionSubsetsRequest) ProtoMessage() {} func (x *SetJobSourceSqlConnectionSubsetsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[33] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2110,7 +2342,7 @@ func (x *SetJobSourceSqlConnectionSubsetsRequest) ProtoReflect() protoreflect.Me // Deprecated: Use SetJobSourceSqlConnectionSubsetsRequest.ProtoReflect.Descriptor instead. func (*SetJobSourceSqlConnectionSubsetsRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{33} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{36} } func (x *SetJobSourceSqlConnectionSubsetsRequest) GetId() string { @@ -2138,7 +2370,7 @@ type SetJobSourceSqlConnectionSubsetsResponse struct { func (x *SetJobSourceSqlConnectionSubsetsResponse) Reset() { *x = SetJobSourceSqlConnectionSubsetsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[34] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2151,7 +2383,7 @@ func (x *SetJobSourceSqlConnectionSubsetsResponse) String() string { func (*SetJobSourceSqlConnectionSubsetsResponse) ProtoMessage() {} func (x *SetJobSourceSqlConnectionSubsetsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[34] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2164,7 +2396,7 @@ func (x *SetJobSourceSqlConnectionSubsetsResponse) ProtoReflect() protoreflect.M // Deprecated: Use SetJobSourceSqlConnectionSubsetsResponse.ProtoReflect.Descriptor instead. func (*SetJobSourceSqlConnectionSubsetsResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{34} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{37} } func (x *SetJobSourceSqlConnectionSubsetsResponse) GetJob() *Job { @@ -2188,7 +2420,7 @@ type UpdateJobDestinationConnectionRequest struct { func (x *UpdateJobDestinationConnectionRequest) Reset() { *x = UpdateJobDestinationConnectionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[35] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2201,7 +2433,7 @@ func (x *UpdateJobDestinationConnectionRequest) String() string { func (*UpdateJobDestinationConnectionRequest) ProtoMessage() {} func (x *UpdateJobDestinationConnectionRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[35] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2214,7 +2446,7 @@ func (x *UpdateJobDestinationConnectionRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use UpdateJobDestinationConnectionRequest.ProtoReflect.Descriptor instead. func (*UpdateJobDestinationConnectionRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{35} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{38} } func (x *UpdateJobDestinationConnectionRequest) GetJobId() string { @@ -2256,7 +2488,7 @@ type UpdateJobDestinationConnectionResponse struct { func (x *UpdateJobDestinationConnectionResponse) Reset() { *x = UpdateJobDestinationConnectionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[36] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2269,7 +2501,7 @@ func (x *UpdateJobDestinationConnectionResponse) String() string { func (*UpdateJobDestinationConnectionResponse) ProtoMessage() {} func (x *UpdateJobDestinationConnectionResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[36] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2282,7 +2514,7 @@ func (x *UpdateJobDestinationConnectionResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use UpdateJobDestinationConnectionResponse.ProtoReflect.Descriptor instead. func (*UpdateJobDestinationConnectionResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{36} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{39} } func (x *UpdateJobDestinationConnectionResponse) GetJob() *Job { @@ -2303,7 +2535,7 @@ type DeleteJobDestinationConnectionRequest struct { func (x *DeleteJobDestinationConnectionRequest) Reset() { *x = DeleteJobDestinationConnectionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[37] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2316,7 +2548,7 @@ func (x *DeleteJobDestinationConnectionRequest) String() string { func (*DeleteJobDestinationConnectionRequest) ProtoMessage() {} func (x *DeleteJobDestinationConnectionRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[37] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2329,7 +2561,7 @@ func (x *DeleteJobDestinationConnectionRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use DeleteJobDestinationConnectionRequest.ProtoReflect.Descriptor instead. func (*DeleteJobDestinationConnectionRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{37} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{40} } func (x *DeleteJobDestinationConnectionRequest) GetDestinationId() string { @@ -2348,7 +2580,7 @@ type DeleteJobDestinationConnectionResponse struct { func (x *DeleteJobDestinationConnectionResponse) Reset() { *x = DeleteJobDestinationConnectionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[38] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2361,7 +2593,7 @@ func (x *DeleteJobDestinationConnectionResponse) String() string { func (*DeleteJobDestinationConnectionResponse) ProtoMessage() {} func (x *DeleteJobDestinationConnectionResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[38] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2374,7 +2606,7 @@ func (x *DeleteJobDestinationConnectionResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use DeleteJobDestinationConnectionResponse.ProtoReflect.Descriptor instead. func (*DeleteJobDestinationConnectionResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{38} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{41} } type CreateJobDestinationConnectionsRequest struct { @@ -2389,7 +2621,7 @@ type CreateJobDestinationConnectionsRequest struct { func (x *CreateJobDestinationConnectionsRequest) Reset() { *x = CreateJobDestinationConnectionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[39] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2402,7 +2634,7 @@ func (x *CreateJobDestinationConnectionsRequest) String() string { func (*CreateJobDestinationConnectionsRequest) ProtoMessage() {} func (x *CreateJobDestinationConnectionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[39] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2415,7 +2647,7 @@ func (x *CreateJobDestinationConnectionsRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use CreateJobDestinationConnectionsRequest.ProtoReflect.Descriptor instead. func (*CreateJobDestinationConnectionsRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{39} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{42} } func (x *CreateJobDestinationConnectionsRequest) GetJobId() string { @@ -2443,7 +2675,7 @@ type CreateJobDestinationConnectionsResponse struct { func (x *CreateJobDestinationConnectionsResponse) Reset() { *x = CreateJobDestinationConnectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[40] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2456,7 +2688,7 @@ func (x *CreateJobDestinationConnectionsResponse) String() string { func (*CreateJobDestinationConnectionsResponse) ProtoMessage() {} func (x *CreateJobDestinationConnectionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[40] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2469,7 +2701,7 @@ func (x *CreateJobDestinationConnectionsResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CreateJobDestinationConnectionsResponse.ProtoReflect.Descriptor instead. func (*CreateJobDestinationConnectionsResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{40} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{43} } func (x *CreateJobDestinationConnectionsResponse) GetJob() *Job { @@ -2490,7 +2722,7 @@ type DeleteJobRequest struct { func (x *DeleteJobRequest) Reset() { *x = DeleteJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[41] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2503,7 +2735,7 @@ func (x *DeleteJobRequest) String() string { func (*DeleteJobRequest) ProtoMessage() {} func (x *DeleteJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[41] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2516,7 +2748,7 @@ func (x *DeleteJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteJobRequest.ProtoReflect.Descriptor instead. func (*DeleteJobRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{41} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{44} } func (x *DeleteJobRequest) GetId() string { @@ -2535,7 +2767,7 @@ type DeleteJobResponse struct { func (x *DeleteJobResponse) Reset() { *x = DeleteJobResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[42] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2548,7 +2780,7 @@ func (x *DeleteJobResponse) String() string { func (*DeleteJobResponse) ProtoMessage() {} func (x *DeleteJobResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[42] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2561,7 +2793,7 @@ func (x *DeleteJobResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteJobResponse.ProtoReflect.Descriptor instead. func (*DeleteJobResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{42} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{45} } type IsJobNameAvailableRequest struct { @@ -2576,7 +2808,7 @@ type IsJobNameAvailableRequest struct { func (x *IsJobNameAvailableRequest) Reset() { *x = IsJobNameAvailableRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[43] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2589,7 +2821,7 @@ func (x *IsJobNameAvailableRequest) String() string { func (*IsJobNameAvailableRequest) ProtoMessage() {} func (x *IsJobNameAvailableRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[43] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2602,7 +2834,7 @@ func (x *IsJobNameAvailableRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsJobNameAvailableRequest.ProtoReflect.Descriptor instead. func (*IsJobNameAvailableRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{43} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{46} } func (x *IsJobNameAvailableRequest) GetName() string { @@ -2630,7 +2862,7 @@ type IsJobNameAvailableResponse struct { func (x *IsJobNameAvailableResponse) Reset() { *x = IsJobNameAvailableResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[44] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2643,7 +2875,7 @@ func (x *IsJobNameAvailableResponse) String() string { func (*IsJobNameAvailableResponse) ProtoMessage() {} func (x *IsJobNameAvailableResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[44] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2656,7 +2888,7 @@ func (x *IsJobNameAvailableResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IsJobNameAvailableResponse.ProtoReflect.Descriptor instead. func (*IsJobNameAvailableResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{44} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{47} } func (x *IsJobNameAvailableResponse) GetIsAvailable() bool { @@ -2681,7 +2913,7 @@ type GetJobRunsRequest struct { func (x *GetJobRunsRequest) Reset() { *x = GetJobRunsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[45] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2694,7 +2926,7 @@ func (x *GetJobRunsRequest) String() string { func (*GetJobRunsRequest) ProtoMessage() {} func (x *GetJobRunsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[45] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2707,7 +2939,7 @@ func (x *GetJobRunsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRunsRequest.ProtoReflect.Descriptor instead. func (*GetJobRunsRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{45} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{48} } func (m *GetJobRunsRequest) GetId() isGetJobRunsRequest_Id { @@ -2758,7 +2990,7 @@ type GetJobRunsResponse struct { func (x *GetJobRunsResponse) Reset() { *x = GetJobRunsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[46] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2771,7 +3003,7 @@ func (x *GetJobRunsResponse) String() string { func (*GetJobRunsResponse) ProtoMessage() {} func (x *GetJobRunsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[46] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2784,7 +3016,7 @@ func (x *GetJobRunsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRunsResponse.ProtoReflect.Descriptor instead. func (*GetJobRunsResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{46} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{49} } func (x *GetJobRunsResponse) GetJobRuns() []*JobRun { @@ -2806,7 +3038,7 @@ type GetJobRunRequest struct { func (x *GetJobRunRequest) Reset() { *x = GetJobRunRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[47] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2819,7 +3051,7 @@ func (x *GetJobRunRequest) String() string { func (*GetJobRunRequest) ProtoMessage() {} func (x *GetJobRunRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[47] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2832,7 +3064,7 @@ func (x *GetJobRunRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRunRequest.ProtoReflect.Descriptor instead. func (*GetJobRunRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{47} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{50} } func (x *GetJobRunRequest) GetJobRunId() string { @@ -2860,7 +3092,7 @@ type GetJobRunResponse struct { func (x *GetJobRunResponse) Reset() { *x = GetJobRunResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[48] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2873,7 +3105,7 @@ func (x *GetJobRunResponse) String() string { func (*GetJobRunResponse) ProtoMessage() {} func (x *GetJobRunResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[48] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2886,7 +3118,7 @@ func (x *GetJobRunResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRunResponse.ProtoReflect.Descriptor instead. func (*GetJobRunResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{48} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{51} } func (x *GetJobRunResponse) GetJobRun() *JobRun { @@ -2907,7 +3139,7 @@ type CreateJobRunRequest struct { func (x *CreateJobRunRequest) Reset() { *x = CreateJobRunRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[49] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2920,7 +3152,7 @@ func (x *CreateJobRunRequest) String() string { func (*CreateJobRunRequest) ProtoMessage() {} func (x *CreateJobRunRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[49] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2933,7 +3165,7 @@ func (x *CreateJobRunRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateJobRunRequest.ProtoReflect.Descriptor instead. func (*CreateJobRunRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{49} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{52} } func (x *CreateJobRunRequest) GetJobId() string { @@ -2952,7 +3184,7 @@ type CreateJobRunResponse struct { func (x *CreateJobRunResponse) Reset() { *x = CreateJobRunResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[50] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2965,7 +3197,7 @@ func (x *CreateJobRunResponse) String() string { func (*CreateJobRunResponse) ProtoMessage() {} func (x *CreateJobRunResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[50] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2978,7 +3210,7 @@ func (x *CreateJobRunResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateJobRunResponse.ProtoReflect.Descriptor instead. func (*CreateJobRunResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{50} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{53} } type CancelJobRunRequest struct { @@ -2993,7 +3225,7 @@ type CancelJobRunRequest struct { func (x *CancelJobRunRequest) Reset() { *x = CancelJobRunRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[51] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3006,7 +3238,7 @@ func (x *CancelJobRunRequest) String() string { func (*CancelJobRunRequest) ProtoMessage() {} func (x *CancelJobRunRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[51] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3019,7 +3251,7 @@ func (x *CancelJobRunRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelJobRunRequest.ProtoReflect.Descriptor instead. func (*CancelJobRunRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{51} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{54} } func (x *CancelJobRunRequest) GetJobRunId() string { @@ -3045,7 +3277,7 @@ type CancelJobRunResponse struct { func (x *CancelJobRunResponse) Reset() { *x = CancelJobRunResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[52] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3058,7 +3290,7 @@ func (x *CancelJobRunResponse) String() string { func (*CancelJobRunResponse) ProtoMessage() {} func (x *CancelJobRunResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[52] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3071,7 +3303,7 @@ func (x *CancelJobRunResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelJobRunResponse.ProtoReflect.Descriptor instead. func (*CancelJobRunResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{52} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{55} } type Job struct { @@ -3095,7 +3327,7 @@ type Job struct { func (x *Job) Reset() { *x = Job{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[53] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3108,7 +3340,7 @@ func (x *Job) String() string { func (*Job) ProtoMessage() {} func (x *Job) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[53] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3121,7 +3353,7 @@ func (x *Job) ProtoReflect() protoreflect.Message { // Deprecated: Use Job.ProtoReflect.Descriptor instead. func (*Job) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{53} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{56} } func (x *Job) GetId() string { @@ -3213,7 +3445,7 @@ type JobRecentRun struct { func (x *JobRecentRun) Reset() { *x = JobRecentRun{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[54] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3226,7 +3458,7 @@ func (x *JobRecentRun) String() string { func (*JobRecentRun) ProtoMessage() {} func (x *JobRecentRun) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[54] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3239,7 +3471,7 @@ func (x *JobRecentRun) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRecentRun.ProtoReflect.Descriptor instead. func (*JobRecentRun) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{54} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{57} } func (x *JobRecentRun) GetStartTime() *timestamppb.Timestamp { @@ -3267,7 +3499,7 @@ type GetJobRecentRunsRequest struct { func (x *GetJobRecentRunsRequest) Reset() { *x = GetJobRecentRunsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[55] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3280,7 +3512,7 @@ func (x *GetJobRecentRunsRequest) String() string { func (*GetJobRecentRunsRequest) ProtoMessage() {} func (x *GetJobRecentRunsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[55] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3293,7 +3525,7 @@ func (x *GetJobRecentRunsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRecentRunsRequest.ProtoReflect.Descriptor instead. func (*GetJobRecentRunsRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{55} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{58} } func (x *GetJobRecentRunsRequest) GetJobId() string { @@ -3314,7 +3546,7 @@ type GetJobRecentRunsResponse struct { func (x *GetJobRecentRunsResponse) Reset() { *x = GetJobRecentRunsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[56] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3327,7 +3559,7 @@ func (x *GetJobRecentRunsResponse) String() string { func (*GetJobRecentRunsResponse) ProtoMessage() {} func (x *GetJobRecentRunsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[56] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3340,7 +3572,7 @@ func (x *GetJobRecentRunsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRecentRunsResponse.ProtoReflect.Descriptor instead. func (*GetJobRecentRunsResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{56} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{59} } func (x *GetJobRecentRunsResponse) GetRecentRuns() []*JobRecentRun { @@ -3361,7 +3593,7 @@ type JobNextRuns struct { func (x *JobNextRuns) Reset() { *x = JobNextRuns{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[57] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3374,7 +3606,7 @@ func (x *JobNextRuns) String() string { func (*JobNextRuns) ProtoMessage() {} func (x *JobNextRuns) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[57] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3387,7 +3619,7 @@ func (x *JobNextRuns) ProtoReflect() protoreflect.Message { // Deprecated: Use JobNextRuns.ProtoReflect.Descriptor instead. func (*JobNextRuns) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{57} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{60} } func (x *JobNextRuns) GetNextRunTimes() []*timestamppb.Timestamp { @@ -3408,7 +3640,7 @@ type GetJobNextRunsRequest struct { func (x *GetJobNextRunsRequest) Reset() { *x = GetJobNextRunsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[58] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3421,7 +3653,7 @@ func (x *GetJobNextRunsRequest) String() string { func (*GetJobNextRunsRequest) ProtoMessage() {} func (x *GetJobNextRunsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[58] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3434,7 +3666,7 @@ func (x *GetJobNextRunsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobNextRunsRequest.ProtoReflect.Descriptor instead. func (*GetJobNextRunsRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{58} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{61} } func (x *GetJobNextRunsRequest) GetJobId() string { @@ -3455,7 +3687,7 @@ type GetJobNextRunsResponse struct { func (x *GetJobNextRunsResponse) Reset() { *x = GetJobNextRunsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[59] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3468,7 +3700,7 @@ func (x *GetJobNextRunsResponse) String() string { func (*GetJobNextRunsResponse) ProtoMessage() {} func (x *GetJobNextRunsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[59] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3481,7 +3713,7 @@ func (x *GetJobNextRunsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobNextRunsResponse.ProtoReflect.Descriptor instead. func (*GetJobNextRunsResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{59} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{62} } func (x *GetJobNextRunsResponse) GetNextRuns() *JobNextRuns { @@ -3502,7 +3734,7 @@ type GetJobStatusRequest struct { func (x *GetJobStatusRequest) Reset() { *x = GetJobStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[60] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3515,7 +3747,7 @@ func (x *GetJobStatusRequest) String() string { func (*GetJobStatusRequest) ProtoMessage() {} func (x *GetJobStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[60] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3528,7 +3760,7 @@ func (x *GetJobStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobStatusRequest.ProtoReflect.Descriptor instead. func (*GetJobStatusRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{60} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{63} } func (x *GetJobStatusRequest) GetJobId() string { @@ -3549,7 +3781,7 @@ type GetJobStatusResponse struct { func (x *GetJobStatusResponse) Reset() { *x = GetJobStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[61] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3562,7 +3794,7 @@ func (x *GetJobStatusResponse) String() string { func (*GetJobStatusResponse) ProtoMessage() {} func (x *GetJobStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[61] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3575,7 +3807,7 @@ func (x *GetJobStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobStatusResponse.ProtoReflect.Descriptor instead. func (*GetJobStatusResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{61} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{64} } func (x *GetJobStatusResponse) GetStatus() JobStatus { @@ -3597,7 +3829,7 @@ type JobStatusRecord struct { func (x *JobStatusRecord) Reset() { *x = JobStatusRecord{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[62] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3610,7 +3842,7 @@ func (x *JobStatusRecord) String() string { func (*JobStatusRecord) ProtoMessage() {} func (x *JobStatusRecord) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[62] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3623,7 +3855,7 @@ func (x *JobStatusRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use JobStatusRecord.ProtoReflect.Descriptor instead. func (*JobStatusRecord) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{62} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{65} } func (x *JobStatusRecord) GetJobId() string { @@ -3651,7 +3883,7 @@ type GetJobStatusesRequest struct { func (x *GetJobStatusesRequest) Reset() { *x = GetJobStatusesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[63] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3664,7 +3896,7 @@ func (x *GetJobStatusesRequest) String() string { func (*GetJobStatusesRequest) ProtoMessage() {} func (x *GetJobStatusesRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[63] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3677,7 +3909,7 @@ func (x *GetJobStatusesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobStatusesRequest.ProtoReflect.Descriptor instead. func (*GetJobStatusesRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{63} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{66} } func (x *GetJobStatusesRequest) GetAccountId() string { @@ -3698,7 +3930,7 @@ type GetJobStatusesResponse struct { func (x *GetJobStatusesResponse) Reset() { *x = GetJobStatusesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[64] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3711,7 +3943,7 @@ func (x *GetJobStatusesResponse) String() string { func (*GetJobStatusesResponse) ProtoMessage() {} func (x *GetJobStatusesResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[64] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3724,7 +3956,7 @@ func (x *GetJobStatusesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobStatusesResponse.ProtoReflect.Descriptor instead. func (*GetJobStatusesResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{64} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{67} } func (x *GetJobStatusesResponse) GetStatuses() []*JobStatusRecord { @@ -3745,7 +3977,7 @@ type ActivityFailure struct { func (x *ActivityFailure) Reset() { *x = ActivityFailure{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[65] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3758,7 +3990,7 @@ func (x *ActivityFailure) String() string { func (*ActivityFailure) ProtoMessage() {} func (x *ActivityFailure) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[65] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3771,7 +4003,7 @@ func (x *ActivityFailure) ProtoReflect() protoreflect.Message { // Deprecated: Use ActivityFailure.ProtoReflect.Descriptor instead. func (*ActivityFailure) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{65} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{68} } func (x *ActivityFailure) GetMessage() string { @@ -3794,7 +4026,7 @@ type PendingActivity struct { func (x *PendingActivity) Reset() { *x = PendingActivity{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[66] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3807,7 +4039,7 @@ func (x *PendingActivity) String() string { func (*PendingActivity) ProtoMessage() {} func (x *PendingActivity) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[66] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3820,7 +4052,7 @@ func (x *PendingActivity) ProtoReflect() protoreflect.Message { // Deprecated: Use PendingActivity.ProtoReflect.Descriptor instead. func (*PendingActivity) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{66} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{69} } func (x *PendingActivity) GetStatus() ActivityStatus { @@ -3861,7 +4093,7 @@ type JobRun struct { func (x *JobRun) Reset() { *x = JobRun{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[67] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3874,7 +4106,7 @@ func (x *JobRun) String() string { func (*JobRun) ProtoMessage() {} func (x *JobRun) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[67] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3887,7 +4119,7 @@ func (x *JobRun) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRun.ProtoReflect.Descriptor instead. func (*JobRun) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{67} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{70} } func (x *JobRun) GetId() string { @@ -3951,7 +4183,7 @@ type JobRunEventTaskError struct { func (x *JobRunEventTaskError) Reset() { *x = JobRunEventTaskError{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[68] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3964,7 +4196,7 @@ func (x *JobRunEventTaskError) String() string { func (*JobRunEventTaskError) ProtoMessage() {} func (x *JobRunEventTaskError) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[68] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3977,7 +4209,7 @@ func (x *JobRunEventTaskError) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRunEventTaskError.ProtoReflect.Descriptor instead. func (*JobRunEventTaskError) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{68} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{71} } func (x *JobRunEventTaskError) GetMessage() string { @@ -4008,7 +4240,7 @@ type JobRunEventTask struct { func (x *JobRunEventTask) Reset() { *x = JobRunEventTask{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[69] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4021,7 +4253,7 @@ func (x *JobRunEventTask) String() string { func (*JobRunEventTask) ProtoMessage() {} func (x *JobRunEventTask) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[69] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4034,7 +4266,7 @@ func (x *JobRunEventTask) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRunEventTask.ProtoReflect.Descriptor instead. func (*JobRunEventTask) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{69} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{72} } func (x *JobRunEventTask) GetId() int64 { @@ -4077,7 +4309,7 @@ type JobRunSyncMetadata struct { func (x *JobRunSyncMetadata) Reset() { *x = JobRunSyncMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[70] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4090,7 +4322,7 @@ func (x *JobRunSyncMetadata) String() string { func (*JobRunSyncMetadata) ProtoMessage() {} func (x *JobRunSyncMetadata) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[70] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4103,7 +4335,7 @@ func (x *JobRunSyncMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRunSyncMetadata.ProtoReflect.Descriptor instead. func (*JobRunSyncMetadata) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{70} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{73} } func (x *JobRunSyncMetadata) GetSchema() string { @@ -4134,7 +4366,7 @@ type JobRunEventMetadata struct { func (x *JobRunEventMetadata) Reset() { *x = JobRunEventMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[71] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4147,7 +4379,7 @@ func (x *JobRunEventMetadata) String() string { func (*JobRunEventMetadata) ProtoMessage() {} func (x *JobRunEventMetadata) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[71] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4160,7 +4392,7 @@ func (x *JobRunEventMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRunEventMetadata.ProtoReflect.Descriptor instead. func (*JobRunEventMetadata) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{71} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{74} } func (m *JobRunEventMetadata) GetMetadata() isJobRunEventMetadata_Metadata { @@ -4203,7 +4435,7 @@ type JobRunEvent struct { func (x *JobRunEvent) Reset() { *x = JobRunEvent{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[72] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4216,7 +4448,7 @@ func (x *JobRunEvent) String() string { func (*JobRunEvent) ProtoMessage() {} func (x *JobRunEvent) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[72] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4229,7 +4461,7 @@ func (x *JobRunEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use JobRunEvent.ProtoReflect.Descriptor instead. func (*JobRunEvent) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{72} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{75} } func (x *JobRunEvent) GetId() int64 { @@ -4286,7 +4518,7 @@ type GetJobRunEventsRequest struct { func (x *GetJobRunEventsRequest) Reset() { *x = GetJobRunEventsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[73] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4299,7 +4531,7 @@ func (x *GetJobRunEventsRequest) String() string { func (*GetJobRunEventsRequest) ProtoMessage() {} func (x *GetJobRunEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[73] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4312,7 +4544,7 @@ func (x *GetJobRunEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRunEventsRequest.ProtoReflect.Descriptor instead. func (*GetJobRunEventsRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{73} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{76} } func (x *GetJobRunEventsRequest) GetJobRunId() string { @@ -4341,7 +4573,7 @@ type GetJobRunEventsResponse struct { func (x *GetJobRunEventsResponse) Reset() { *x = GetJobRunEventsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[74] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4354,7 +4586,7 @@ func (x *GetJobRunEventsResponse) String() string { func (*GetJobRunEventsResponse) ProtoMessage() {} func (x *GetJobRunEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[74] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4367,7 +4599,7 @@ func (x *GetJobRunEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetJobRunEventsResponse.ProtoReflect.Descriptor instead. func (*GetJobRunEventsResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{74} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{77} } func (x *GetJobRunEventsResponse) GetEvents() []*JobRunEvent { @@ -4396,7 +4628,7 @@ type DeleteJobRunRequest struct { func (x *DeleteJobRunRequest) Reset() { *x = DeleteJobRunRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[75] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4409,7 +4641,7 @@ func (x *DeleteJobRunRequest) String() string { func (*DeleteJobRunRequest) ProtoMessage() {} func (x *DeleteJobRunRequest) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[75] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4422,7 +4654,7 @@ func (x *DeleteJobRunRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteJobRunRequest.ProtoReflect.Descriptor instead. func (*DeleteJobRunRequest) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{75} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{78} } func (x *DeleteJobRunRequest) GetJobRunId() string { @@ -4448,7 +4680,7 @@ type DeleteJobRunResponse struct { func (x *DeleteJobRunResponse) Reset() { *x = DeleteJobRunResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[76] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4461,7 +4693,7 @@ func (x *DeleteJobRunResponse) String() string { func (*DeleteJobRunResponse) ProtoMessage() {} func (x *DeleteJobRunResponse) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_v1alpha1_job_proto_msgTypes[76] + mi := &file_mgmt_v1alpha1_job_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4474,7 +4706,7 @@ func (x *DeleteJobRunResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteJobRunResponse.ProtoReflect.Descriptor instead. func (*DeleteJobRunResponse) Descriptor() ([]byte, []int) { - return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{76} + return file_mgmt_v1alpha1_job_proto_rawDescGZIP(), []int{79} } var File_mgmt_v1alpha1_job_proto protoreflect.FileDescriptor @@ -4495,737 +4727,776 @@ var file_mgmt_v1alpha1_job_proto_rawDesc = []byte{ 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x6b, 0x0a, - 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x7b, 0x0a, 0x14, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x3e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0xa9, 0x02, 0x0a, 0x10, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, - 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x53, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x77, 0x73, 0x53, 0x33, 0x53, + 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x4e, 0x0a, + 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x06, 0xba, 0x48, + 0x03, 0xc8, 0x01, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc0, 0x02, + 0x0a, 0x10, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x12, 0x44, 0x0a, 0x06, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x41, 0x77, 0x73, 0x53, 0x33, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, + 0x05, 0x61, 0x77, 0x73, 0x53, 0x33, 0x12, 0x43, 0x0a, 0x05, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x12, 0x42, 0x0a, 0x08, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x0f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, + 0x22, 0x7b, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, + 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x85, 0x01, + 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfc, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4d, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xba, 0x48, 0x05, + 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x30, + 0x0a, 0x13, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x41, 0x0a, 0x17, 0x66, 0x6b, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x14, 0x66, + 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x42, 0x1f, 0x0a, 0x1d, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x89, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, + 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x22, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x09, + 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x07, 0xba, 0x48, 0x04, 0x22, 0x02, 0x28, 0x01, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x1f, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, 0x33, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x0d, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, - 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0f, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0xa4, 0x01, 0x0a, 0x1f, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x3c, 0x0a, 0x1b, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x6c, 0x74, 0x4f, 0x6e, 0x4e, 0x65, 0x77, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, - 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x73, 0x22, 0x76, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x6f, + 0x6e, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x6c, + 0x74, 0x4f, 0x6e, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x40, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x19, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, - 0x0c, 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x68, 0x65, 0x72, 0x65, 0x43, 0x6c, 0x61, 0x75, - 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1c, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x68, 0x61, 0x6c, 0x74, 0x5f, - 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, - 0x6c, 0x74, 0x4f, 0x6e, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0x70, 0x0a, 0x17, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3d, 0x0a, 0x06, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x16, 0x4d, 0x79, 0x73, - 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x77, 0x68, 0x65, 0x72, 0x65, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x75, - 0x73, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x77, 0x73, 0x53, 0x33, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xbd, 0x02, 0x0a, 0x15, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x60, 0x0a, 0x10, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x70, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, - 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x77, 0x73, 0x53, 0x33, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, - 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x0d, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x42, 0x0f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x05, 0xba, 0x48, 0x02, - 0x08, 0x01, 0x22, 0xa5, 0x01, 0x0a, 0x24, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x51, 0x0a, 0x0e, 0x74, - 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x54, 0x72, 0x75, 0x6e, - 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x6d, 0x0a, 0x1b, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x75, - 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x72, 0x75, 0x6e, 0x63, - 0x61, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x21, 0x4d, 0x79, - 0x73, 0x71, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x2d, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x40, + 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x22, 0x6a, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, + 0x1c, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, + 0x1b, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x6c, 0x74, 0x4f, 0x6e, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x07, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, + 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x2d, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x17, + 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x3d, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x67, + 0x0a, 0x16, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, + 0x0a, 0x0c, 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x68, 0x65, 0x72, 0x65, 0x43, 0x6c, 0x61, + 0x75, 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x1c, 0x41, 0x77, 0x73, 0x53, 0x33, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xbd, 0x02, 0x0a, 0x15, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x60, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, + 0x00, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x33, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x77, 0x73, 0x53, 0x33, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0c, + 0x61, 0x77, 0x73, 0x53, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x0d, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0xa5, 0x01, 0x0a, 0x24, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x4e, 0x0a, 0x0e, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x54, 0x72, 0x75, - 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x69, 0x74, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x50, 0x0a, 0x18, 0x4d, - 0x79, 0x73, 0x71, 0x6c, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x75, 0x6e, 0x63, - 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, - 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x22, 0x23, 0x0a, - 0x21, 0x41, 0x77, 0x73, 0x53, 0x33, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xee, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, - 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 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, 0x12, 0x28, 0x0a, 0x0d, 0x63, - 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x30, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x47, - 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, - 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x22, 0x39, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x90, - 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, - 0x72, 0x22, 0x29, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, - 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x36, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, - 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, - 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x70, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x51, 0x0a, 0x0e, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, + 0x6e, 0x69, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x6d, + 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, + 0x16, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, + 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x22, 0x9f, 0x01, + 0x0a, 0x21, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x0e, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, + 0x6c, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x69, 0x6e, 0x69, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, + 0x50, 0x0a, 0x18, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x74, + 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x72, 0x75, + 0x6e, 0x63, 0x61, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x77, 0x73, 0x53, 0x33, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 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, 0x12, + 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x30, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x39, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, + 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, + 0x6f, 0x62, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x36, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x70, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, + 0x0a, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x6f, + 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x41, 0x0a, 0x19, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x63, 0x0a, + 0x0f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, - 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, - 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x41, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x6f, + 0x74, 0x65, 0x22, 0x38, 0x0a, 0x10, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xaf, 0x01, 0x0a, + 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, + 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3f, 0x0a, + 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, + 0x01, 0x02, 0x08, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x49, + 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x63, 0x0a, 0x0f, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, - 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x38, - 0x0a, 0x10, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xaf, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, - 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, - 0x52, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x49, 0x0a, 0x21, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, - 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x72, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x75, 0x62, - 0x73, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0x66, 0x0a, 0x17, 0x4d, 0x79, 0x73, - 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x75, - 0x62, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, - 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x71, 0x6c, 0x53, 0x75, 0x62, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x54, - 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x75, 0x62, 0x73, - 0x65, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x75, - 0x62, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x75, - 0x62, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x75, 0x62, 0x73, - 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x75, 0x62, 0x73, 0x65, - 0x74, 0x42, 0x10, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x05, 0xba, 0x48, - 0x02, 0x08, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x27, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, - 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x53, 0x75, 0x62, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x73, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0x50, 0x0a, 0x28, - 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xde, - 0x01, 0x0a, 0x25, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, - 0x01, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, - 0x4e, 0x0a, 0x26, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, - 0x58, 0x0a, 0x25, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x26, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4f, - 0x0a, 0x27, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x6a, 0x6f, 0x62, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, - 0x2c, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x72, 0x0a, 0x1a, 0x50, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0x66, 0x0a, + 0x17, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x53, 0x75, 0x62, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x73, 0x12, 0x54, 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x73, + 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, + 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, + 0x75, 0x62, 0x73, 0x65, 0x74, 0x42, 0x10, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, + 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x27, 0x53, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x13, 0x0a, - 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x58, 0x0a, 0x19, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, - 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x1a, - 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, - 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x67, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x21, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, - 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x42, 0x04, 0x0a, 0x02, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x08, - 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x41, 0x0a, + 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, - 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x22, 0x59, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, - 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, - 0x0a, 0x07, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x06, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x22, 0x2c, - 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, - 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, - 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, + 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x53, 0x75, 0x62, 0x65, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, + 0x22, 0x50, 0x0a, 0x28, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, + 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x03, + 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, + 0x6f, 0x62, 0x22, 0xde, 0x01, 0x0a, 0x25, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2d, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, + 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x26, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, + 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, + 0x6a, 0x6f, 0x62, 0x22, 0x58, 0x0a, 0x25, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0e, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x0d, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x28, 0x0a, + 0x26, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x26, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0c, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x4f, 0x0a, 0x27, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, + 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, + 0x6a, 0x6f, 0x62, 0x22, 0x2c, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, + 0x64, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x19, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x3f, 0x0a, 0x1a, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x67, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, - 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, - 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x04, 0x0a, 0x03, 0x4a, - 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, - 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x42, 0x04, 0x0a, 0x02, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x30, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x52, 0x75, + 0x6e, 0x73, 0x22, 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, + 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x43, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x06, 0x6a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x22, 0x2c, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, + 0x22, 0x16, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, + 0x04, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2b, + 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x35, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x22, 0x67, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, + 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x0a, + 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, - 0x62, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, - 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x67, 0x0a, - 0x0c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x39, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, - 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, - 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x22, 0x4f, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, + 0x74, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x75, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x52, + 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x37, 0x0a, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, + 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x72, - 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, - 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, - 0x6e, 0x73, 0x22, 0x4f, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, - 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, - 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, - 0x62, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, - 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x09, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x08, 0x6e, 0x65, - 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, - 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, - 0x6f, 0x62, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, + 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x5a, 0x0a, 0x0f, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5a, - 0x0a, 0x0f, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x40, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, - 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x46, 0x61, - 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0xc6, 0x01, 0x0a, 0x0f, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x46, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x46, 0x61, - 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, - 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x40, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x0f, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, + 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x22, 0xd7, 0x02, 0x0a, + 0x06, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x51, 0x0a, 0x14, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x72, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x4a, 0x6f, + 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x42, 0x0a, 0x12, 0x4a, 0x6f, 0x62, 0x52, 0x75, + 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x72, 0x0a, 0x13, 0x4a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, + 0x73, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x11, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, + 0x9d, 0x02, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, - 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x11, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x22, 0x51, 0x0a, 0x14, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x42, 0x0a, 0x12, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, 0x79, 0x6e, - 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x72, 0x0a, 0x13, 0x4a, 0x6f, 0x62, 0x52, 0x75, - 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, - 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, 0x79, 0x6e, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x11, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0x9d, 0x02, 0x0a, 0x0b, - 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6c, - 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x5f, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x52, 0x75, - 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, - 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, - 0x73, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, - 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, - 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x6f, 0x0a, 0x09, 0x4a, 0x6f, 0x62, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, + 0x5f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, + 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x75, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x6f, 0x0a, + 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, + 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, + 0x0a, 0x11, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x55, + 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xa7, + 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4a, 0x4f, - 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, - 0x03, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xa7, 0x01, 0x0a, 0x0e, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, - 0x1b, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, - 0x0a, 0x19, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, - 0x17, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, - 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x04, 0x2a, 0xf4, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1b, 0x0a, - 0x17, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, - 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, 0x06, - 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x32, 0xdf, 0x11, 0x0a, 0x0a, - 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x12, 0x1c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x50, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1f, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x50, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1f, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x68, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x19, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, - 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1c, + 0x0a, 0x18, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xf4, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, + 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x4a, 0x4f, 0x42, + 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x42, + 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, + 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x18, + 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x4a, 0x4f, 0x42, 0x5f, + 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x42, 0x5f, 0x52, 0x55, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x32, + 0xdf, 0x11, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x06, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x12, 0x1f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x12, 0x1f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x49, 0x73, 0x4a, 0x6f, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, + 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x95, 0x01, - 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, - 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x65, - 0x74, 0x73, 0x12, 0x36, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4a, 0x6f, - 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, - 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x92, 0x01, 0x0a, 0x1f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, + 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x95, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x71, 0x6c, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x1e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x1e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, - 0x0a, 0x08, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, - 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x92, 0x01, + 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x35, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x08, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x65, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, + 0x74, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x65, - 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, - 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x4a, 0x6f, 0x62, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x5f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x65, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x12, - 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x09, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x1f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x22, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x67, + 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x1f, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x59, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, - 0x75, 0x6e, 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x22, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xc4, 0x01, - 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x42, 0x08, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x50, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x75, 0x63, 0x6c, - 0x65, 0x75, 0x73, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x6f, 0x73, 0x79, 0x6e, 0x63, - 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x67, 0x6d, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x19, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0xc4, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x50, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x75, 0x73, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x6f, + 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x67, 0x65, 0x6e, + 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x67, 0x6d, 0x74, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x4d, 0x67, + 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x0d, 0x4d, 0x67, + 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x19, 0x4d, 0x67, + 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5241,7 +5512,7 @@ func file_mgmt_v1alpha1_job_proto_rawDescGZIP() []byte { } var file_mgmt_v1alpha1_job_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_mgmt_v1alpha1_job_proto_msgTypes = make([]protoimpl.MessageInfo, 77) +var file_mgmt_v1alpha1_job_proto_msgTypes = make([]protoimpl.MessageInfo, 80) var file_mgmt_v1alpha1_job_proto_goTypes = []interface{}{ (JobStatus)(0), // 0: mgmt.v1alpha1.JobStatus (ActivityStatus)(0), // 1: mgmt.v1alpha1.ActivityStatus @@ -5249,198 +5520,204 @@ var file_mgmt_v1alpha1_job_proto_goTypes = []interface{}{ (*GetJobsRequest)(nil), // 3: mgmt.v1alpha1.GetJobsRequest (*GetJobsResponse)(nil), // 4: mgmt.v1alpha1.GetJobsResponse (*JobSource)(nil), // 5: mgmt.v1alpha1.JobSource - (*CreateJobDestination)(nil), // 6: mgmt.v1alpha1.CreateJobDestination - (*JobDestination)(nil), // 7: mgmt.v1alpha1.JobDestination - (*JobSourceOptions)(nil), // 8: mgmt.v1alpha1.JobSourceOptions - (*PostgresSourceConnectionOptions)(nil), // 9: mgmt.v1alpha1.PostgresSourceConnectionOptions - (*PostgresSourceSchemaOption)(nil), // 10: mgmt.v1alpha1.PostgresSourceSchemaOption - (*PostgresSourceTableOption)(nil), // 11: mgmt.v1alpha1.PostgresSourceTableOption - (*MysqlSourceConnectionOptions)(nil), // 12: mgmt.v1alpha1.MysqlSourceConnectionOptions - (*MysqlSourceSchemaOption)(nil), // 13: mgmt.v1alpha1.MysqlSourceSchemaOption - (*MysqlSourceTableOption)(nil), // 14: mgmt.v1alpha1.MysqlSourceTableOption - (*AwsS3SourceConnectionOptions)(nil), // 15: mgmt.v1alpha1.AwsS3SourceConnectionOptions - (*JobDestinationOptions)(nil), // 16: mgmt.v1alpha1.JobDestinationOptions - (*PostgresDestinationConnectionOptions)(nil), // 17: mgmt.v1alpha1.PostgresDestinationConnectionOptions - (*PostgresTruncateTableConfig)(nil), // 18: mgmt.v1alpha1.PostgresTruncateTableConfig - (*MysqlDestinationConnectionOptions)(nil), // 19: mgmt.v1alpha1.MysqlDestinationConnectionOptions - (*MysqlTruncateTableConfig)(nil), // 20: mgmt.v1alpha1.MysqlTruncateTableConfig - (*AwsS3DestinationConnectionOptions)(nil), // 21: mgmt.v1alpha1.AwsS3DestinationConnectionOptions - (*CreateJobRequest)(nil), // 22: mgmt.v1alpha1.CreateJobRequest - (*CreateJobResponse)(nil), // 23: mgmt.v1alpha1.CreateJobResponse - (*JobMapping)(nil), // 24: mgmt.v1alpha1.JobMapping - (*GetJobRequest)(nil), // 25: mgmt.v1alpha1.GetJobRequest - (*GetJobResponse)(nil), // 26: mgmt.v1alpha1.GetJobResponse - (*UpdateJobScheduleRequest)(nil), // 27: mgmt.v1alpha1.UpdateJobScheduleRequest - (*UpdateJobScheduleResponse)(nil), // 28: mgmt.v1alpha1.UpdateJobScheduleResponse - (*PauseJobRequest)(nil), // 29: mgmt.v1alpha1.PauseJobRequest - (*PauseJobResponse)(nil), // 30: mgmt.v1alpha1.PauseJobResponse - (*UpdateJobSourceConnectionRequest)(nil), // 31: mgmt.v1alpha1.UpdateJobSourceConnectionRequest - (*UpdateJobSourceConnectionResponse)(nil), // 32: mgmt.v1alpha1.UpdateJobSourceConnectionResponse - (*PostgresSourceSchemaSubset)(nil), // 33: mgmt.v1alpha1.PostgresSourceSchemaSubset - (*MysqlSourceSchemaSubset)(nil), // 34: mgmt.v1alpha1.MysqlSourceSchemaSubset - (*JobSourceSqlSubetSchemas)(nil), // 35: mgmt.v1alpha1.JobSourceSqlSubetSchemas - (*SetJobSourceSqlConnectionSubsetsRequest)(nil), // 36: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsRequest - (*SetJobSourceSqlConnectionSubsetsResponse)(nil), // 37: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsResponse - (*UpdateJobDestinationConnectionRequest)(nil), // 38: mgmt.v1alpha1.UpdateJobDestinationConnectionRequest - (*UpdateJobDestinationConnectionResponse)(nil), // 39: mgmt.v1alpha1.UpdateJobDestinationConnectionResponse - (*DeleteJobDestinationConnectionRequest)(nil), // 40: mgmt.v1alpha1.DeleteJobDestinationConnectionRequest - (*DeleteJobDestinationConnectionResponse)(nil), // 41: mgmt.v1alpha1.DeleteJobDestinationConnectionResponse - (*CreateJobDestinationConnectionsRequest)(nil), // 42: mgmt.v1alpha1.CreateJobDestinationConnectionsRequest - (*CreateJobDestinationConnectionsResponse)(nil), // 43: mgmt.v1alpha1.CreateJobDestinationConnectionsResponse - (*DeleteJobRequest)(nil), // 44: mgmt.v1alpha1.DeleteJobRequest - (*DeleteJobResponse)(nil), // 45: mgmt.v1alpha1.DeleteJobResponse - (*IsJobNameAvailableRequest)(nil), // 46: mgmt.v1alpha1.IsJobNameAvailableRequest - (*IsJobNameAvailableResponse)(nil), // 47: mgmt.v1alpha1.IsJobNameAvailableResponse - (*GetJobRunsRequest)(nil), // 48: mgmt.v1alpha1.GetJobRunsRequest - (*GetJobRunsResponse)(nil), // 49: mgmt.v1alpha1.GetJobRunsResponse - (*GetJobRunRequest)(nil), // 50: mgmt.v1alpha1.GetJobRunRequest - (*GetJobRunResponse)(nil), // 51: mgmt.v1alpha1.GetJobRunResponse - (*CreateJobRunRequest)(nil), // 52: mgmt.v1alpha1.CreateJobRunRequest - (*CreateJobRunResponse)(nil), // 53: mgmt.v1alpha1.CreateJobRunResponse - (*CancelJobRunRequest)(nil), // 54: mgmt.v1alpha1.CancelJobRunRequest - (*CancelJobRunResponse)(nil), // 55: mgmt.v1alpha1.CancelJobRunResponse - (*Job)(nil), // 56: mgmt.v1alpha1.Job - (*JobRecentRun)(nil), // 57: mgmt.v1alpha1.JobRecentRun - (*GetJobRecentRunsRequest)(nil), // 58: mgmt.v1alpha1.GetJobRecentRunsRequest - (*GetJobRecentRunsResponse)(nil), // 59: mgmt.v1alpha1.GetJobRecentRunsResponse - (*JobNextRuns)(nil), // 60: mgmt.v1alpha1.JobNextRuns - (*GetJobNextRunsRequest)(nil), // 61: mgmt.v1alpha1.GetJobNextRunsRequest - (*GetJobNextRunsResponse)(nil), // 62: mgmt.v1alpha1.GetJobNextRunsResponse - (*GetJobStatusRequest)(nil), // 63: mgmt.v1alpha1.GetJobStatusRequest - (*GetJobStatusResponse)(nil), // 64: mgmt.v1alpha1.GetJobStatusResponse - (*JobStatusRecord)(nil), // 65: mgmt.v1alpha1.JobStatusRecord - (*GetJobStatusesRequest)(nil), // 66: mgmt.v1alpha1.GetJobStatusesRequest - (*GetJobStatusesResponse)(nil), // 67: mgmt.v1alpha1.GetJobStatusesResponse - (*ActivityFailure)(nil), // 68: mgmt.v1alpha1.ActivityFailure - (*PendingActivity)(nil), // 69: mgmt.v1alpha1.PendingActivity - (*JobRun)(nil), // 70: mgmt.v1alpha1.JobRun - (*JobRunEventTaskError)(nil), // 71: mgmt.v1alpha1.JobRunEventTaskError - (*JobRunEventTask)(nil), // 72: mgmt.v1alpha1.JobRunEventTask - (*JobRunSyncMetadata)(nil), // 73: mgmt.v1alpha1.JobRunSyncMetadata - (*JobRunEventMetadata)(nil), // 74: mgmt.v1alpha1.JobRunEventMetadata - (*JobRunEvent)(nil), // 75: mgmt.v1alpha1.JobRunEvent - (*GetJobRunEventsRequest)(nil), // 76: mgmt.v1alpha1.GetJobRunEventsRequest - (*GetJobRunEventsResponse)(nil), // 77: mgmt.v1alpha1.GetJobRunEventsResponse - (*DeleteJobRunRequest)(nil), // 78: mgmt.v1alpha1.DeleteJobRunRequest - (*DeleteJobRunResponse)(nil), // 79: mgmt.v1alpha1.DeleteJobRunResponse - (*Transformer)(nil), // 80: mgmt.v1alpha1.Transformer - (*timestamppb.Timestamp)(nil), // 81: google.protobuf.Timestamp + (*JobSourceOptions)(nil), // 6: mgmt.v1alpha1.JobSourceOptions + (*CreateJobDestination)(nil), // 7: mgmt.v1alpha1.CreateJobDestination + (*JobDestination)(nil), // 8: mgmt.v1alpha1.JobDestination + (*GenerateSourceOptions)(nil), // 9: mgmt.v1alpha1.GenerateSourceOptions + (*GenerateSourceSchemaOption)(nil), // 10: mgmt.v1alpha1.GenerateSourceSchemaOption + (*GenerateSourceTableOption)(nil), // 11: mgmt.v1alpha1.GenerateSourceTableOption + (*PostgresSourceConnectionOptions)(nil), // 12: mgmt.v1alpha1.PostgresSourceConnectionOptions + (*PostgresSourceSchemaOption)(nil), // 13: mgmt.v1alpha1.PostgresSourceSchemaOption + (*PostgresSourceTableOption)(nil), // 14: mgmt.v1alpha1.PostgresSourceTableOption + (*MysqlSourceConnectionOptions)(nil), // 15: mgmt.v1alpha1.MysqlSourceConnectionOptions + (*MysqlSourceSchemaOption)(nil), // 16: mgmt.v1alpha1.MysqlSourceSchemaOption + (*MysqlSourceTableOption)(nil), // 17: mgmt.v1alpha1.MysqlSourceTableOption + (*AwsS3SourceConnectionOptions)(nil), // 18: mgmt.v1alpha1.AwsS3SourceConnectionOptions + (*JobDestinationOptions)(nil), // 19: mgmt.v1alpha1.JobDestinationOptions + (*PostgresDestinationConnectionOptions)(nil), // 20: mgmt.v1alpha1.PostgresDestinationConnectionOptions + (*PostgresTruncateTableConfig)(nil), // 21: mgmt.v1alpha1.PostgresTruncateTableConfig + (*MysqlDestinationConnectionOptions)(nil), // 22: mgmt.v1alpha1.MysqlDestinationConnectionOptions + (*MysqlTruncateTableConfig)(nil), // 23: mgmt.v1alpha1.MysqlTruncateTableConfig + (*AwsS3DestinationConnectionOptions)(nil), // 24: mgmt.v1alpha1.AwsS3DestinationConnectionOptions + (*CreateJobRequest)(nil), // 25: mgmt.v1alpha1.CreateJobRequest + (*CreateJobResponse)(nil), // 26: mgmt.v1alpha1.CreateJobResponse + (*JobMapping)(nil), // 27: mgmt.v1alpha1.JobMapping + (*GetJobRequest)(nil), // 28: mgmt.v1alpha1.GetJobRequest + (*GetJobResponse)(nil), // 29: mgmt.v1alpha1.GetJobResponse + (*UpdateJobScheduleRequest)(nil), // 30: mgmt.v1alpha1.UpdateJobScheduleRequest + (*UpdateJobScheduleResponse)(nil), // 31: mgmt.v1alpha1.UpdateJobScheduleResponse + (*PauseJobRequest)(nil), // 32: mgmt.v1alpha1.PauseJobRequest + (*PauseJobResponse)(nil), // 33: mgmt.v1alpha1.PauseJobResponse + (*UpdateJobSourceConnectionRequest)(nil), // 34: mgmt.v1alpha1.UpdateJobSourceConnectionRequest + (*UpdateJobSourceConnectionResponse)(nil), // 35: mgmt.v1alpha1.UpdateJobSourceConnectionResponse + (*PostgresSourceSchemaSubset)(nil), // 36: mgmt.v1alpha1.PostgresSourceSchemaSubset + (*MysqlSourceSchemaSubset)(nil), // 37: mgmt.v1alpha1.MysqlSourceSchemaSubset + (*JobSourceSqlSubetSchemas)(nil), // 38: mgmt.v1alpha1.JobSourceSqlSubetSchemas + (*SetJobSourceSqlConnectionSubsetsRequest)(nil), // 39: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsRequest + (*SetJobSourceSqlConnectionSubsetsResponse)(nil), // 40: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsResponse + (*UpdateJobDestinationConnectionRequest)(nil), // 41: mgmt.v1alpha1.UpdateJobDestinationConnectionRequest + (*UpdateJobDestinationConnectionResponse)(nil), // 42: mgmt.v1alpha1.UpdateJobDestinationConnectionResponse + (*DeleteJobDestinationConnectionRequest)(nil), // 43: mgmt.v1alpha1.DeleteJobDestinationConnectionRequest + (*DeleteJobDestinationConnectionResponse)(nil), // 44: mgmt.v1alpha1.DeleteJobDestinationConnectionResponse + (*CreateJobDestinationConnectionsRequest)(nil), // 45: mgmt.v1alpha1.CreateJobDestinationConnectionsRequest + (*CreateJobDestinationConnectionsResponse)(nil), // 46: mgmt.v1alpha1.CreateJobDestinationConnectionsResponse + (*DeleteJobRequest)(nil), // 47: mgmt.v1alpha1.DeleteJobRequest + (*DeleteJobResponse)(nil), // 48: mgmt.v1alpha1.DeleteJobResponse + (*IsJobNameAvailableRequest)(nil), // 49: mgmt.v1alpha1.IsJobNameAvailableRequest + (*IsJobNameAvailableResponse)(nil), // 50: mgmt.v1alpha1.IsJobNameAvailableResponse + (*GetJobRunsRequest)(nil), // 51: mgmt.v1alpha1.GetJobRunsRequest + (*GetJobRunsResponse)(nil), // 52: mgmt.v1alpha1.GetJobRunsResponse + (*GetJobRunRequest)(nil), // 53: mgmt.v1alpha1.GetJobRunRequest + (*GetJobRunResponse)(nil), // 54: mgmt.v1alpha1.GetJobRunResponse + (*CreateJobRunRequest)(nil), // 55: mgmt.v1alpha1.CreateJobRunRequest + (*CreateJobRunResponse)(nil), // 56: mgmt.v1alpha1.CreateJobRunResponse + (*CancelJobRunRequest)(nil), // 57: mgmt.v1alpha1.CancelJobRunRequest + (*CancelJobRunResponse)(nil), // 58: mgmt.v1alpha1.CancelJobRunResponse + (*Job)(nil), // 59: mgmt.v1alpha1.Job + (*JobRecentRun)(nil), // 60: mgmt.v1alpha1.JobRecentRun + (*GetJobRecentRunsRequest)(nil), // 61: mgmt.v1alpha1.GetJobRecentRunsRequest + (*GetJobRecentRunsResponse)(nil), // 62: mgmt.v1alpha1.GetJobRecentRunsResponse + (*JobNextRuns)(nil), // 63: mgmt.v1alpha1.JobNextRuns + (*GetJobNextRunsRequest)(nil), // 64: mgmt.v1alpha1.GetJobNextRunsRequest + (*GetJobNextRunsResponse)(nil), // 65: mgmt.v1alpha1.GetJobNextRunsResponse + (*GetJobStatusRequest)(nil), // 66: mgmt.v1alpha1.GetJobStatusRequest + (*GetJobStatusResponse)(nil), // 67: mgmt.v1alpha1.GetJobStatusResponse + (*JobStatusRecord)(nil), // 68: mgmt.v1alpha1.JobStatusRecord + (*GetJobStatusesRequest)(nil), // 69: mgmt.v1alpha1.GetJobStatusesRequest + (*GetJobStatusesResponse)(nil), // 70: mgmt.v1alpha1.GetJobStatusesResponse + (*ActivityFailure)(nil), // 71: mgmt.v1alpha1.ActivityFailure + (*PendingActivity)(nil), // 72: mgmt.v1alpha1.PendingActivity + (*JobRun)(nil), // 73: mgmt.v1alpha1.JobRun + (*JobRunEventTaskError)(nil), // 74: mgmt.v1alpha1.JobRunEventTaskError + (*JobRunEventTask)(nil), // 75: mgmt.v1alpha1.JobRunEventTask + (*JobRunSyncMetadata)(nil), // 76: mgmt.v1alpha1.JobRunSyncMetadata + (*JobRunEventMetadata)(nil), // 77: mgmt.v1alpha1.JobRunEventMetadata + (*JobRunEvent)(nil), // 78: mgmt.v1alpha1.JobRunEvent + (*GetJobRunEventsRequest)(nil), // 79: mgmt.v1alpha1.GetJobRunEventsRequest + (*GetJobRunEventsResponse)(nil), // 80: mgmt.v1alpha1.GetJobRunEventsResponse + (*DeleteJobRunRequest)(nil), // 81: mgmt.v1alpha1.DeleteJobRunRequest + (*DeleteJobRunResponse)(nil), // 82: mgmt.v1alpha1.DeleteJobRunResponse + (*Transformer)(nil), // 83: mgmt.v1alpha1.Transformer + (*timestamppb.Timestamp)(nil), // 84: google.protobuf.Timestamp } var file_mgmt_v1alpha1_job_proto_depIdxs = []int32{ - 56, // 0: mgmt.v1alpha1.GetJobsResponse.jobs:type_name -> mgmt.v1alpha1.Job - 8, // 1: mgmt.v1alpha1.JobSource.options:type_name -> mgmt.v1alpha1.JobSourceOptions - 16, // 2: mgmt.v1alpha1.CreateJobDestination.options:type_name -> mgmt.v1alpha1.JobDestinationOptions - 16, // 3: mgmt.v1alpha1.JobDestination.options:type_name -> mgmt.v1alpha1.JobDestinationOptions - 9, // 4: mgmt.v1alpha1.JobSourceOptions.postgres_options:type_name -> mgmt.v1alpha1.PostgresSourceConnectionOptions - 15, // 5: mgmt.v1alpha1.JobSourceOptions.aws_s3_options:type_name -> mgmt.v1alpha1.AwsS3SourceConnectionOptions - 12, // 6: mgmt.v1alpha1.JobSourceOptions.mysql_options:type_name -> mgmt.v1alpha1.MysqlSourceConnectionOptions - 10, // 7: mgmt.v1alpha1.PostgresSourceConnectionOptions.schemas:type_name -> mgmt.v1alpha1.PostgresSourceSchemaOption - 11, // 8: mgmt.v1alpha1.PostgresSourceSchemaOption.tables:type_name -> mgmt.v1alpha1.PostgresSourceTableOption - 13, // 9: mgmt.v1alpha1.MysqlSourceConnectionOptions.schemas:type_name -> mgmt.v1alpha1.MysqlSourceSchemaOption - 14, // 10: mgmt.v1alpha1.MysqlSourceSchemaOption.tables:type_name -> mgmt.v1alpha1.MysqlSourceTableOption - 17, // 11: mgmt.v1alpha1.JobDestinationOptions.postgres_options:type_name -> mgmt.v1alpha1.PostgresDestinationConnectionOptions - 21, // 12: mgmt.v1alpha1.JobDestinationOptions.aws_s3_options:type_name -> mgmt.v1alpha1.AwsS3DestinationConnectionOptions - 19, // 13: mgmt.v1alpha1.JobDestinationOptions.mysql_options:type_name -> mgmt.v1alpha1.MysqlDestinationConnectionOptions - 18, // 14: mgmt.v1alpha1.PostgresDestinationConnectionOptions.truncate_table:type_name -> mgmt.v1alpha1.PostgresTruncateTableConfig - 20, // 15: mgmt.v1alpha1.MysqlDestinationConnectionOptions.truncate_table:type_name -> mgmt.v1alpha1.MysqlTruncateTableConfig - 24, // 16: mgmt.v1alpha1.CreateJobRequest.mappings:type_name -> mgmt.v1alpha1.JobMapping - 5, // 17: mgmt.v1alpha1.CreateJobRequest.source:type_name -> mgmt.v1alpha1.JobSource - 6, // 18: mgmt.v1alpha1.CreateJobRequest.destinations:type_name -> mgmt.v1alpha1.CreateJobDestination - 56, // 19: mgmt.v1alpha1.CreateJobResponse.job:type_name -> mgmt.v1alpha1.Job - 80, // 20: mgmt.v1alpha1.JobMapping.transformer:type_name -> mgmt.v1alpha1.Transformer - 56, // 21: mgmt.v1alpha1.GetJobResponse.job:type_name -> mgmt.v1alpha1.Job - 56, // 22: mgmt.v1alpha1.UpdateJobScheduleResponse.job:type_name -> mgmt.v1alpha1.Job - 56, // 23: mgmt.v1alpha1.PauseJobResponse.job:type_name -> mgmt.v1alpha1.Job - 5, // 24: mgmt.v1alpha1.UpdateJobSourceConnectionRequest.source:type_name -> mgmt.v1alpha1.JobSource - 24, // 25: mgmt.v1alpha1.UpdateJobSourceConnectionRequest.mappings:type_name -> mgmt.v1alpha1.JobMapping - 56, // 26: mgmt.v1alpha1.UpdateJobSourceConnectionResponse.job:type_name -> mgmt.v1alpha1.Job - 10, // 27: mgmt.v1alpha1.PostgresSourceSchemaSubset.postgres_schemas:type_name -> mgmt.v1alpha1.PostgresSourceSchemaOption - 13, // 28: mgmt.v1alpha1.MysqlSourceSchemaSubset.mysql_schemas:type_name -> mgmt.v1alpha1.MysqlSourceSchemaOption - 33, // 29: mgmt.v1alpha1.JobSourceSqlSubetSchemas.postgres_subset:type_name -> mgmt.v1alpha1.PostgresSourceSchemaSubset - 34, // 30: mgmt.v1alpha1.JobSourceSqlSubetSchemas.mysql_subset:type_name -> mgmt.v1alpha1.MysqlSourceSchemaSubset - 35, // 31: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsRequest.schemas:type_name -> mgmt.v1alpha1.JobSourceSqlSubetSchemas - 56, // 32: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsResponse.job:type_name -> mgmt.v1alpha1.Job - 16, // 33: mgmt.v1alpha1.UpdateJobDestinationConnectionRequest.options:type_name -> mgmt.v1alpha1.JobDestinationOptions - 56, // 34: mgmt.v1alpha1.UpdateJobDestinationConnectionResponse.job:type_name -> mgmt.v1alpha1.Job - 6, // 35: mgmt.v1alpha1.CreateJobDestinationConnectionsRequest.destinations:type_name -> mgmt.v1alpha1.CreateJobDestination - 56, // 36: mgmt.v1alpha1.CreateJobDestinationConnectionsResponse.job:type_name -> mgmt.v1alpha1.Job - 70, // 37: mgmt.v1alpha1.GetJobRunsResponse.job_runs:type_name -> mgmt.v1alpha1.JobRun - 70, // 38: mgmt.v1alpha1.GetJobRunResponse.job_run:type_name -> mgmt.v1alpha1.JobRun - 81, // 39: mgmt.v1alpha1.Job.created_at:type_name -> google.protobuf.Timestamp - 81, // 40: mgmt.v1alpha1.Job.updated_at:type_name -> google.protobuf.Timestamp - 5, // 41: mgmt.v1alpha1.Job.source:type_name -> mgmt.v1alpha1.JobSource - 7, // 42: mgmt.v1alpha1.Job.destinations:type_name -> mgmt.v1alpha1.JobDestination - 24, // 43: mgmt.v1alpha1.Job.mappings:type_name -> mgmt.v1alpha1.JobMapping - 81, // 44: mgmt.v1alpha1.JobRecentRun.start_time:type_name -> google.protobuf.Timestamp - 57, // 45: mgmt.v1alpha1.GetJobRecentRunsResponse.recent_runs:type_name -> mgmt.v1alpha1.JobRecentRun - 81, // 46: mgmt.v1alpha1.JobNextRuns.next_run_times:type_name -> google.protobuf.Timestamp - 60, // 47: mgmt.v1alpha1.GetJobNextRunsResponse.next_runs:type_name -> mgmt.v1alpha1.JobNextRuns - 0, // 48: mgmt.v1alpha1.GetJobStatusResponse.status:type_name -> mgmt.v1alpha1.JobStatus - 0, // 49: mgmt.v1alpha1.JobStatusRecord.status:type_name -> mgmt.v1alpha1.JobStatus - 65, // 50: mgmt.v1alpha1.GetJobStatusesResponse.statuses:type_name -> mgmt.v1alpha1.JobStatusRecord - 1, // 51: mgmt.v1alpha1.PendingActivity.status:type_name -> mgmt.v1alpha1.ActivityStatus - 68, // 52: mgmt.v1alpha1.PendingActivity.last_failure:type_name -> mgmt.v1alpha1.ActivityFailure - 2, // 53: mgmt.v1alpha1.JobRun.status:type_name -> mgmt.v1alpha1.JobRunStatus - 81, // 54: mgmt.v1alpha1.JobRun.started_at:type_name -> google.protobuf.Timestamp - 81, // 55: mgmt.v1alpha1.JobRun.completed_at:type_name -> google.protobuf.Timestamp - 69, // 56: mgmt.v1alpha1.JobRun.pending_activities:type_name -> mgmt.v1alpha1.PendingActivity - 81, // 57: mgmt.v1alpha1.JobRunEventTask.event_time:type_name -> google.protobuf.Timestamp - 71, // 58: mgmt.v1alpha1.JobRunEventTask.error:type_name -> mgmt.v1alpha1.JobRunEventTaskError - 73, // 59: mgmt.v1alpha1.JobRunEventMetadata.sync_metadata:type_name -> mgmt.v1alpha1.JobRunSyncMetadata - 81, // 60: mgmt.v1alpha1.JobRunEvent.start_time:type_name -> google.protobuf.Timestamp - 81, // 61: mgmt.v1alpha1.JobRunEvent.close_time:type_name -> google.protobuf.Timestamp - 74, // 62: mgmt.v1alpha1.JobRunEvent.metadata:type_name -> mgmt.v1alpha1.JobRunEventMetadata - 72, // 63: mgmt.v1alpha1.JobRunEvent.tasks:type_name -> mgmt.v1alpha1.JobRunEventTask - 75, // 64: mgmt.v1alpha1.GetJobRunEventsResponse.events:type_name -> mgmt.v1alpha1.JobRunEvent - 3, // 65: mgmt.v1alpha1.JobService.GetJobs:input_type -> mgmt.v1alpha1.GetJobsRequest - 25, // 66: mgmt.v1alpha1.JobService.GetJob:input_type -> mgmt.v1alpha1.GetJobRequest - 22, // 67: mgmt.v1alpha1.JobService.CreateJob:input_type -> mgmt.v1alpha1.CreateJobRequest - 44, // 68: mgmt.v1alpha1.JobService.DeleteJob:input_type -> mgmt.v1alpha1.DeleteJobRequest - 46, // 69: mgmt.v1alpha1.JobService.IsJobNameAvailable:input_type -> mgmt.v1alpha1.IsJobNameAvailableRequest - 27, // 70: mgmt.v1alpha1.JobService.UpdateJobSchedule:input_type -> mgmt.v1alpha1.UpdateJobScheduleRequest - 31, // 71: mgmt.v1alpha1.JobService.UpdateJobSourceConnection:input_type -> mgmt.v1alpha1.UpdateJobSourceConnectionRequest - 36, // 72: mgmt.v1alpha1.JobService.SetJobSourceSqlConnectionSubsets:input_type -> mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsRequest - 38, // 73: mgmt.v1alpha1.JobService.UpdateJobDestinationConnection:input_type -> mgmt.v1alpha1.UpdateJobDestinationConnectionRequest - 40, // 74: mgmt.v1alpha1.JobService.DeleteJobDestinationConnection:input_type -> mgmt.v1alpha1.DeleteJobDestinationConnectionRequest - 42, // 75: mgmt.v1alpha1.JobService.CreateJobDestinationConnections:input_type -> mgmt.v1alpha1.CreateJobDestinationConnectionsRequest - 29, // 76: mgmt.v1alpha1.JobService.PauseJob:input_type -> mgmt.v1alpha1.PauseJobRequest - 58, // 77: mgmt.v1alpha1.JobService.GetJobRecentRuns:input_type -> mgmt.v1alpha1.GetJobRecentRunsRequest - 61, // 78: mgmt.v1alpha1.JobService.GetJobNextRuns:input_type -> mgmt.v1alpha1.GetJobNextRunsRequest - 63, // 79: mgmt.v1alpha1.JobService.GetJobStatus:input_type -> mgmt.v1alpha1.GetJobStatusRequest - 66, // 80: mgmt.v1alpha1.JobService.GetJobStatuses:input_type -> mgmt.v1alpha1.GetJobStatusesRequest - 48, // 81: mgmt.v1alpha1.JobService.GetJobRuns:input_type -> mgmt.v1alpha1.GetJobRunsRequest - 76, // 82: mgmt.v1alpha1.JobService.GetJobRunEvents:input_type -> mgmt.v1alpha1.GetJobRunEventsRequest - 50, // 83: mgmt.v1alpha1.JobService.GetJobRun:input_type -> mgmt.v1alpha1.GetJobRunRequest - 78, // 84: mgmt.v1alpha1.JobService.DeleteJobRun:input_type -> mgmt.v1alpha1.DeleteJobRunRequest - 52, // 85: mgmt.v1alpha1.JobService.CreateJobRun:input_type -> mgmt.v1alpha1.CreateJobRunRequest - 54, // 86: mgmt.v1alpha1.JobService.CancelJobRun:input_type -> mgmt.v1alpha1.CancelJobRunRequest - 4, // 87: mgmt.v1alpha1.JobService.GetJobs:output_type -> mgmt.v1alpha1.GetJobsResponse - 26, // 88: mgmt.v1alpha1.JobService.GetJob:output_type -> mgmt.v1alpha1.GetJobResponse - 23, // 89: mgmt.v1alpha1.JobService.CreateJob:output_type -> mgmt.v1alpha1.CreateJobResponse - 45, // 90: mgmt.v1alpha1.JobService.DeleteJob:output_type -> mgmt.v1alpha1.DeleteJobResponse - 47, // 91: mgmt.v1alpha1.JobService.IsJobNameAvailable:output_type -> mgmt.v1alpha1.IsJobNameAvailableResponse - 28, // 92: mgmt.v1alpha1.JobService.UpdateJobSchedule:output_type -> mgmt.v1alpha1.UpdateJobScheduleResponse - 32, // 93: mgmt.v1alpha1.JobService.UpdateJobSourceConnection:output_type -> mgmt.v1alpha1.UpdateJobSourceConnectionResponse - 37, // 94: mgmt.v1alpha1.JobService.SetJobSourceSqlConnectionSubsets:output_type -> mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsResponse - 39, // 95: mgmt.v1alpha1.JobService.UpdateJobDestinationConnection:output_type -> mgmt.v1alpha1.UpdateJobDestinationConnectionResponse - 41, // 96: mgmt.v1alpha1.JobService.DeleteJobDestinationConnection:output_type -> mgmt.v1alpha1.DeleteJobDestinationConnectionResponse - 43, // 97: mgmt.v1alpha1.JobService.CreateJobDestinationConnections:output_type -> mgmt.v1alpha1.CreateJobDestinationConnectionsResponse - 30, // 98: mgmt.v1alpha1.JobService.PauseJob:output_type -> mgmt.v1alpha1.PauseJobResponse - 59, // 99: mgmt.v1alpha1.JobService.GetJobRecentRuns:output_type -> mgmt.v1alpha1.GetJobRecentRunsResponse - 62, // 100: mgmt.v1alpha1.JobService.GetJobNextRuns:output_type -> mgmt.v1alpha1.GetJobNextRunsResponse - 64, // 101: mgmt.v1alpha1.JobService.GetJobStatus:output_type -> mgmt.v1alpha1.GetJobStatusResponse - 67, // 102: mgmt.v1alpha1.JobService.GetJobStatuses:output_type -> mgmt.v1alpha1.GetJobStatusesResponse - 49, // 103: mgmt.v1alpha1.JobService.GetJobRuns:output_type -> mgmt.v1alpha1.GetJobRunsResponse - 77, // 104: mgmt.v1alpha1.JobService.GetJobRunEvents:output_type -> mgmt.v1alpha1.GetJobRunEventsResponse - 51, // 105: mgmt.v1alpha1.JobService.GetJobRun:output_type -> mgmt.v1alpha1.GetJobRunResponse - 79, // 106: mgmt.v1alpha1.JobService.DeleteJobRun:output_type -> mgmt.v1alpha1.DeleteJobRunResponse - 53, // 107: mgmt.v1alpha1.JobService.CreateJobRun:output_type -> mgmt.v1alpha1.CreateJobRunResponse - 55, // 108: mgmt.v1alpha1.JobService.CancelJobRun:output_type -> mgmt.v1alpha1.CancelJobRunResponse - 87, // [87:109] is the sub-list for method output_type - 65, // [65:87] is the sub-list for method input_type - 65, // [65:65] is the sub-list for extension type_name - 65, // [65:65] is the sub-list for extension extendee - 0, // [0:65] is the sub-list for field type_name + 59, // 0: mgmt.v1alpha1.GetJobsResponse.jobs:type_name -> mgmt.v1alpha1.Job + 6, // 1: mgmt.v1alpha1.JobSource.options:type_name -> mgmt.v1alpha1.JobSourceOptions + 12, // 2: mgmt.v1alpha1.JobSourceOptions.postgres:type_name -> mgmt.v1alpha1.PostgresSourceConnectionOptions + 18, // 3: mgmt.v1alpha1.JobSourceOptions.aws_s3:type_name -> mgmt.v1alpha1.AwsS3SourceConnectionOptions + 15, // 4: mgmt.v1alpha1.JobSourceOptions.mysql:type_name -> mgmt.v1alpha1.MysqlSourceConnectionOptions + 9, // 5: mgmt.v1alpha1.JobSourceOptions.generate:type_name -> mgmt.v1alpha1.GenerateSourceOptions + 19, // 6: mgmt.v1alpha1.CreateJobDestination.options:type_name -> mgmt.v1alpha1.JobDestinationOptions + 19, // 7: mgmt.v1alpha1.JobDestination.options:type_name -> mgmt.v1alpha1.JobDestinationOptions + 10, // 8: mgmt.v1alpha1.GenerateSourceOptions.schemas:type_name -> mgmt.v1alpha1.GenerateSourceSchemaOption + 11, // 9: mgmt.v1alpha1.GenerateSourceSchemaOption.tables:type_name -> mgmt.v1alpha1.GenerateSourceTableOption + 13, // 10: mgmt.v1alpha1.PostgresSourceConnectionOptions.schemas:type_name -> mgmt.v1alpha1.PostgresSourceSchemaOption + 14, // 11: mgmt.v1alpha1.PostgresSourceSchemaOption.tables:type_name -> mgmt.v1alpha1.PostgresSourceTableOption + 16, // 12: mgmt.v1alpha1.MysqlSourceConnectionOptions.schemas:type_name -> mgmt.v1alpha1.MysqlSourceSchemaOption + 17, // 13: mgmt.v1alpha1.MysqlSourceSchemaOption.tables:type_name -> mgmt.v1alpha1.MysqlSourceTableOption + 20, // 14: mgmt.v1alpha1.JobDestinationOptions.postgres_options:type_name -> mgmt.v1alpha1.PostgresDestinationConnectionOptions + 24, // 15: mgmt.v1alpha1.JobDestinationOptions.aws_s3_options:type_name -> mgmt.v1alpha1.AwsS3DestinationConnectionOptions + 22, // 16: mgmt.v1alpha1.JobDestinationOptions.mysql_options:type_name -> mgmt.v1alpha1.MysqlDestinationConnectionOptions + 21, // 17: mgmt.v1alpha1.PostgresDestinationConnectionOptions.truncate_table:type_name -> mgmt.v1alpha1.PostgresTruncateTableConfig + 23, // 18: mgmt.v1alpha1.MysqlDestinationConnectionOptions.truncate_table:type_name -> mgmt.v1alpha1.MysqlTruncateTableConfig + 27, // 19: mgmt.v1alpha1.CreateJobRequest.mappings:type_name -> mgmt.v1alpha1.JobMapping + 5, // 20: mgmt.v1alpha1.CreateJobRequest.source:type_name -> mgmt.v1alpha1.JobSource + 7, // 21: mgmt.v1alpha1.CreateJobRequest.destinations:type_name -> mgmt.v1alpha1.CreateJobDestination + 59, // 22: mgmt.v1alpha1.CreateJobResponse.job:type_name -> mgmt.v1alpha1.Job + 83, // 23: mgmt.v1alpha1.JobMapping.transformer:type_name -> mgmt.v1alpha1.Transformer + 59, // 24: mgmt.v1alpha1.GetJobResponse.job:type_name -> mgmt.v1alpha1.Job + 59, // 25: mgmt.v1alpha1.UpdateJobScheduleResponse.job:type_name -> mgmt.v1alpha1.Job + 59, // 26: mgmt.v1alpha1.PauseJobResponse.job:type_name -> mgmt.v1alpha1.Job + 5, // 27: mgmt.v1alpha1.UpdateJobSourceConnectionRequest.source:type_name -> mgmt.v1alpha1.JobSource + 27, // 28: mgmt.v1alpha1.UpdateJobSourceConnectionRequest.mappings:type_name -> mgmt.v1alpha1.JobMapping + 59, // 29: mgmt.v1alpha1.UpdateJobSourceConnectionResponse.job:type_name -> mgmt.v1alpha1.Job + 13, // 30: mgmt.v1alpha1.PostgresSourceSchemaSubset.postgres_schemas:type_name -> mgmt.v1alpha1.PostgresSourceSchemaOption + 16, // 31: mgmt.v1alpha1.MysqlSourceSchemaSubset.mysql_schemas:type_name -> mgmt.v1alpha1.MysqlSourceSchemaOption + 36, // 32: mgmt.v1alpha1.JobSourceSqlSubetSchemas.postgres_subset:type_name -> mgmt.v1alpha1.PostgresSourceSchemaSubset + 37, // 33: mgmt.v1alpha1.JobSourceSqlSubetSchemas.mysql_subset:type_name -> mgmt.v1alpha1.MysqlSourceSchemaSubset + 38, // 34: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsRequest.schemas:type_name -> mgmt.v1alpha1.JobSourceSqlSubetSchemas + 59, // 35: mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsResponse.job:type_name -> mgmt.v1alpha1.Job + 19, // 36: mgmt.v1alpha1.UpdateJobDestinationConnectionRequest.options:type_name -> mgmt.v1alpha1.JobDestinationOptions + 59, // 37: mgmt.v1alpha1.UpdateJobDestinationConnectionResponse.job:type_name -> mgmt.v1alpha1.Job + 7, // 38: mgmt.v1alpha1.CreateJobDestinationConnectionsRequest.destinations:type_name -> mgmt.v1alpha1.CreateJobDestination + 59, // 39: mgmt.v1alpha1.CreateJobDestinationConnectionsResponse.job:type_name -> mgmt.v1alpha1.Job + 73, // 40: mgmt.v1alpha1.GetJobRunsResponse.job_runs:type_name -> mgmt.v1alpha1.JobRun + 73, // 41: mgmt.v1alpha1.GetJobRunResponse.job_run:type_name -> mgmt.v1alpha1.JobRun + 84, // 42: mgmt.v1alpha1.Job.created_at:type_name -> google.protobuf.Timestamp + 84, // 43: mgmt.v1alpha1.Job.updated_at:type_name -> google.protobuf.Timestamp + 5, // 44: mgmt.v1alpha1.Job.source:type_name -> mgmt.v1alpha1.JobSource + 8, // 45: mgmt.v1alpha1.Job.destinations:type_name -> mgmt.v1alpha1.JobDestination + 27, // 46: mgmt.v1alpha1.Job.mappings:type_name -> mgmt.v1alpha1.JobMapping + 84, // 47: mgmt.v1alpha1.JobRecentRun.start_time:type_name -> google.protobuf.Timestamp + 60, // 48: mgmt.v1alpha1.GetJobRecentRunsResponse.recent_runs:type_name -> mgmt.v1alpha1.JobRecentRun + 84, // 49: mgmt.v1alpha1.JobNextRuns.next_run_times:type_name -> google.protobuf.Timestamp + 63, // 50: mgmt.v1alpha1.GetJobNextRunsResponse.next_runs:type_name -> mgmt.v1alpha1.JobNextRuns + 0, // 51: mgmt.v1alpha1.GetJobStatusResponse.status:type_name -> mgmt.v1alpha1.JobStatus + 0, // 52: mgmt.v1alpha1.JobStatusRecord.status:type_name -> mgmt.v1alpha1.JobStatus + 68, // 53: mgmt.v1alpha1.GetJobStatusesResponse.statuses:type_name -> mgmt.v1alpha1.JobStatusRecord + 1, // 54: mgmt.v1alpha1.PendingActivity.status:type_name -> mgmt.v1alpha1.ActivityStatus + 71, // 55: mgmt.v1alpha1.PendingActivity.last_failure:type_name -> mgmt.v1alpha1.ActivityFailure + 2, // 56: mgmt.v1alpha1.JobRun.status:type_name -> mgmt.v1alpha1.JobRunStatus + 84, // 57: mgmt.v1alpha1.JobRun.started_at:type_name -> google.protobuf.Timestamp + 84, // 58: mgmt.v1alpha1.JobRun.completed_at:type_name -> google.protobuf.Timestamp + 72, // 59: mgmt.v1alpha1.JobRun.pending_activities:type_name -> mgmt.v1alpha1.PendingActivity + 84, // 60: mgmt.v1alpha1.JobRunEventTask.event_time:type_name -> google.protobuf.Timestamp + 74, // 61: mgmt.v1alpha1.JobRunEventTask.error:type_name -> mgmt.v1alpha1.JobRunEventTaskError + 76, // 62: mgmt.v1alpha1.JobRunEventMetadata.sync_metadata:type_name -> mgmt.v1alpha1.JobRunSyncMetadata + 84, // 63: mgmt.v1alpha1.JobRunEvent.start_time:type_name -> google.protobuf.Timestamp + 84, // 64: mgmt.v1alpha1.JobRunEvent.close_time:type_name -> google.protobuf.Timestamp + 77, // 65: mgmt.v1alpha1.JobRunEvent.metadata:type_name -> mgmt.v1alpha1.JobRunEventMetadata + 75, // 66: mgmt.v1alpha1.JobRunEvent.tasks:type_name -> mgmt.v1alpha1.JobRunEventTask + 78, // 67: mgmt.v1alpha1.GetJobRunEventsResponse.events:type_name -> mgmt.v1alpha1.JobRunEvent + 3, // 68: mgmt.v1alpha1.JobService.GetJobs:input_type -> mgmt.v1alpha1.GetJobsRequest + 28, // 69: mgmt.v1alpha1.JobService.GetJob:input_type -> mgmt.v1alpha1.GetJobRequest + 25, // 70: mgmt.v1alpha1.JobService.CreateJob:input_type -> mgmt.v1alpha1.CreateJobRequest + 47, // 71: mgmt.v1alpha1.JobService.DeleteJob:input_type -> mgmt.v1alpha1.DeleteJobRequest + 49, // 72: mgmt.v1alpha1.JobService.IsJobNameAvailable:input_type -> mgmt.v1alpha1.IsJobNameAvailableRequest + 30, // 73: mgmt.v1alpha1.JobService.UpdateJobSchedule:input_type -> mgmt.v1alpha1.UpdateJobScheduleRequest + 34, // 74: mgmt.v1alpha1.JobService.UpdateJobSourceConnection:input_type -> mgmt.v1alpha1.UpdateJobSourceConnectionRequest + 39, // 75: mgmt.v1alpha1.JobService.SetJobSourceSqlConnectionSubsets:input_type -> mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsRequest + 41, // 76: mgmt.v1alpha1.JobService.UpdateJobDestinationConnection:input_type -> mgmt.v1alpha1.UpdateJobDestinationConnectionRequest + 43, // 77: mgmt.v1alpha1.JobService.DeleteJobDestinationConnection:input_type -> mgmt.v1alpha1.DeleteJobDestinationConnectionRequest + 45, // 78: mgmt.v1alpha1.JobService.CreateJobDestinationConnections:input_type -> mgmt.v1alpha1.CreateJobDestinationConnectionsRequest + 32, // 79: mgmt.v1alpha1.JobService.PauseJob:input_type -> mgmt.v1alpha1.PauseJobRequest + 61, // 80: mgmt.v1alpha1.JobService.GetJobRecentRuns:input_type -> mgmt.v1alpha1.GetJobRecentRunsRequest + 64, // 81: mgmt.v1alpha1.JobService.GetJobNextRuns:input_type -> mgmt.v1alpha1.GetJobNextRunsRequest + 66, // 82: mgmt.v1alpha1.JobService.GetJobStatus:input_type -> mgmt.v1alpha1.GetJobStatusRequest + 69, // 83: mgmt.v1alpha1.JobService.GetJobStatuses:input_type -> mgmt.v1alpha1.GetJobStatusesRequest + 51, // 84: mgmt.v1alpha1.JobService.GetJobRuns:input_type -> mgmt.v1alpha1.GetJobRunsRequest + 79, // 85: mgmt.v1alpha1.JobService.GetJobRunEvents:input_type -> mgmt.v1alpha1.GetJobRunEventsRequest + 53, // 86: mgmt.v1alpha1.JobService.GetJobRun:input_type -> mgmt.v1alpha1.GetJobRunRequest + 81, // 87: mgmt.v1alpha1.JobService.DeleteJobRun:input_type -> mgmt.v1alpha1.DeleteJobRunRequest + 55, // 88: mgmt.v1alpha1.JobService.CreateJobRun:input_type -> mgmt.v1alpha1.CreateJobRunRequest + 57, // 89: mgmt.v1alpha1.JobService.CancelJobRun:input_type -> mgmt.v1alpha1.CancelJobRunRequest + 4, // 90: mgmt.v1alpha1.JobService.GetJobs:output_type -> mgmt.v1alpha1.GetJobsResponse + 29, // 91: mgmt.v1alpha1.JobService.GetJob:output_type -> mgmt.v1alpha1.GetJobResponse + 26, // 92: mgmt.v1alpha1.JobService.CreateJob:output_type -> mgmt.v1alpha1.CreateJobResponse + 48, // 93: mgmt.v1alpha1.JobService.DeleteJob:output_type -> mgmt.v1alpha1.DeleteJobResponse + 50, // 94: mgmt.v1alpha1.JobService.IsJobNameAvailable:output_type -> mgmt.v1alpha1.IsJobNameAvailableResponse + 31, // 95: mgmt.v1alpha1.JobService.UpdateJobSchedule:output_type -> mgmt.v1alpha1.UpdateJobScheduleResponse + 35, // 96: mgmt.v1alpha1.JobService.UpdateJobSourceConnection:output_type -> mgmt.v1alpha1.UpdateJobSourceConnectionResponse + 40, // 97: mgmt.v1alpha1.JobService.SetJobSourceSqlConnectionSubsets:output_type -> mgmt.v1alpha1.SetJobSourceSqlConnectionSubsetsResponse + 42, // 98: mgmt.v1alpha1.JobService.UpdateJobDestinationConnection:output_type -> mgmt.v1alpha1.UpdateJobDestinationConnectionResponse + 44, // 99: mgmt.v1alpha1.JobService.DeleteJobDestinationConnection:output_type -> mgmt.v1alpha1.DeleteJobDestinationConnectionResponse + 46, // 100: mgmt.v1alpha1.JobService.CreateJobDestinationConnections:output_type -> mgmt.v1alpha1.CreateJobDestinationConnectionsResponse + 33, // 101: mgmt.v1alpha1.JobService.PauseJob:output_type -> mgmt.v1alpha1.PauseJobResponse + 62, // 102: mgmt.v1alpha1.JobService.GetJobRecentRuns:output_type -> mgmt.v1alpha1.GetJobRecentRunsResponse + 65, // 103: mgmt.v1alpha1.JobService.GetJobNextRuns:output_type -> mgmt.v1alpha1.GetJobNextRunsResponse + 67, // 104: mgmt.v1alpha1.JobService.GetJobStatus:output_type -> mgmt.v1alpha1.GetJobStatusResponse + 70, // 105: mgmt.v1alpha1.JobService.GetJobStatuses:output_type -> mgmt.v1alpha1.GetJobStatusesResponse + 52, // 106: mgmt.v1alpha1.JobService.GetJobRuns:output_type -> mgmt.v1alpha1.GetJobRunsResponse + 80, // 107: mgmt.v1alpha1.JobService.GetJobRunEvents:output_type -> mgmt.v1alpha1.GetJobRunEventsResponse + 54, // 108: mgmt.v1alpha1.JobService.GetJobRun:output_type -> mgmt.v1alpha1.GetJobRunResponse + 82, // 109: mgmt.v1alpha1.JobService.DeleteJobRun:output_type -> mgmt.v1alpha1.DeleteJobRunResponse + 56, // 110: mgmt.v1alpha1.JobService.CreateJobRun:output_type -> mgmt.v1alpha1.CreateJobRunResponse + 58, // 111: mgmt.v1alpha1.JobService.CancelJobRun:output_type -> mgmt.v1alpha1.CancelJobRunResponse + 90, // [90:112] is the sub-list for method output_type + 68, // [68:90] is the sub-list for method input_type + 68, // [68:68] is the sub-list for extension type_name + 68, // [68:68] is the sub-list for extension extendee + 0, // [0:68] is the sub-list for field type_name } func init() { file_mgmt_v1alpha1_job_proto_init() } @@ -5487,7 +5764,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobDestination); i { + switch v := v.(*JobSourceOptions); i { case 0: return &v.state case 1: @@ -5499,7 +5776,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobDestination); i { + switch v := v.(*CreateJobDestination); i { case 0: return &v.state case 1: @@ -5511,7 +5788,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobSourceOptions); i { + switch v := v.(*JobDestination); i { case 0: return &v.state case 1: @@ -5523,7 +5800,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostgresSourceConnectionOptions); i { + switch v := v.(*GenerateSourceOptions); i { case 0: return &v.state case 1: @@ -5535,7 +5812,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostgresSourceSchemaOption); i { + switch v := v.(*GenerateSourceSchemaOption); i { case 0: return &v.state case 1: @@ -5547,7 +5824,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostgresSourceTableOption); i { + switch v := v.(*GenerateSourceTableOption); i { case 0: return &v.state case 1: @@ -5559,7 +5836,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MysqlSourceConnectionOptions); i { + switch v := v.(*PostgresSourceConnectionOptions); i { case 0: return &v.state case 1: @@ -5571,7 +5848,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MysqlSourceSchemaOption); i { + switch v := v.(*PostgresSourceSchemaOption); i { case 0: return &v.state case 1: @@ -5583,7 +5860,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MysqlSourceTableOption); i { + switch v := v.(*PostgresSourceTableOption); i { case 0: return &v.state case 1: @@ -5595,7 +5872,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AwsS3SourceConnectionOptions); i { + switch v := v.(*MysqlSourceConnectionOptions); i { case 0: return &v.state case 1: @@ -5607,7 +5884,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobDestinationOptions); i { + switch v := v.(*MysqlSourceSchemaOption); i { case 0: return &v.state case 1: @@ -5619,7 +5896,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostgresDestinationConnectionOptions); i { + switch v := v.(*MysqlSourceTableOption); i { case 0: return &v.state case 1: @@ -5631,7 +5908,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostgresTruncateTableConfig); i { + switch v := v.(*AwsS3SourceConnectionOptions); i { case 0: return &v.state case 1: @@ -5643,7 +5920,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MysqlDestinationConnectionOptions); i { + switch v := v.(*JobDestinationOptions); i { case 0: return &v.state case 1: @@ -5655,7 +5932,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MysqlTruncateTableConfig); i { + switch v := v.(*PostgresDestinationConnectionOptions); i { case 0: return &v.state case 1: @@ -5667,7 +5944,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AwsS3DestinationConnectionOptions); i { + switch v := v.(*PostgresTruncateTableConfig); i { case 0: return &v.state case 1: @@ -5679,7 +5956,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobRequest); i { + switch v := v.(*MysqlDestinationConnectionOptions); i { case 0: return &v.state case 1: @@ -5691,7 +5968,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobResponse); i { + switch v := v.(*MysqlTruncateTableConfig); i { case 0: return &v.state case 1: @@ -5703,7 +5980,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobMapping); i { + switch v := v.(*AwsS3DestinationConnectionOptions); i { case 0: return &v.state case 1: @@ -5715,7 +5992,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRequest); i { + switch v := v.(*CreateJobRequest); i { case 0: return &v.state case 1: @@ -5727,7 +6004,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobResponse); i { + switch v := v.(*CreateJobResponse); i { case 0: return &v.state case 1: @@ -5739,7 +6016,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobScheduleRequest); i { + switch v := v.(*JobMapping); i { case 0: return &v.state case 1: @@ -5751,7 +6028,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobScheduleResponse); i { + switch v := v.(*GetJobRequest); i { case 0: return &v.state case 1: @@ -5763,7 +6040,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PauseJobRequest); i { + switch v := v.(*GetJobResponse); i { case 0: return &v.state case 1: @@ -5775,7 +6052,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PauseJobResponse); i { + switch v := v.(*UpdateJobScheduleRequest); i { case 0: return &v.state case 1: @@ -5787,7 +6064,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobSourceConnectionRequest); i { + switch v := v.(*UpdateJobScheduleResponse); i { case 0: return &v.state case 1: @@ -5799,7 +6076,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobSourceConnectionResponse); i { + switch v := v.(*PauseJobRequest); i { case 0: return &v.state case 1: @@ -5811,7 +6088,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostgresSourceSchemaSubset); i { + switch v := v.(*PauseJobResponse); i { case 0: return &v.state case 1: @@ -5823,7 +6100,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MysqlSourceSchemaSubset); i { + switch v := v.(*UpdateJobSourceConnectionRequest); i { case 0: return &v.state case 1: @@ -5835,7 +6112,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobSourceSqlSubetSchemas); i { + switch v := v.(*UpdateJobSourceConnectionResponse); i { case 0: return &v.state case 1: @@ -5847,7 +6124,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetJobSourceSqlConnectionSubsetsRequest); i { + switch v := v.(*PostgresSourceSchemaSubset); i { case 0: return &v.state case 1: @@ -5859,7 +6136,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetJobSourceSqlConnectionSubsetsResponse); i { + switch v := v.(*MysqlSourceSchemaSubset); i { case 0: return &v.state case 1: @@ -5871,7 +6148,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobDestinationConnectionRequest); i { + switch v := v.(*JobSourceSqlSubetSchemas); i { case 0: return &v.state case 1: @@ -5883,7 +6160,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobDestinationConnectionResponse); i { + switch v := v.(*SetJobSourceSqlConnectionSubsetsRequest); i { case 0: return &v.state case 1: @@ -5895,7 +6172,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteJobDestinationConnectionRequest); i { + switch v := v.(*SetJobSourceSqlConnectionSubsetsResponse); i { case 0: return &v.state case 1: @@ -5907,7 +6184,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteJobDestinationConnectionResponse); i { + switch v := v.(*UpdateJobDestinationConnectionRequest); i { case 0: return &v.state case 1: @@ -5919,7 +6196,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobDestinationConnectionsRequest); i { + switch v := v.(*UpdateJobDestinationConnectionResponse); i { case 0: return &v.state case 1: @@ -5931,7 +6208,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobDestinationConnectionsResponse); i { + switch v := v.(*DeleteJobDestinationConnectionRequest); i { case 0: return &v.state case 1: @@ -5943,7 +6220,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteJobRequest); i { + switch v := v.(*DeleteJobDestinationConnectionResponse); i { case 0: return &v.state case 1: @@ -5955,7 +6232,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteJobResponse); i { + switch v := v.(*CreateJobDestinationConnectionsRequest); i { case 0: return &v.state case 1: @@ -5967,7 +6244,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsJobNameAvailableRequest); i { + switch v := v.(*CreateJobDestinationConnectionsResponse); i { case 0: return &v.state case 1: @@ -5979,7 +6256,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsJobNameAvailableResponse); i { + switch v := v.(*DeleteJobRequest); i { case 0: return &v.state case 1: @@ -5991,7 +6268,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRunsRequest); i { + switch v := v.(*DeleteJobResponse); i { case 0: return &v.state case 1: @@ -6003,7 +6280,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRunsResponse); i { + switch v := v.(*IsJobNameAvailableRequest); i { case 0: return &v.state case 1: @@ -6015,7 +6292,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRunRequest); i { + switch v := v.(*IsJobNameAvailableResponse); i { case 0: return &v.state case 1: @@ -6027,7 +6304,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRunResponse); i { + switch v := v.(*GetJobRunsRequest); i { case 0: return &v.state case 1: @@ -6039,7 +6316,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobRunRequest); i { + switch v := v.(*GetJobRunsResponse); i { case 0: return &v.state case 1: @@ -6051,7 +6328,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateJobRunResponse); i { + switch v := v.(*GetJobRunRequest); i { case 0: return &v.state case 1: @@ -6063,7 +6340,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CancelJobRunRequest); i { + switch v := v.(*GetJobRunResponse); i { case 0: return &v.state case 1: @@ -6075,7 +6352,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CancelJobRunResponse); i { + switch v := v.(*CreateJobRunRequest); i { case 0: return &v.state case 1: @@ -6087,7 +6364,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Job); i { + switch v := v.(*CreateJobRunResponse); i { case 0: return &v.state case 1: @@ -6099,7 +6376,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRecentRun); i { + switch v := v.(*CancelJobRunRequest); i { case 0: return &v.state case 1: @@ -6111,7 +6388,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRecentRunsRequest); i { + switch v := v.(*CancelJobRunResponse); i { case 0: return &v.state case 1: @@ -6123,7 +6400,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRecentRunsResponse); i { + switch v := v.(*Job); i { case 0: return &v.state case 1: @@ -6135,7 +6412,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobNextRuns); i { + switch v := v.(*JobRecentRun); i { case 0: return &v.state case 1: @@ -6147,7 +6424,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobNextRunsRequest); i { + switch v := v.(*GetJobRecentRunsRequest); i { case 0: return &v.state case 1: @@ -6159,7 +6436,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobNextRunsResponse); i { + switch v := v.(*GetJobRecentRunsResponse); i { case 0: return &v.state case 1: @@ -6171,7 +6448,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobStatusRequest); i { + switch v := v.(*JobNextRuns); i { case 0: return &v.state case 1: @@ -6183,7 +6460,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobStatusResponse); i { + switch v := v.(*GetJobNextRunsRequest); i { case 0: return &v.state case 1: @@ -6195,7 +6472,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobStatusRecord); i { + switch v := v.(*GetJobNextRunsResponse); i { case 0: return &v.state case 1: @@ -6207,7 +6484,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobStatusesRequest); i { + switch v := v.(*GetJobStatusRequest); i { case 0: return &v.state case 1: @@ -6219,7 +6496,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobStatusesResponse); i { + switch v := v.(*GetJobStatusResponse); i { case 0: return &v.state case 1: @@ -6231,7 +6508,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActivityFailure); i { + switch v := v.(*JobStatusRecord); i { case 0: return &v.state case 1: @@ -6243,7 +6520,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingActivity); i { + switch v := v.(*GetJobStatusesRequest); i { case 0: return &v.state case 1: @@ -6255,7 +6532,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRun); i { + switch v := v.(*GetJobStatusesResponse); i { case 0: return &v.state case 1: @@ -6267,7 +6544,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRunEventTaskError); i { + switch v := v.(*ActivityFailure); i { case 0: return &v.state case 1: @@ -6279,7 +6556,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRunEventTask); i { + switch v := v.(*PendingActivity); i { case 0: return &v.state case 1: @@ -6291,7 +6568,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRunSyncMetadata); i { + switch v := v.(*JobRun); i { case 0: return &v.state case 1: @@ -6303,7 +6580,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRunEventMetadata); i { + switch v := v.(*JobRunEventTaskError); i { case 0: return &v.state case 1: @@ -6315,7 +6592,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobRunEvent); i { + switch v := v.(*JobRunEventTask); i { case 0: return &v.state case 1: @@ -6327,7 +6604,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRunEventsRequest); i { + switch v := v.(*JobRunSyncMetadata); i { case 0: return &v.state case 1: @@ -6339,7 +6616,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJobRunEventsResponse); i { + switch v := v.(*JobRunEventMetadata); i { case 0: return &v.state case 1: @@ -6351,7 +6628,7 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteJobRunRequest); i { + switch v := v.(*JobRunEvent); i { case 0: return &v.state case 1: @@ -6363,6 +6640,42 @@ func file_mgmt_v1alpha1_job_proto_init() { } } file_mgmt_v1alpha1_job_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJobRunEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_v1alpha1_job_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJobRunEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_v1alpha1_job_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteJobRunRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_v1alpha1_job_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteJobRunResponse); i { case 0: return &v.state @@ -6375,33 +6688,38 @@ func file_mgmt_v1alpha1_job_proto_init() { } } } - file_mgmt_v1alpha1_job_proto_msgTypes[5].OneofWrappers = []interface{}{ - (*JobSourceOptions_PostgresOptions)(nil), - (*JobSourceOptions_AwsS3Options)(nil), - (*JobSourceOptions_MysqlOptions)(nil), + file_mgmt_v1alpha1_job_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*JobSourceOptions_Postgres)(nil), + (*JobSourceOptions_AwsS3)(nil), + (*JobSourceOptions_Mysql)(nil), + (*JobSourceOptions_Generate)(nil), + } + file_mgmt_v1alpha1_job_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*GenerateSourceOptions_IgnoreForeignKeys)(nil), + (*GenerateSourceOptions_FkSourceConnectionId)(nil), } - file_mgmt_v1alpha1_job_proto_msgTypes[8].OneofWrappers = []interface{}{} file_mgmt_v1alpha1_job_proto_msgTypes[11].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[13].OneofWrappers = []interface{}{ + file_mgmt_v1alpha1_job_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[16].OneofWrappers = []interface{}{ (*JobDestinationOptions_PostgresOptions)(nil), (*JobDestinationOptions_AwsS3Options)(nil), (*JobDestinationOptions_MysqlOptions)(nil), } - file_mgmt_v1alpha1_job_proto_msgTypes[19].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[24].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[26].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[32].OneofWrappers = []interface{}{ + file_mgmt_v1alpha1_job_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[29].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[35].OneofWrappers = []interface{}{ (*JobSourceSqlSubetSchemas_PostgresSubset)(nil), (*JobSourceSqlSubetSchemas_MysqlSubset)(nil), } - file_mgmt_v1alpha1_job_proto_msgTypes[45].OneofWrappers = []interface{}{ + file_mgmt_v1alpha1_job_proto_msgTypes[48].OneofWrappers = []interface{}{ (*GetJobRunsRequest_JobId)(nil), (*GetJobRunsRequest_AccountId)(nil), } - file_mgmt_v1alpha1_job_proto_msgTypes[53].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[66].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[67].OneofWrappers = []interface{}{} - file_mgmt_v1alpha1_job_proto_msgTypes[71].OneofWrappers = []interface{}{ + file_mgmt_v1alpha1_job_proto_msgTypes[56].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[70].OneofWrappers = []interface{}{} + file_mgmt_v1alpha1_job_proto_msgTypes[74].OneofWrappers = []interface{}{ (*JobRunEventMetadata_SyncMetadata)(nil), } type x struct{} @@ -6410,7 +6728,7 @@ func file_mgmt_v1alpha1_job_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_mgmt_v1alpha1_job_proto_rawDesc, NumEnums: 3, - NumMessages: 77, + NumMessages: 80, NumExtensions: 0, NumServices: 1, }, diff --git a/backend/gen/go/protos/mgmt/v1alpha1/job.pb.validate.go b/backend/gen/go/protos/mgmt/v1alpha1/job.pb.validate.go index d00d01dd5a..3bea15cc73 100644 --- a/backend/gen/go/protos/mgmt/v1alpha1/job.pb.validate.go +++ b/backend/gen/go/protos/mgmt/v1alpha1/job.pb.validate.go @@ -293,8 +293,6 @@ func (m *JobSource) validate(all bool) error { var errors []error - // no validation rules for ConnectionId - if all { switch v := interface{}(m.GetOptions()).(type) { case interface{ ValidateAll() error }: @@ -401,6 +399,275 @@ var _ interface { ErrorName() string } = JobSourceValidationError{} +// Validate checks the field values on JobSourceOptions with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *JobSourceOptions) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on JobSourceOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// JobSourceOptionsMultiError, or nil if none found. +func (m *JobSourceOptions) ValidateAll() error { + return m.validate(true) +} + +func (m *JobSourceOptions) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + switch v := m.Config.(type) { + case *JobSourceOptions_Postgres: + if v == nil { + err := JobSourceOptionsValidationError{ + field: "Config", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetPostgres()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "Postgres", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "Postgres", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPostgres()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return JobSourceOptionsValidationError{ + field: "Postgres", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *JobSourceOptions_AwsS3: + if v == nil { + err := JobSourceOptionsValidationError{ + field: "Config", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetAwsS3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "AwsS3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "AwsS3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetAwsS3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return JobSourceOptionsValidationError{ + field: "AwsS3", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *JobSourceOptions_Mysql: + if v == nil { + err := JobSourceOptionsValidationError{ + field: "Config", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetMysql()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "Mysql", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "Mysql", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMysql()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return JobSourceOptionsValidationError{ + field: "Mysql", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *JobSourceOptions_Generate: + if v == nil { + err := JobSourceOptionsValidationError{ + field: "Config", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetGenerate()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "Generate", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, JobSourceOptionsValidationError{ + field: "Generate", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetGenerate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return JobSourceOptionsValidationError{ + field: "Generate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return JobSourceOptionsMultiError(errors) + } + + return nil +} + +// JobSourceOptionsMultiError is an error wrapping multiple validation errors +// returned by JobSourceOptions.ValidateAll() if the designated constraints +// aren't met. +type JobSourceOptionsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m JobSourceOptionsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m JobSourceOptionsMultiError) AllErrors() []error { return m } + +// JobSourceOptionsValidationError is the validation error returned by +// JobSourceOptions.Validate if the designated constraints aren't met. +type JobSourceOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e JobSourceOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e JobSourceOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e JobSourceOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e JobSourceOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e JobSourceOptionsValidationError) ErrorName() string { return "JobSourceOptionsValidationError" } + +// Error satisfies the builtin error interface +func (e JobSourceOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sJobSourceOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = JobSourceOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = JobSourceOptionsValidationError{} + // Validate checks the field values on CreateJobDestination with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -488,24 +755,322 @@ type CreateJobDestinationValidationError struct { } // Field function returns field value. -func (e CreateJobDestinationValidationError) Field() string { return e.field } +func (e CreateJobDestinationValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreateJobDestinationValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreateJobDestinationValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreateJobDestinationValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreateJobDestinationValidationError) ErrorName() string { + return "CreateJobDestinationValidationError" +} + +// Error satisfies the builtin error interface +func (e CreateJobDestinationValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCreateJobDestination.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreateJobDestinationValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreateJobDestinationValidationError{} + +// Validate checks the field values on JobDestination with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *JobDestination) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on JobDestination with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in JobDestinationMultiError, +// or nil if none found. +func (m *JobDestination) ValidateAll() error { + return m.validate(true) +} + +func (m *JobDestination) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ConnectionId + + if all { + switch v := interface{}(m.GetOptions()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, JobDestinationValidationError{ + field: "Options", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, JobDestinationValidationError{ + field: "Options", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return JobDestinationValidationError{ + field: "Options", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Id + + if len(errors) > 0 { + return JobDestinationMultiError(errors) + } + + return nil +} + +// JobDestinationMultiError is an error wrapping multiple validation errors +// returned by JobDestination.ValidateAll() if the designated constraints +// aren't met. +type JobDestinationMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m JobDestinationMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m JobDestinationMultiError) AllErrors() []error { return m } + +// JobDestinationValidationError is the validation error returned by +// JobDestination.Validate if the designated constraints aren't met. +type JobDestinationValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e JobDestinationValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e JobDestinationValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e JobDestinationValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e JobDestinationValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e JobDestinationValidationError) ErrorName() string { return "JobDestinationValidationError" } + +// Error satisfies the builtin error interface +func (e JobDestinationValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sJobDestination.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = JobDestinationValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = JobDestinationValidationError{} + +// Validate checks the field values on GenerateSourceOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GenerateSourceOptions) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GenerateSourceOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// GenerateSourceOptionsMultiError, or nil if none found. +func (m *GenerateSourceOptions) ValidateAll() error { + return m.validate(true) +} + +func (m *GenerateSourceOptions) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetSchemas() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GenerateSourceOptionsValidationError{ + field: fmt.Sprintf("Schemas[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GenerateSourceOptionsValidationError{ + field: fmt.Sprintf("Schemas[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GenerateSourceOptionsValidationError{ + field: fmt.Sprintf("Schemas[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + switch v := m.ForeignKeyConstraintConfig.(type) { + case *GenerateSourceOptions_IgnoreForeignKeys: + if v == nil { + err := GenerateSourceOptionsValidationError{ + field: "ForeignKeyConstraintConfig", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + // no validation rules for IgnoreForeignKeys + case *GenerateSourceOptions_FkSourceConnectionId: + if v == nil { + err := GenerateSourceOptionsValidationError{ + field: "ForeignKeyConstraintConfig", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + // no validation rules for FkSourceConnectionId + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return GenerateSourceOptionsMultiError(errors) + } + + return nil +} + +// GenerateSourceOptionsMultiError is an error wrapping multiple validation +// errors returned by GenerateSourceOptions.ValidateAll() if the designated +// constraints aren't met. +type GenerateSourceOptionsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GenerateSourceOptionsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GenerateSourceOptionsMultiError) AllErrors() []error { return m } + +// GenerateSourceOptionsValidationError is the validation error returned by +// GenerateSourceOptions.Validate if the designated constraints aren't met. +type GenerateSourceOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GenerateSourceOptionsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e CreateJobDestinationValidationError) Reason() string { return e.reason } +func (e GenerateSourceOptionsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e CreateJobDestinationValidationError) Cause() error { return e.cause } +func (e GenerateSourceOptionsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e CreateJobDestinationValidationError) Key() bool { return e.key } +func (e GenerateSourceOptionsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e CreateJobDestinationValidationError) ErrorName() string { - return "CreateJobDestinationValidationError" +func (e GenerateSourceOptionsValidationError) ErrorName() string { + return "GenerateSourceOptionsValidationError" } // Error satisfies the builtin error interface -func (e CreateJobDestinationValidationError) Error() string { +func (e GenerateSourceOptionsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -517,14 +1082,14 @@ func (e CreateJobDestinationValidationError) Error() string { } return fmt.Sprintf( - "invalid %sCreateJobDestination.%s: %s%s", + "invalid %sGenerateSourceOptions.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = CreateJobDestinationValidationError{} +var _ error = GenerateSourceOptionsValidationError{} var _ interface { Field() string @@ -532,77 +1097,80 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = CreateJobDestinationValidationError{} +} = GenerateSourceOptionsValidationError{} -// Validate checks the field values on JobDestination with the rules defined in -// the proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *JobDestination) Validate() error { +// Validate checks the field values on GenerateSourceSchemaOption with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GenerateSourceSchemaOption) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on JobDestination with the rules defined -// in the proto definition for this message. If any rules are violated, the -// result is a list of violation errors wrapped in JobDestinationMultiError, -// or nil if none found. -func (m *JobDestination) ValidateAll() error { +// ValidateAll checks the field values on GenerateSourceSchemaOption with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// GenerateSourceSchemaOptionMultiError, or nil if none found. +func (m *GenerateSourceSchemaOption) ValidateAll() error { return m.validate(true) } -func (m *JobDestination) validate(all bool) error { +func (m *GenerateSourceSchemaOption) validate(all bool) error { if m == nil { return nil } var errors []error - // no validation rules for ConnectionId + // no validation rules for Schema - if all { - switch v := interface{}(m.GetOptions()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, JobDestinationValidationError{ - field: "Options", - reason: "embedded message failed validation", - cause: err, - }) + for idx, item := range m.GetTables() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GenerateSourceSchemaOptionValidationError{ + field: fmt.Sprintf("Tables[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GenerateSourceSchemaOptionValidationError{ + field: fmt.Sprintf("Tables[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } } - case interface{ Validate() error }: + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - errors = append(errors, JobDestinationValidationError{ - field: "Options", + return GenerateSourceSchemaOptionValidationError{ + field: fmt.Sprintf("Tables[%v]", idx), reason: "embedded message failed validation", cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetOptions()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return JobDestinationValidationError{ - field: "Options", - reason: "embedded message failed validation", - cause: err, + } } } - } - // no validation rules for Id + } if len(errors) > 0 { - return JobDestinationMultiError(errors) + return GenerateSourceSchemaOptionMultiError(errors) } return nil } -// JobDestinationMultiError is an error wrapping multiple validation errors -// returned by JobDestination.ValidateAll() if the designated constraints -// aren't met. -type JobDestinationMultiError []error +// GenerateSourceSchemaOptionMultiError is an error wrapping multiple +// validation errors returned by GenerateSourceSchemaOption.ValidateAll() if +// the designated constraints aren't met. +type GenerateSourceSchemaOptionMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m JobDestinationMultiError) Error() string { +func (m GenerateSourceSchemaOptionMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -611,11 +1179,11 @@ func (m JobDestinationMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m JobDestinationMultiError) AllErrors() []error { return m } +func (m GenerateSourceSchemaOptionMultiError) AllErrors() []error { return m } -// JobDestinationValidationError is the validation error returned by -// JobDestination.Validate if the designated constraints aren't met. -type JobDestinationValidationError struct { +// GenerateSourceSchemaOptionValidationError is the validation error returned +// by GenerateSourceSchemaOption.Validate if the designated constraints aren't met. +type GenerateSourceSchemaOptionValidationError struct { field string reason string cause error @@ -623,22 +1191,24 @@ type JobDestinationValidationError struct { } // Field function returns field value. -func (e JobDestinationValidationError) Field() string { return e.field } +func (e GenerateSourceSchemaOptionValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e JobDestinationValidationError) Reason() string { return e.reason } +func (e GenerateSourceSchemaOptionValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e JobDestinationValidationError) Cause() error { return e.cause } +func (e GenerateSourceSchemaOptionValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e JobDestinationValidationError) Key() bool { return e.key } +func (e GenerateSourceSchemaOptionValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e JobDestinationValidationError) ErrorName() string { return "JobDestinationValidationError" } +func (e GenerateSourceSchemaOptionValidationError) ErrorName() string { + return "GenerateSourceSchemaOptionValidationError" +} // Error satisfies the builtin error interface -func (e JobDestinationValidationError) Error() string { +func (e GenerateSourceSchemaOptionValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -650,14 +1220,14 @@ func (e JobDestinationValidationError) Error() string { } return fmt.Sprintf( - "invalid %sJobDestination.%s: %s%s", + "invalid %sGenerateSourceSchemaOption.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = JobDestinationValidationError{} +var _ error = GenerateSourceSchemaOptionValidationError{} var _ interface { Field() string @@ -665,172 +1235,48 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = JobDestinationValidationError{} +} = GenerateSourceSchemaOptionValidationError{} -// Validate checks the field values on JobSourceOptions with the rules defined -// in the proto definition for this message. If any rules are violated, the -// first error encountered is returned, or nil if there are no violations. -func (m *JobSourceOptions) Validate() error { +// Validate checks the field values on GenerateSourceTableOption with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GenerateSourceTableOption) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on JobSourceOptions with the rules -// defined in the proto definition for this message. If any rules are +// ValidateAll checks the field values on GenerateSourceTableOption with the +// rules defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// JobSourceOptionsMultiError, or nil if none found. -func (m *JobSourceOptions) ValidateAll() error { +// GenerateSourceTableOptionMultiError, or nil if none found. +func (m *GenerateSourceTableOption) ValidateAll() error { return m.validate(true) } -func (m *JobSourceOptions) validate(all bool) error { +func (m *GenerateSourceTableOption) validate(all bool) error { if m == nil { return nil } var errors []error - switch v := m.Config.(type) { - case *JobSourceOptions_PostgresOptions: - if v == nil { - err := JobSourceOptionsValidationError{ - field: "Config", - reason: "oneof value cannot be a typed-nil", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetPostgresOptions()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, JobSourceOptionsValidationError{ - field: "PostgresOptions", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, JobSourceOptionsValidationError{ - field: "PostgresOptions", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetPostgresOptions()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return JobSourceOptionsValidationError{ - field: "PostgresOptions", - reason: "embedded message failed validation", - cause: err, - } - } - } - - case *JobSourceOptions_AwsS3Options: - if v == nil { - err := JobSourceOptionsValidationError{ - field: "Config", - reason: "oneof value cannot be a typed-nil", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetAwsS3Options()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, JobSourceOptionsValidationError{ - field: "AwsS3Options", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, JobSourceOptionsValidationError{ - field: "AwsS3Options", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetAwsS3Options()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return JobSourceOptionsValidationError{ - field: "AwsS3Options", - reason: "embedded message failed validation", - cause: err, - } - } - } - - case *JobSourceOptions_MysqlOptions: - if v == nil { - err := JobSourceOptionsValidationError{ - field: "Config", - reason: "oneof value cannot be a typed-nil", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetMysqlOptions()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, JobSourceOptionsValidationError{ - field: "MysqlOptions", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, JobSourceOptionsValidationError{ - field: "MysqlOptions", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetMysqlOptions()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return JobSourceOptionsValidationError{ - field: "MysqlOptions", - reason: "embedded message failed validation", - cause: err, - } - } - } + // no validation rules for Table - default: - _ = v // ensures v is used - } + // no validation rules for RowCount if len(errors) > 0 { - return JobSourceOptionsMultiError(errors) + return GenerateSourceTableOptionMultiError(errors) } return nil } -// JobSourceOptionsMultiError is an error wrapping multiple validation errors -// returned by JobSourceOptions.ValidateAll() if the designated constraints -// aren't met. -type JobSourceOptionsMultiError []error +// GenerateSourceTableOptionMultiError is an error wrapping multiple validation +// errors returned by GenerateSourceTableOption.ValidateAll() if the +// designated constraints aren't met. +type GenerateSourceTableOptionMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m JobSourceOptionsMultiError) Error() string { +func (m GenerateSourceTableOptionMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -839,11 +1285,11 @@ func (m JobSourceOptionsMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m JobSourceOptionsMultiError) AllErrors() []error { return m } +func (m GenerateSourceTableOptionMultiError) AllErrors() []error { return m } -// JobSourceOptionsValidationError is the validation error returned by -// JobSourceOptions.Validate if the designated constraints aren't met. -type JobSourceOptionsValidationError struct { +// GenerateSourceTableOptionValidationError is the validation error returned by +// GenerateSourceTableOption.Validate if the designated constraints aren't met. +type GenerateSourceTableOptionValidationError struct { field string reason string cause error @@ -851,22 +1297,24 @@ type JobSourceOptionsValidationError struct { } // Field function returns field value. -func (e JobSourceOptionsValidationError) Field() string { return e.field } +func (e GenerateSourceTableOptionValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e JobSourceOptionsValidationError) Reason() string { return e.reason } +func (e GenerateSourceTableOptionValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e JobSourceOptionsValidationError) Cause() error { return e.cause } +func (e GenerateSourceTableOptionValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e JobSourceOptionsValidationError) Key() bool { return e.key } +func (e GenerateSourceTableOptionValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e JobSourceOptionsValidationError) ErrorName() string { return "JobSourceOptionsValidationError" } +func (e GenerateSourceTableOptionValidationError) ErrorName() string { + return "GenerateSourceTableOptionValidationError" +} // Error satisfies the builtin error interface -func (e JobSourceOptionsValidationError) Error() string { +func (e GenerateSourceTableOptionValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -878,14 +1326,14 @@ func (e JobSourceOptionsValidationError) Error() string { } return fmt.Sprintf( - "invalid %sJobSourceOptions.%s: %s%s", + "invalid %sGenerateSourceTableOption.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = JobSourceOptionsValidationError{} +var _ error = GenerateSourceTableOptionValidationError{} var _ interface { Field() string @@ -893,7 +1341,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = JobSourceOptionsValidationError{} +} = GenerateSourceTableOptionValidationError{} // Validate checks the field values on PostgresSourceConnectionOptions with the // rules defined in the proto definition for this message. If any rules are @@ -953,6 +1401,8 @@ func (m *PostgresSourceConnectionOptions) validate(all bool) error { } + // no validation rules for ConnectionId + if len(errors) > 0 { return PostgresSourceConnectionOptionsMultiError(errors) } @@ -1338,6 +1788,8 @@ func (m *MysqlSourceConnectionOptions) validate(all bool) error { } + // no validation rules for ConnectionId + if len(errors) > 0 { return MysqlSourceConnectionOptionsMultiError(errors) } @@ -1687,6 +2139,8 @@ func (m *AwsS3SourceConnectionOptions) validate(all bool) error { var errors []error + // no validation rules for ConnectionId + if len(errors) > 0 { return AwsS3SourceConnectionOptionsMultiError(errors) } diff --git a/backend/internal/dtomaps/jobs.go b/backend/internal/dtomaps/jobs.go index 58daf13f38..b2ce6e8d8c 100644 --- a/backend/internal/dtomaps/jobs.go +++ b/backend/internal/dtomaps/jobs.go @@ -33,8 +33,7 @@ func ToJobDto( CronSchedule: nucleusdb.ToNullableString(inputJob.CronSchedule), Mappings: mappings, Source: &mgmtv1alpha1.JobSource{ - ConnectionId: nucleusdb.UUIDString(inputJob.ConnectionSourceID), - Options: inputJob.ConnectionOptions.ToDto(), + Options: inputJob.ConnectionOptions.ToDto(), }, Destinations: destinations, AccountId: nucleusdb.UUIDString(inputJob.AccountID), diff --git a/backend/internal/nucleusdb/jobs.go b/backend/internal/nucleusdb/jobs.go index 9b1e1a9445..65780e1de8 100644 --- a/backend/internal/nucleusdb/jobs.go +++ b/backend/internal/nucleusdb/jobs.go @@ -75,9 +75,8 @@ func (d *NucleusDb) SetSqlSourceSubsets( } _, err = d.Q.UpdateJobSource(ctx, dbtx, db_queries.UpdateJobSourceParams{ - ID: jobId, - ConnectionSourceID: dbjob.ConnectionSourceID, - ConnectionOptions: dbjob.ConnectionOptions, + ID: jobId, + ConnectionOptions: dbjob.ConnectionOptions, UpdatedByID: userUuid, }) diff --git a/backend/internal/nucleusdb/jobs_test.go b/backend/internal/nucleusdb/jobs_test.go index 90905c08d9..6237d130bc 100644 --- a/backend/internal/nucleusdb/jobs_test.go +++ b/backend/internal/nucleusdb/jobs_test.go @@ -110,12 +110,17 @@ func Test_SetSqlSourceSubsets(t *testing.T) { service := New(dbtxMock, querierMock) dbtxMock.On("Begin", ctx).Return(mockTx, nil) - querierMock.On("GetJobById", ctx, mockTx, jobUuid).Return(db_queries.NeosyncApiJob{ID: jobUuid, ConnectionSourceID: connUuid, ConnectionOptions: &pg_models.JobSourceOptions{}}, nil) + querierMock.On("GetJobById", ctx, mockTx, jobUuid). + Return(db_queries.NeosyncApiJob{ID: jobUuid, ConnectionOptions: &pg_models.JobSourceOptions{ + PostgresOptions: &pg_models.PostgresSourceOptions{ + ConnectionId: UUIDString(connUuid), + }, + }}, nil) querierMock.On("UpdateJobSource", ctx, mockTx, db_queries.UpdateJobSourceParams{ - ID: jobUuid, - ConnectionSourceID: connUuid, + ID: jobUuid, ConnectionOptions: &pg_models.JobSourceOptions{ PostgresOptions: &pg_models.PostgresSourceOptions{ + ConnectionId: UUIDString(connUuid), Schemas: []*pg_models.PostgresSourceSchemaOption{ {Schema: "schema", Tables: []*pg_models.PostgresSourceTableOption{{Table: "table-1", WhereClause: &whereClause}}}, }, diff --git a/backend/protos/mgmt/v1alpha1/job.proto b/backend/protos/mgmt/v1alpha1/job.proto index 29826adae8..83864faa11 100644 --- a/backend/protos/mgmt/v1alpha1/job.proto +++ b/backend/protos/mgmt/v1alpha1/job.proto @@ -14,8 +14,17 @@ message GetJobsResponse { } message JobSource { - string connection_id = 1; - JobSourceOptions options = 2; + JobSourceOptions options = 1 [(buf.validate.field).required = true]; +} + +message JobSourceOptions { + oneof config { + option (buf.validate.oneof).required = true; + PostgresSourceConnectionOptions postgres = 1; + AwsS3SourceConnectionOptions aws_s3 = 2; + MysqlSourceConnectionOptions mysql = 3; + GenerateSourceOptions generate = 4; + } } message CreateJobDestination { @@ -29,18 +38,26 @@ message JobDestination { string id = 3; } -message JobSourceOptions { - oneof config { - option (buf.validate.oneof).required = true; - PostgresSourceConnectionOptions postgres_options = 1; - AwsS3SourceConnectionOptions aws_s3_options = 2; - MysqlSourceConnectionOptions mysql_options = 3; +message GenerateSourceOptions { + repeated GenerateSourceSchemaOption schemas = 1 [(buf.validate.field).repeated.min_items = 1]; + oneof foreign_key_constraint_config { + bool ignore_foreign_keys = 2; + string fk_source_connection_id = 3 [(buf.validate.field).string.uuid = true]; } } +message GenerateSourceSchemaOption { + string schema = 1 [(buf.validate.field).string.min_len = 1]; + repeated GenerateSourceTableOption tables = 2 [(buf.validate.field).repeated.min_items = 1]; +} +message GenerateSourceTableOption { + string table = 1 [(buf.validate.field).string.min_len = 1]; + int64 row_count = 2 [(buf.validate.field).int64.gte = 1]; +} message PostgresSourceConnectionOptions { bool halt_on_new_column_addition = 1; repeated PostgresSourceSchemaOption schemas = 2; + string connection_id = 3 [(buf.validate.field).string.uuid = true]; } message PostgresSourceSchemaOption { @@ -55,6 +72,7 @@ message PostgresSourceTableOption { message MysqlSourceConnectionOptions { bool halt_on_new_column_addition = 1; repeated MysqlSourceSchemaOption schemas = 2; + string connection_id = 3 [(buf.validate.field).string.uuid = true]; } message MysqlSourceSchemaOption { @@ -66,7 +84,9 @@ message MysqlSourceTableOption { optional string where_clause = 2; } -message AwsS3SourceConnectionOptions {} +message AwsS3SourceConnectionOptions { + string connection_id = 1 [(buf.validate.field).string.uuid = true]; +} message JobDestinationOptions { oneof config { diff --git a/backend/services/mgmt/v1alpha1/job-service/jobs.go b/backend/services/mgmt/v1alpha1/job-service/jobs.go index 1ff8cfd62d..9836dbc0ab 100644 --- a/backend/services/mgmt/v1alpha1/job-service/jobs.go +++ b/backend/services/mgmt/v1alpha1/job-service/jobs.go @@ -339,7 +339,7 @@ func (s *Service) CreateJob( return nil, err } - connectionIds := []string{req.Msg.Source.ConnectionId} + connectionIds := []string{} destinations := []*Destination{} for _, dest := range req.Msg.Destinations { destUuid, err := nucleusdb.ToUuid(dest.ConnectionId) @@ -355,21 +355,51 @@ func (s *Service) CreateJob( connectionIds = append(connectionIds, dest.ConnectionId) } + // we leave out generation fk source connection id as it might be set to a destination id + switch config := req.Msg.Source.Options.Config.(type) { + case *mgmtv1alpha1.JobSourceOptions_Mysql: + connectionIds = append(connectionIds, config.Mysql.ConnectionId) + case *mgmtv1alpha1.JobSourceOptions_Postgres: + connectionIds = append(connectionIds, config.Postgres.ConnectionId) + case *mgmtv1alpha1.JobSourceOptions_AwsS3: + connectionIds = append(connectionIds, config.AwsS3.ConnectionId) + } + if !verifyConnectionIdsUnique(connectionIds) { return nil, nucleuserrors.NewBadRequest("connections ids are not unique") } - sourceUuid, err := nucleusdb.ToUuid(req.Msg.Source.ConnectionId) - if err != nil { - return nil, err - } - areConnectionsCompatible, err := verifyConnectionsAreCompatible(ctx, s.db, sourceUuid, destinations) - if err != nil { - logger.Error(fmt.Errorf("unable to verify if connections are compatible: %w", err).Error()) - return nil, err + var connectionIdToVerify *string + switch config := req.Msg.Source.Options.Config.(type) { + case *mgmtv1alpha1.JobSourceOptions_Mysql: + connectionIdToVerify = &config.Mysql.ConnectionId + case *mgmtv1alpha1.JobSourceOptions_Postgres: + connectionIdToVerify = &config.Postgres.ConnectionId + case *mgmtv1alpha1.JobSourceOptions_AwsS3: + connectionIdToVerify = &config.AwsS3.ConnectionId + case *mgmtv1alpha1.JobSourceOptions_Generate: + fkConnId := config.Generate.GetFkSourceConnectionId() + if fkConnId != "" { + connectionIdToVerify = &fkConnId + } } - if !areConnectionsCompatible { - return nil, nucleuserrors.NewBadRequest("connection types are incompatible") + if connectionIdToVerify != nil { + if err := s.verifyConnectionInAccount(ctx, *connectionIdToVerify, req.Msg.AccountId); err != nil { + return nil, err + } + + sourceUuid, err := nucleusdb.ToUuid(*connectionIdToVerify) + if err != nil { + return nil, err + } + areConnectionsCompatible, err := verifyConnectionsAreCompatible(ctx, s.db, sourceUuid, destinations) + if err != nil { + logger.Error(fmt.Errorf("unable to verify if connections are compatible: %w", err).Error()) + return nil, err + } + if !areConnectionsCompatible { + return nil, nucleuserrors.NewBadRequest("connection types are incompatible") + } } cron := pgtype.Text{} @@ -379,10 +409,6 @@ func (s *Service) CreateJob( return nil, err } } - connectionSourceUuid, err := nucleusdb.ToUuid(req.Msg.Source.ConnectionId) - if err != nil { - return nil, err - } mappings := []*pg_models.JobMapping{} for _, mapping := range req.Msg.Mappings { @@ -417,15 +443,14 @@ func (s *Service) CreateJob( } cj, err := s.db.CreateJob(ctx, &db_queries.CreateJobParams{ - Name: req.Msg.JobName, - AccountID: *accountUuid, - Status: int16(mgmtv1alpha1.JobStatus_JOB_STATUS_ENABLED), - CronSchedule: cron, - ConnectionSourceID: connectionSourceUuid, - ConnectionOptions: connectionOptions, - Mappings: mappings, - CreatedByID: *userUuid, - UpdatedByID: *userUuid, + Name: req.Msg.JobName, + AccountID: *accountUuid, + Status: int16(mgmtv1alpha1.JobStatus_JOB_STATUS_ENABLED), + CronSchedule: cron, + ConnectionOptions: connectionOptions, + Mappings: mappings, + CreatedByID: *userUuid, + UpdatedByID: *userUuid, }, connDestParams) if err != nil { return nil, err @@ -819,13 +844,25 @@ func (s *Service) UpdateJobSourceConnection( return nil, err } - connectionUuid, err := nucleusdb.ToUuid(req.Msg.Source.ConnectionId) - if err != nil { - return nil, err + var connectionIdToVerify *string + switch config := req.Msg.Source.Options.Config.(type) { + case *mgmtv1alpha1.JobSourceOptions_Mysql: + connectionIdToVerify = &config.Mysql.ConnectionId + case *mgmtv1alpha1.JobSourceOptions_Postgres: + connectionIdToVerify = &config.Postgres.ConnectionId + case *mgmtv1alpha1.JobSourceOptions_AwsS3: + connectionIdToVerify = &config.AwsS3.ConnectionId + case *mgmtv1alpha1.JobSourceOptions_Generate: + fkConnId := config.Generate.GetFkSourceConnectionId() + if fkConnId != "" { + connectionIdToVerify = &fkConnId + } } - if err := s.verifyConnectionInAccount(ctx, req.Msg.Source.ConnectionId, nucleusdb.UUIDString(job.AccountID)); err != nil { - return nil, err + if connectionIdToVerify != nil { + if err := s.verifyConnectionInAccount(ctx, *connectionIdToVerify, nucleusdb.UUIDString(job.AccountID)); err != nil { + return nil, err + } } connectionOptions := &pg_models.JobSourceOptions{} @@ -846,9 +883,8 @@ func (s *Service) UpdateJobSourceConnection( if err := s.db.WithTx(ctx, nil, func(dbtx nucleusdb.BaseDBTX) error { _, err = s.db.Q.UpdateJobSource(ctx, dbtx, db_queries.UpdateJobSourceParams{ - ID: job.ID, - ConnectionSourceID: connectionUuid, - ConnectionOptions: connectionOptions, + ID: job.ID, + ConnectionOptions: connectionOptions, UpdatedByID: *userUuid, }) diff --git a/backend/services/mgmt/v1alpha1/job-service/jobs_test.go b/backend/services/mgmt/v1alpha1/job-service/jobs_test.go index 2ae9fe0dc7..fadac78eb2 100644 --- a/backend/services/mgmt/v1alpha1/job-service/jobs_test.go +++ b/backend/services/mgmt/v1alpha1/job-service/jobs_test.go @@ -324,6 +324,10 @@ func Test_CreateJob(t *testing.T) { m.DbtxMock.On("Begin", mock.Anything).Return(mockTx, nil) mockTx.On("Commit", mock.Anything).Return(nil) mockTx.On("Rollback", mock.Anything).Return(nil) + m.QuerierMock.On("IsConnectionInAccount", mock.Anything, mock.Anything, db_queries.IsConnectionInAccountParams{ + AccountId: accountUuid, + ConnectionId: srcConn.ID, + }).Return(int64(1), nil) m.QuerierMock.On("GetConnectionById", mock.Anything, mock.Anything, srcConn.ID).Return(srcConn, nil) m.QuerierMock.On("GetConnectionById", mock.Anything, mock.Anything, destConn.ID).Return(destConn, nil) m.QuerierMock.On("GetTemporalConfigByAccount", mock.Anything, mock.Anything, accountUuid).Return(&pg_models.TemporalConfig{Namespace: "namespace"}, nil) @@ -336,13 +340,13 @@ func Test_CreateJob(t *testing.T) { mockHandle.On("GetID").Return(nucleusdb.UUIDString(job1.ID)) m.QuerierMock.On("CreateJob", mock.Anything, mockTx, db_queries.CreateJobParams{ - Name: job1.Name, - AccountID: accountUuid, - Status: int16(mgmtv1alpha1.JobStatus_JOB_STATUS_ENABLED), - CronSchedule: cron, - ConnectionSourceID: srcConn.ID, + Name: job1.Name, + AccountID: accountUuid, + Status: int16(mgmtv1alpha1.JobStatus_JOB_STATUS_ENABLED), + CronSchedule: cron, ConnectionOptions: &pg_models.JobSourceOptions{ PostgresOptions: &pg_models.PostgresSourceOptions{ + ConnectionId: nucleusdb.UUIDString(srcConn.ID), HaltOnNewColumnAddition: true, Schemas: []*pg_models.PostgresSourceSchemaOption{ {Schema: "schema-1", Tables: []*pg_models.PostgresSourceTableOption{ @@ -377,10 +381,10 @@ func Test_CreateJob(t *testing.T) { CronSchedule: &cronSchedule, InitiateJobRun: true, Source: &mgmtv1alpha1.JobSource{ - ConnectionId: nucleusdb.UUIDString(srcConn.ID), Options: &mgmtv1alpha1.JobSourceOptions{ - Config: &mgmtv1alpha1.JobSourceOptions_PostgresOptions{ - PostgresOptions: &mgmtv1alpha1.PostgresSourceConnectionOptions{ + Config: &mgmtv1alpha1.JobSourceOptions_Postgres{ + Postgres: &mgmtv1alpha1.PostgresSourceConnectionOptions{ + ConnectionId: nucleusdb.UUIDString(srcConn.ID), HaltOnNewColumnAddition: true, Schemas: []*mgmtv1alpha1.PostgresSourceSchemaOption{ {Schema: "schema-1", Tables: []*mgmtv1alpha1.PostgresSourceTableOption{ @@ -635,10 +639,10 @@ func Test_UpdateJobSourceConnection_Success(t *testing.T) { mockTx.On("Rollback", mock.Anything).Return(nil) m.QuerierMock.On("GetJobById", mock.Anything, mock.Anything, job.ID).Return(job, nil) m.QuerierMock.On("UpdateJobSource", mock.Anything, mockTx, db_queries.UpdateJobSourceParams{ - ID: job.ID, - ConnectionSourceID: conn.ID, + ID: job.ID, ConnectionOptions: &pg_models.JobSourceOptions{ PostgresOptions: &pg_models.PostgresSourceOptions{ + ConnectionId: nucleusdb.UUIDString(conn.ID), HaltOnNewColumnAddition: true, Schemas: []*pg_models.PostgresSourceSchemaOption{ {Schema: "schema-1", Tables: []*pg_models.PostgresSourceTableOption{ @@ -669,10 +673,10 @@ func Test_UpdateJobSourceConnection_Success(t *testing.T) { Msg: &mgmtv1alpha1.UpdateJobSourceConnectionRequest{ Id: nucleusdb.UUIDString(job.ID), Source: &mgmtv1alpha1.JobSource{ - ConnectionId: nucleusdb.UUIDString(conn.ID), Options: &mgmtv1alpha1.JobSourceOptions{ - Config: &mgmtv1alpha1.JobSourceOptions_PostgresOptions{ - PostgresOptions: &mgmtv1alpha1.PostgresSourceConnectionOptions{ + Config: &mgmtv1alpha1.JobSourceOptions_Postgres{ + Postgres: &mgmtv1alpha1.PostgresSourceConnectionOptions{ + ConnectionId: nucleusdb.UUIDString(conn.ID), HaltOnNewColumnAddition: true, Schemas: []*mgmtv1alpha1.PostgresSourceSchemaOption{ {Schema: "schema-1", Tables: []*mgmtv1alpha1.PostgresSourceTableOption{ diff --git a/backend/sql/postgresql/models/models.go b/backend/sql/postgresql/models/models.go index 5f470c9133..d6ec3ced04 100644 --- a/backend/sql/postgresql/models/models.go +++ b/backend/sql/postgresql/models/models.go @@ -255,15 +255,18 @@ type JobSourceOptions struct { type MysqlSourceOptions struct { HaltOnNewColumnAddition bool `json:"haltOnNewColumnAddition"` Schemas []*MysqlSourceSchemaOption `json:"schemas"` + ConnectionId string `json:"connectionId"` } type PostgresSourceOptions struct { HaltOnNewColumnAddition bool `json:"haltOnNewColumnAddition"` Schemas []*PostgresSourceSchemaOption `json:"schemas"` + ConnectionId string `json:"connectionId"` } func (s *PostgresSourceOptions) ToDto() *mgmtv1alpha1.PostgresSourceConnectionOptions { dto := &mgmtv1alpha1.PostgresSourceConnectionOptions{ HaltOnNewColumnAddition: s.HaltOnNewColumnAddition, + ConnectionId: s.ConnectionId, } dto.Schemas = make([]*mgmtv1alpha1.PostgresSourceSchemaOption, len(s.Schemas)) for idx := range s.Schemas { @@ -287,6 +290,7 @@ func (s *PostgresSourceOptions) ToDto() *mgmtv1alpha1.PostgresSourceConnectionOp func (s *PostgresSourceOptions) FromDto(dto *mgmtv1alpha1.PostgresSourceConnectionOptions) { s.HaltOnNewColumnAddition = dto.HaltOnNewColumnAddition s.Schemas = FromDtoPostgresSourceSchemaOptions(dto.Schemas) + s.ConnectionId = dto.ConnectionId } func FromDtoPostgresSourceSchemaOptions(dtos []*mgmtv1alpha1.PostgresSourceSchemaOption) []*PostgresSourceSchemaOption { @@ -313,6 +317,7 @@ func FromDtoPostgresSourceSchemaOptions(dtos []*mgmtv1alpha1.PostgresSourceSchem func (s *MysqlSourceOptions) ToDto() *mgmtv1alpha1.MysqlSourceConnectionOptions { dto := &mgmtv1alpha1.MysqlSourceConnectionOptions{ HaltOnNewColumnAddition: s.HaltOnNewColumnAddition, + ConnectionId: s.ConnectionId, } dto.Schemas = make([]*mgmtv1alpha1.MysqlSourceSchemaOption, len(s.Schemas)) for idx := range s.Schemas { @@ -336,6 +341,7 @@ func (s *MysqlSourceOptions) ToDto() *mgmtv1alpha1.MysqlSourceConnectionOptions func (s *MysqlSourceOptions) FromDto(dto *mgmtv1alpha1.MysqlSourceConnectionOptions) { s.HaltOnNewColumnAddition = dto.HaltOnNewColumnAddition s.Schemas = FromDtoMysqlSourceSchemaOptions(dto.Schemas) + s.ConnectionId = dto.ConnectionId } func FromDtoMysqlSourceSchemaOptions(dtos []*mgmtv1alpha1.MysqlSourceSchemaOption) []*MysqlSourceSchemaOption { @@ -380,15 +386,15 @@ type MysqlSourceTableOption struct { func (j *JobSourceOptions) ToDto() *mgmtv1alpha1.JobSourceOptions { if j.PostgresOptions != nil { return &mgmtv1alpha1.JobSourceOptions{ - Config: &mgmtv1alpha1.JobSourceOptions_PostgresOptions{ - PostgresOptions: j.PostgresOptions.ToDto(), + Config: &mgmtv1alpha1.JobSourceOptions_Postgres{ + Postgres: j.PostgresOptions.ToDto(), }, } } if j.MysqlOptions != nil { return &mgmtv1alpha1.JobSourceOptions{ - Config: &mgmtv1alpha1.JobSourceOptions_MysqlOptions{ - MysqlOptions: j.MysqlOptions.ToDto(), + Config: &mgmtv1alpha1.JobSourceOptions_Mysql{ + Mysql: j.MysqlOptions.ToDto(), }, } } @@ -397,13 +403,13 @@ func (j *JobSourceOptions) ToDto() *mgmtv1alpha1.JobSourceOptions { func (j *JobSourceOptions) FromDto(dto *mgmtv1alpha1.JobSourceOptions) error { switch config := dto.Config.(type) { - case *mgmtv1alpha1.JobSourceOptions_PostgresOptions: + case *mgmtv1alpha1.JobSourceOptions_Postgres: sqlOpts := &PostgresSourceOptions{} - sqlOpts.FromDto(config.PostgresOptions) + sqlOpts.FromDto(config.Postgres) j.PostgresOptions = sqlOpts - case *mgmtv1alpha1.JobSourceOptions_MysqlOptions: + case *mgmtv1alpha1.JobSourceOptions_Mysql: sqlOpts := &MysqlSourceOptions{} - sqlOpts.FromDto(config.MysqlOptions) + sqlOpts.FromDto(config.Mysql) j.MysqlOptions = sqlOpts default: return fmt.Errorf("invalid config") diff --git a/backend/sql/postgresql/queries/jobs.sql b/backend/sql/postgresql/queries/jobs.sql index ff4161a782..c417dd76b2 100644 --- a/backend/sql/postgresql/queries/jobs.sql +++ b/backend/sql/postgresql/queries/jobs.sql @@ -17,10 +17,10 @@ DELETE FROM neosync_api.jobs WHERE id = $1; -- name: CreateJob :one INSERT INTO neosync_api.jobs ( - name, account_id, status, connection_source_id, connection_options, mappings, + name, account_id, status, connection_options, mappings, cron_schedule, created_by_id, updated_by_id ) VALUES ( - $1, $2, $3, $4, $5, $6, $7, $8, $9 + $1, $2, $3, $4, $5, $6, $7, $8 ) RETURNING *; @@ -43,10 +43,9 @@ RETURNING *; -- name: UpdateJobSource :one UPDATE neosync_api.jobs -SET connection_source_id = $1, -connection_options = $2, -updated_by_id = $3 -WHERE id = $4 +SET connection_options = $1, +updated_by_id = $2 +WHERE id = $3 RETURNING *; -- name: IsJobNameAvailable :one diff --git a/backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.down.sql b/backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.down.sql new file mode 100644 index 0000000000..52b93dab18 --- /dev/null +++ b/backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.down.sql @@ -0,0 +1,3 @@ +-- this will only work if there are not-null source connection ids +ALTER TABLE neosync_api.jobs +ALTER COLUMN connection_source_id SET NOT NULL; diff --git a/backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.up.sql b/backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.up.sql new file mode 100644 index 0000000000..16c0234ad9 --- /dev/null +++ b/backend/sql/postgresql/schema/20231121231248_jobs-connection-id-null.up.sql @@ -0,0 +1,2 @@ +ALTER TABLE neosync_api.jobs +ALTER COLUMN connection_source_id DROP NOT NULL; diff --git a/frontend/app/jobs/[id]/destinations/page.tsx b/frontend/app/jobs/[id]/destinations/page.tsx index 6b70f95ca7..88f74efc83 100644 --- a/frontend/app/jobs/[id]/destinations/page.tsx +++ b/frontend/app/jobs/[id]/destinations/page.tsx @@ -10,6 +10,7 @@ import { useGetJob } from '@/libs/hooks/useGetJob'; import { PlusIcon } from '@radix-ui/react-icons'; import NextLink from 'next/link'; import { ReactElement } from 'react'; +import { getConnectionIdFromSource } from '../source/components/SourceConnectionCard'; import DestinationConnectionCard from './components/DestinationConnectionCard'; export default function Page({ params }: PageProps): ReactElement { @@ -20,7 +21,10 @@ export default function Page({ params }: PageProps): ReactElement { useGetConnections(account?.id ?? ''); const connections = connectionsData?.connections ?? []; - const destinationIds = data?.job?.destinations.map((d) => d.connectionId); + const destinationIds = new Set( + data?.job?.destinations.map((d) => d.connectionId) + ); + const sourceConnectionId = getConnectionIdFromSource(data?.job?.source); return (