diff --git a/badge/lib/internal_api/include/google/protobuf/timestamp.pb.ex b/badge/lib/internal_api/include/google/protobuf/timestamp.pb.ex index ee7e4c0a5..8720315dd 100644 --- a/badge/lib/internal_api/include/google/protobuf/timestamp.pb.ex +++ b/badge/lib/internal_api/include/google/protobuf/timestamp.pb.ex @@ -6,6 +6,7 @@ defmodule Google.Protobuf.Timestamp do seconds: integer, nanos: integer } + defstruct [:seconds, :nanos] field(:seconds, 1, type: :int64) diff --git a/badge/lib/internal_api/include/google/rpc/code.pb.ex b/badge/lib/internal_api/include/google/rpc/code.pb.ex index 227b27a8e..3ef0b01dc 100644 --- a/badge/lib/internal_api/include/google/rpc/code.pb.ex +++ b/badge/lib/internal_api/include/google/rpc/code.pb.ex @@ -2,21 +2,57 @@ defmodule Google.Rpc.Code do @moduledoc false use Protobuf, enum: true, syntax: :proto3 + @type t :: + integer + | :OK + | :CANCELLED + | :UNKNOWN + | :INVALID_ARGUMENT + | :DEADLINE_EXCEEDED + | :NOT_FOUND + | :ALREADY_EXISTS + | :PERMISSION_DENIED + | :UNAUTHENTICATED + | :RESOURCE_EXHAUSTED + | :FAILED_PRECONDITION + | :ABORTED + | :OUT_OF_RANGE + | :UNIMPLEMENTED + | :INTERNAL + | :UNAVAILABLE + | :DATA_LOSS + field(:OK, 0) + field(:CANCELLED, 1) + field(:UNKNOWN, 2) + field(:INVALID_ARGUMENT, 3) + field(:DEADLINE_EXCEEDED, 4) + field(:NOT_FOUND, 5) + field(:ALREADY_EXISTS, 6) + field(:PERMISSION_DENIED, 7) + field(:UNAUTHENTICATED, 16) + field(:RESOURCE_EXHAUSTED, 8) + field(:FAILED_PRECONDITION, 9) + field(:ABORTED, 10) + field(:OUT_OF_RANGE, 11) + field(:UNIMPLEMENTED, 12) + field(:INTERNAL, 13) + field(:UNAVAILABLE, 14) + field(:DATA_LOSS, 15) end diff --git a/badge/lib/internal_api/include/google/rpc/status.pb.ex b/badge/lib/internal_api/include/google/rpc/status.pb.ex index 24523dc63..7b912ac57 100644 --- a/badge/lib/internal_api/include/google/rpc/status.pb.ex +++ b/badge/lib/internal_api/include/google/rpc/status.pb.ex @@ -7,6 +7,7 @@ defmodule Google.Rpc.Status do message: String.t(), details: [Google.Protobuf.Any.t()] } + defstruct [:code, :message, :details] field(:code, 1, type: :int32) diff --git a/badge/lib/internal_api/include/internal_api/response_status.pb.ex b/badge/lib/internal_api/include/internal_api/response_status.pb.ex index ac10ea64e..1ccd37ee5 100644 --- a/badge/lib/internal_api/include/internal_api/response_status.pb.ex +++ b/badge/lib/internal_api/include/internal_api/response_status.pb.ex @@ -1,21 +1,24 @@ +defmodule InternalApi.ResponseStatus.Code do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :OK | :BAD_PARAM + + field(:OK, 0) + + field(:BAD_PARAM, 1) +end + defmodule InternalApi.ResponseStatus do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - code: integer, + code: InternalApi.ResponseStatus.Code.t(), message: String.t() } + defstruct [:code, :message] field(:code, 1, type: InternalApi.ResponseStatus.Code, enum: true) field(:message, 2, type: :string) end - -defmodule InternalApi.ResponseStatus.Code do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:OK, 0) - field(:BAD_PARAM, 1) -end diff --git a/badge/lib/internal_api/include/internal_api/status.pb.ex b/badge/lib/internal_api/include/internal_api/status.pb.ex index 2897c7cd1..3434f7690 100644 --- a/badge/lib/internal_api/include/internal_api/status.pb.ex +++ b/badge/lib/internal_api/include/internal_api/status.pb.ex @@ -3,9 +3,10 @@ defmodule InternalApi.Status do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - code: integer, + code: Google.Rpc.Code.t(), message: String.t() } + defstruct [:code, :message] field(:code, 1, type: Google.Rpc.Code, enum: true) diff --git a/badge/lib/internal_api/plumber.pipeline.pb.ex b/badge/lib/internal_api/plumber.pipeline.pb.ex index 5faac12f1..160474bc5 100644 --- a/badge/lib/internal_api/plumber.pipeline.pb.ex +++ b/badge/lib/internal_api/plumber.pipeline.pb.ex @@ -1,39 +1,282 @@ -defmodule InternalApi.Plumber.ScheduleRequest do +defmodule InternalApi.Plumber.QueueType do @moduledoc false - use Protobuf, syntax: :proto3 + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :IMPLICIT | :USER_GENERATED - @type t :: %__MODULE__{ - service: integer, - repo: InternalApi.Plumber.ScheduleRequest.Repo.t(), - auth: InternalApi.Plumber.ScheduleRequest.Auth.t(), - project_id: String.t(), - branch_id: String.t(), - hook_id: String.t(), - request_token: String.t(), - snapshot_id: String.t(), - definition_file: String.t() - } - defstruct [ - :service, - :repo, - :auth, - :project_id, - :branch_id, - :hook_id, - :request_token, - :snapshot_id, - :definition_file - ] + field(:IMPLICIT, 0) - field(:service, 2, type: InternalApi.Plumber.ScheduleRequest.ServiceType, enum: true) - field(:repo, 3, type: InternalApi.Plumber.ScheduleRequest.Repo) - field(:auth, 4, type: InternalApi.Plumber.ScheduleRequest.Auth) - field(:project_id, 6, type: :string) - field(:branch_id, 7, type: :string) - field(:hook_id, 8, type: :string) - field(:request_token, 9, type: :string) - field(:snapshot_id, 10, type: :string) - field(:definition_file, 11, type: :string) + field(:USER_GENERATED, 1) +end + +defmodule InternalApi.Plumber.GitRefType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BRANCH | :TAG | :PR + + field(:BRANCH, 0) + + field(:TAG, 1) + + field(:PR, 2) +end + +defmodule InternalApi.Plumber.TriggeredBy do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :WORKFLOW | :PROMOTION | :AUTO_PROMOTION | :PARTIAL_RE_RUN + + field(:WORKFLOW, 0) + + field(:PROMOTION, 1) + + field(:AUTO_PROMOTION, 2) + + field(:PARTIAL_RE_RUN, 3) +end + +defmodule InternalApi.Plumber.ScheduleRequest.ServiceType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :GIT_HUB | :LOCAL | :SNAPSHOT + + field(:GIT_HUB, 0) + + field(:LOCAL, 1) + + field(:SNAPSHOT, 2) +end + +defmodule InternalApi.Plumber.Block.State do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :WAITING | :RUNNING | :STOPPING | :DONE | :INITIALIZING + + field(:WAITING, 0) + + field(:RUNNING, 1) + + field(:STOPPING, 2) + + field(:DONE, 3) + + field(:INITIALIZING, 4) +end + +defmodule InternalApi.Plumber.Block.Result do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :PASSED | :STOPPED | :CANCELED | :FAILED + + field(:PASSED, 0) + + field(:STOPPED, 1) + + field(:CANCELED, 2) + + field(:FAILED, 3) +end + +defmodule InternalApi.Plumber.Block.ResultReason do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + + @type t :: + integer + | :TEST + | :MALFORMED + | :STUCK + | :USER + | :INTERNAL + | :STRATEGY + | :FAST_FAILING + | :DELETED + | :TIMEOUT + | :SKIPPED + + field(:TEST, 0) + + field(:MALFORMED, 1) + + field(:STUCK, 2) + + field(:USER, 3) + + field(:INTERNAL, 4) + + field(:STRATEGY, 5) + + field(:FAST_FAILING, 6) + + field(:DELETED, 7) + + field(:TIMEOUT, 8) + + field(:SKIPPED, 9) +end + +defmodule InternalApi.Plumber.ListKeysetRequest.Order do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BY_CREATION_TIME_DESC + + field(:BY_CREATION_TIME_DESC, 0) +end + +defmodule InternalApi.Plumber.ListKeysetRequest.Direction do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :NEXT | :PREVIOUS + + field(:NEXT, 0) + + field(:PREVIOUS, 1) +end + +defmodule InternalApi.Plumber.Pipeline.State do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :INITIALIZING | :PENDING | :QUEUING | :RUNNING | :STOPPING | :DONE + + field(:INITIALIZING, 0) + + field(:PENDING, 1) + + field(:QUEUING, 2) + + field(:RUNNING, 3) + + field(:STOPPING, 4) + + field(:DONE, 5) +end + +defmodule InternalApi.Plumber.Pipeline.Result do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :PASSED | :STOPPED | :CANCELED | :FAILED + + field(:PASSED, 0) + + field(:STOPPED, 1) + + field(:CANCELED, 2) + + field(:FAILED, 3) +end + +defmodule InternalApi.Plumber.Pipeline.ResultReason do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + + @type t :: + integer + | :TEST + | :MALFORMED + | :STUCK + | :USER + | :INTERNAL + | :STRATEGY + | :FAST_FAILING + | :DELETED + | :TIMEOUT + + field(:TEST, 0) + + field(:MALFORMED, 1) + + field(:STUCK, 2) + + field(:USER, 3) + + field(:INTERNAL, 4) + + field(:STRATEGY, 5) + + field(:FAST_FAILING, 6) + + field(:DELETED, 7) + + field(:TIMEOUT, 8) +end + +defmodule InternalApi.Plumber.ListActivityRequest.Order do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BY_CREATION_TIME_DESC + + field(:BY_CREATION_TIME_DESC, 0) +end + +defmodule InternalApi.Plumber.ListActivityRequest.Direction do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :NEXT | :PREVIOUS + + field(:NEXT, 0) + + field(:PREVIOUS, 1) +end + +defmodule InternalApi.Plumber.RunNowRequest.Type do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :PIPELINE | :BLOCK | :JOB + + field(:PIPELINE, 0) + + field(:BLOCK, 1) + + field(:JOB, 2) +end + +defmodule InternalApi.Plumber.ResponseStatus.ResponseCode do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :OK | :BAD_PARAM | :LIMIT_EXCEEDED | :REFUSED + + field(:OK, 0) + + field(:BAD_PARAM, 1) + + field(:LIMIT_EXCEEDED, 2) + + field(:REFUSED, 3) +end + +defmodule InternalApi.Plumber.AfterPipeline.State do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :WAITING | :PENDING | :RUNNING | :DONE + + field(:WAITING, 0) + + field(:PENDING, 1) + + field(:RUNNING, 2) + + field(:DONE, 3) +end + +defmodule InternalApi.Plumber.AfterPipeline.Result do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :PASSED | :STOPPED | :FAILED + + field(:PASSED, 0) + + field(:STOPPED, 1) + + field(:FAILED, 2) +end + +defmodule InternalApi.Plumber.AfterPipeline.ResultReason do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :TEST | :STUCK + + field(:TEST, 0) + + field(:STUCK, 1) end defmodule InternalApi.Plumber.ScheduleRequest.Repo do @@ -46,6 +289,7 @@ defmodule InternalApi.Plumber.ScheduleRequest.Repo do branch_name: String.t(), commit_sha: String.t() } + defstruct [:owner, :repo_name, :branch_name, :commit_sha] field(:owner, 1, type: :string) @@ -63,6 +307,7 @@ defmodule InternalApi.Plumber.ScheduleRequest.Auth do client_secret: String.t(), access_token: String.t() } + defstruct [:client_id, :client_secret, :access_token] field(:client_id, 1, type: :string) @@ -70,13 +315,43 @@ defmodule InternalApi.Plumber.ScheduleRequest.Auth do field(:access_token, 3, type: :string) end -defmodule InternalApi.Plumber.ScheduleRequest.ServiceType do +defmodule InternalApi.Plumber.ScheduleRequest do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:GIT_HUB, 0) - field(:LOCAL, 1) - field(:SNAPSHOT, 2) + @type t :: %__MODULE__{ + service: InternalApi.Plumber.ScheduleRequest.ServiceType.t(), + repo: InternalApi.Plumber.ScheduleRequest.Repo.t() | nil, + auth: InternalApi.Plumber.ScheduleRequest.Auth.t() | nil, + project_id: String.t(), + branch_id: String.t(), + hook_id: String.t(), + request_token: String.t(), + snapshot_id: String.t(), + definition_file: String.t() + } + + defstruct [ + :service, + :repo, + :auth, + :project_id, + :branch_id, + :hook_id, + :request_token, + :snapshot_id, + :definition_file + ] + + field(:service, 2, type: InternalApi.Plumber.ScheduleRequest.ServiceType, enum: true) + field(:repo, 3, type: InternalApi.Plumber.ScheduleRequest.Repo) + field(:auth, 4, type: InternalApi.Plumber.ScheduleRequest.Auth) + field(:project_id, 6, type: :string) + field(:branch_id, 7, type: :string) + field(:hook_id, 8, type: :string) + field(:request_token, 9, type: :string) + field(:snapshot_id, 10, type: :string) + field(:definition_file, 11, type: :string) end defmodule InternalApi.Plumber.ScheduleResponse do @@ -84,9 +359,10 @@ defmodule InternalApi.Plumber.ScheduleResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, ppl_id: String.t() } + defstruct [:response_status, :ppl_id] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -101,6 +377,7 @@ defmodule InternalApi.Plumber.DescribeRequest do ppl_id: String.t(), detailed: boolean } + defstruct [:ppl_id, :detailed] field(:ppl_id, 1, type: :string) @@ -112,10 +389,11 @@ defmodule InternalApi.Plumber.DescribeResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), - pipeline: InternalApi.Plumber.Pipeline.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, + pipeline: InternalApi.Plumber.Pipeline.t() | nil, blocks: [InternalApi.Plumber.Block.t()] } + defstruct [:response_status, :pipeline, :blocks] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -123,6 +401,27 @@ defmodule InternalApi.Plumber.DescribeResponse do field(:blocks, 4, repeated: true, type: InternalApi.Plumber.Block) end +defmodule InternalApi.Plumber.Block.Job do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + name: String.t(), + index: non_neg_integer, + job_id: String.t(), + status: String.t(), + result: String.t() + } + + defstruct [:name, :index, :job_id, :status, :result] + + field(:name, 1, type: :string) + field(:index, 2, type: :uint32) + field(:job_id, 3, type: :string) + field(:status, 4, type: :string) + field(:result, 5, type: :string) +end + defmodule InternalApi.Plumber.Block do @moduledoc false use Protobuf, syntax: :proto3 @@ -131,12 +430,13 @@ defmodule InternalApi.Plumber.Block do block_id: String.t(), name: String.t(), build_req_id: String.t(), - state: integer, - result: integer, - result_reason: integer, + state: InternalApi.Plumber.Block.State.t(), + result: InternalApi.Plumber.Block.Result.t(), + result_reason: InternalApi.Plumber.Block.ResultReason.t(), error_description: String.t(), jobs: [InternalApi.Plumber.Block.Job.t()] } + defstruct [ :block_id, :name, @@ -158,99 +458,75 @@ defmodule InternalApi.Plumber.Block do field(:jobs, 8, repeated: true, type: InternalApi.Plumber.Block.Job) end -defmodule InternalApi.Plumber.Block.Job do +defmodule InternalApi.Plumber.DescribeManyRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - name: String.t(), - index: non_neg_integer, - job_id: String.t(), - status: String.t(), - result: String.t() + ppl_ids: [String.t()] } - defstruct [:name, :index, :job_id, :status, :result] - - field(:name, 1, type: :string) - field(:index, 2, type: :uint32) - field(:job_id, 3, type: :string) - field(:status, 4, type: :string) - field(:result, 5, type: :string) -end -defmodule InternalApi.Plumber.Block.State do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + defstruct [:ppl_ids] - field(:WAITING, 0) - field(:RUNNING, 1) - field(:STOPPING, 2) - field(:DONE, 3) - field(:INITIALIZING, 4) + field(:ppl_ids, 1, repeated: true, type: :string) end -defmodule InternalApi.Plumber.Block.Result do +defmodule InternalApi.Plumber.DescribeManyResponse do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:PASSED, 0) - field(:STOPPED, 1) - field(:CANCELED, 2) - field(:FAILED, 3) -end + @type t :: %__MODULE__{ + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, + pipelines: [InternalApi.Plumber.Pipeline.t()] + } -defmodule InternalApi.Plumber.Block.ResultReason do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + defstruct [:response_status, :pipelines] - field(:TEST, 0) - field(:MALFORMED, 1) - field(:STUCK, 2) - field(:USER, 3) - field(:INTERNAL, 4) - field(:STRATEGY, 5) - field(:FAST_FAILING, 6) - field(:DELETED, 7) - field(:TIMEOUT, 8) - field(:SKIPPED, 9) + field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) + field(:pipelines, 2, repeated: true, type: InternalApi.Plumber.Pipeline) end -defmodule InternalApi.Plumber.DescribeManyRequest do +defmodule InternalApi.Plumber.DescribeTopologyRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - ppl_ids: [String.t()] + ppl_id: String.t() } - defstruct [:ppl_ids] - field(:ppl_ids, 1, repeated: true, type: :string) + defstruct [:ppl_id] + + field(:ppl_id, 1, type: :string) end -defmodule InternalApi.Plumber.DescribeManyResponse do +defmodule InternalApi.Plumber.DescribeTopologyResponse.Block do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), - pipelines: [InternalApi.Plumber.Pipeline.t()] + name: String.t(), + jobs: [String.t()], + dependencies: [String.t()] } - defstruct [:response_status, :pipelines] - field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) - field(:pipelines, 2, repeated: true, type: InternalApi.Plumber.Pipeline) + defstruct [:name, :jobs, :dependencies] + + field(:name, 1, type: :string) + field(:jobs, 2, repeated: true, type: :string) + field(:dependencies, 3, repeated: true, type: :string) end -defmodule InternalApi.Plumber.DescribeTopologyRequest do +defmodule InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - ppl_id: String.t() + jobs: [String.t()] } - defstruct [:ppl_id] - field(:ppl_id, 1, type: :string) + defstruct [:jobs] + + field(:jobs, 1, repeated: true, type: :string) end defmodule InternalApi.Plumber.DescribeTopologyResponse do @@ -258,29 +534,16 @@ defmodule InternalApi.Plumber.DescribeTopologyResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Plumber.ResponseStatus.t(), - blocks: [InternalApi.Plumber.DescribeTopologyResponse.Block.t()] + status: InternalApi.Plumber.ResponseStatus.t() | nil, + blocks: [InternalApi.Plumber.DescribeTopologyResponse.Block.t()], + after_pipeline: InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline.t() | nil } - defstruct [:status, :blocks] + + defstruct [:status, :blocks, :after_pipeline] field(:status, 1, type: InternalApi.Plumber.ResponseStatus) field(:blocks, 2, repeated: true, type: InternalApi.Plumber.DescribeTopologyResponse.Block) -end - -defmodule InternalApi.Plumber.DescribeTopologyResponse.Block do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - name: String.t(), - jobs: [String.t()], - dependencies: [String.t()] - } - defstruct [:name, :jobs, :dependencies] - - field(:name, 1, type: :string) - field(:jobs, 2, repeated: true, type: :string) - field(:dependencies, 3, repeated: true, type: :string) + field(:after_pipeline, 3, type: InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline) end defmodule InternalApi.Plumber.TerminateRequest do @@ -291,6 +554,7 @@ defmodule InternalApi.Plumber.TerminateRequest do ppl_id: String.t(), requester_id: String.t() } + defstruct [:ppl_id, :requester_id] field(:ppl_id, 1, type: :string) @@ -302,8 +566,9 @@ defmodule InternalApi.Plumber.TerminateResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t() + response_status: InternalApi.Plumber.ResponseStatus.t() | nil } + defstruct [:response_status] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -318,8 +583,9 @@ defmodule InternalApi.Plumber.ListQueuesRequest do page_size: integer, project_id: String.t(), organization_id: String.t(), - queue_types: [integer] + queue_types: [[InternalApi.Plumber.QueueType.t()]] } + defstruct [:page, :page_size, :project_id, :organization_id, :queue_types] field(:page, 1, type: :int32) @@ -334,13 +600,14 @@ defmodule InternalApi.Plumber.ListQueuesResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, queues: [InternalApi.Plumber.Queue.t()], page_number: integer, page_size: integer, total_entries: integer, total_pages: integer } + defstruct [:response_status, :queues, :page_number, :page_size, :total_entries, :total_pages] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -360,8 +627,9 @@ defmodule InternalApi.Plumber.ListGroupedRequest do page_size: integer, project_id: String.t(), organization_id: String.t(), - queue_type: [integer] + queue_type: [[InternalApi.Plumber.QueueType.t()]] } + defstruct [:page, :page_size, :project_id, :organization_id, :queue_type] field(:page, 1, type: :int32) @@ -376,13 +644,14 @@ defmodule InternalApi.Plumber.ListGroupedResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, pipelines: [InternalApi.Plumber.Pipeline.t()], page_number: integer, page_size: integer, total_entries: integer, total_pages: integer } + defstruct [:response_status, :pipelines, :page_number, :page_size, :total_entries, :total_pages] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -400,19 +669,22 @@ defmodule InternalApi.Plumber.ListKeysetRequest do @type t :: %__MODULE__{ page_size: integer, page_token: String.t(), - order: integer, - direction: integer, + order: InternalApi.Plumber.ListKeysetRequest.Order.t(), + direction: InternalApi.Plumber.ListKeysetRequest.Direction.t(), project_id: String.t(), yml_file_path: String.t(), wf_id: String.t(), - created_before: Google.Protobuf.Timestamp.t(), - created_after: Google.Protobuf.Timestamp.t(), - done_before: Google.Protobuf.Timestamp.t(), - done_after: Google.Protobuf.Timestamp.t(), + created_before: Google.Protobuf.Timestamp.t() | nil, + created_after: Google.Protobuf.Timestamp.t() | nil, + done_before: Google.Protobuf.Timestamp.t() | nil, + done_after: Google.Protobuf.Timestamp.t() | nil, label: String.t(), - git_ref_types: [integer], - queue_id: String.t() + git_ref_types: [[InternalApi.Plumber.GitRefType.t()]], + queue_id: String.t(), + pr_head_branch: String.t(), + pr_target_branch: String.t() } + defstruct [ :page_size, :page_token, @@ -427,7 +699,9 @@ defmodule InternalApi.Plumber.ListKeysetRequest do :done_after, :label, :git_ref_types, - :queue_id + :queue_id, + :pr_head_branch, + :pr_target_branch ] field(:page_size, 1, type: :int32) @@ -444,21 +718,8 @@ defmodule InternalApi.Plumber.ListKeysetRequest do field(:label, 12, type: :string) field(:git_ref_types, 13, repeated: true, type: InternalApi.Plumber.GitRefType, enum: true) field(:queue_id, 14, type: :string) -end - -defmodule InternalApi.Plumber.ListKeysetRequest.Order do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BY_CREATION_TIME_DESC, 0) -end - -defmodule InternalApi.Plumber.ListKeysetRequest.Direction do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:NEXT, 0) - field(:PREVIOUS, 1) + field(:pr_head_branch, 15, type: :string) + field(:pr_target_branch, 16, type: :string) end defmodule InternalApi.Plumber.ListKeysetResponse do @@ -470,6 +731,7 @@ defmodule InternalApi.Plumber.ListKeysetResponse do next_page_token: String.t(), previous_page_token: String.t() } + defstruct [:pipelines, :next_page_token, :previous_page_token] field(:pipelines, 1, repeated: true, type: InternalApi.Plumber.Pipeline) @@ -488,14 +750,17 @@ defmodule InternalApi.Plumber.ListRequest do page_size: integer, yml_file_path: String.t(), wf_id: String.t(), - created_before: Google.Protobuf.Timestamp.t(), - created_after: Google.Protobuf.Timestamp.t(), - done_before: Google.Protobuf.Timestamp.t(), - done_after: Google.Protobuf.Timestamp.t(), + created_before: Google.Protobuf.Timestamp.t() | nil, + created_after: Google.Protobuf.Timestamp.t() | nil, + done_before: Google.Protobuf.Timestamp.t() | nil, + done_after: Google.Protobuf.Timestamp.t() | nil, label: String.t(), - git_ref_types: [integer], - queue_id: String.t() + git_ref_types: [[InternalApi.Plumber.GitRefType.t()]], + queue_id: String.t(), + pr_head_branch: String.t(), + pr_target_branch: String.t() } + defstruct [ :project_id, :branch_name, @@ -509,7 +774,9 @@ defmodule InternalApi.Plumber.ListRequest do :done_after, :label, :git_ref_types, - :queue_id + :queue_id, + :pr_head_branch, + :pr_target_branch ] field(:project_id, 1, type: :string) @@ -525,6 +792,8 @@ defmodule InternalApi.Plumber.ListRequest do field(:label, 11, type: :string) field(:git_ref_types, 12, repeated: true, type: InternalApi.Plumber.GitRefType, enum: true) field(:queue_id, 13, type: :string) + field(:pr_head_branch, 14, type: :string) + field(:pr_target_branch, 15, type: :string) end defmodule InternalApi.Plumber.ListResponse do @@ -532,13 +801,14 @@ defmodule InternalApi.Plumber.ListResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, pipelines: [InternalApi.Plumber.Pipeline.t()], page_number: integer, page_size: integer, total_entries: integer, total_pages: integer } + defstruct [:response_status, :pipelines, :page_number, :page_size, :total_entries, :total_pages] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -559,8 +829,9 @@ defmodule InternalApi.Plumber.Queue do scope: String.t(), project_id: String.t(), organization_id: String.t(), - type: integer + type: InternalApi.Plumber.QueueType.t() } + defstruct [:queue_id, :name, :scope, :project_id, :organization_id, :type] field(:queue_id, 1, type: :string) @@ -581,15 +852,15 @@ defmodule InternalApi.Plumber.Pipeline do project_id: String.t(), branch_name: String.t(), commit_sha: String.t(), - created_at: Google.Protobuf.Timestamp.t(), - pending_at: Google.Protobuf.Timestamp.t(), - queuing_at: Google.Protobuf.Timestamp.t(), - running_at: Google.Protobuf.Timestamp.t(), - stopping_at: Google.Protobuf.Timestamp.t(), - done_at: Google.Protobuf.Timestamp.t(), - state: integer, - result: integer, - result_reason: integer, + created_at: Google.Protobuf.Timestamp.t() | nil, + pending_at: Google.Protobuf.Timestamp.t() | nil, + queuing_at: Google.Protobuf.Timestamp.t() | nil, + running_at: Google.Protobuf.Timestamp.t() | nil, + stopping_at: Google.Protobuf.Timestamp.t() | nil, + done_at: Google.Protobuf.Timestamp.t() | nil, + state: InternalApi.Plumber.Pipeline.State.t(), + result: InternalApi.Plumber.Pipeline.Result.t(), + result_reason: InternalApi.Plumber.Pipeline.ResultReason.t(), terminate_request: String.t(), hook_id: String.t(), branch_id: String.t(), @@ -600,13 +871,20 @@ defmodule InternalApi.Plumber.Pipeline do terminated_by: String.t(), wf_id: String.t(), snapshot_id: String.t(), - queue: InternalApi.Plumber.Queue.t(), + queue: InternalApi.Plumber.Queue.t() | nil, promotion_of: String.t(), partial_rerun_of: String.t(), commit_message: String.t(), partially_rerun_by: String.t(), - compile_task_id: String.t() + compile_task_id: String.t(), + with_after_task: boolean, + after_task_id: String.t(), + repository_id: String.t(), + env_vars: [InternalApi.Plumber.EnvVariable.t()], + triggerer: InternalApi.Plumber.Triggerer.t() | nil, + organization_id: String.t() } + defstruct [ :ppl_id, :name, @@ -637,7 +915,13 @@ defmodule InternalApi.Plumber.Pipeline do :partial_rerun_of, :commit_message, :partially_rerun_by, - :compile_task_id + :compile_task_id, + :with_after_task, + :after_task_id, + :repository_id, + :env_vars, + :triggerer, + :organization_id ] field(:ppl_id, 1, type: :string) @@ -670,43 +954,54 @@ defmodule InternalApi.Plumber.Pipeline do field(:commit_message, 28, type: :string) field(:partially_rerun_by, 29, type: :string) field(:compile_task_id, 30, type: :string) + field(:with_after_task, 31, type: :bool) + field(:after_task_id, 32, type: :string) + field(:repository_id, 33, type: :string) + field(:env_vars, 34, repeated: true, type: InternalApi.Plumber.EnvVariable) + field(:triggerer, 35, type: InternalApi.Plumber.Triggerer) + field(:organization_id, 36, type: :string) end -defmodule InternalApi.Plumber.Pipeline.State do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:INITIALIZING, 0) - field(:PENDING, 1) - field(:QUEUING, 2) - field(:RUNNING, 3) - field(:STOPPING, 4) - field(:DONE, 5) -end - -defmodule InternalApi.Plumber.Pipeline.Result do +defmodule InternalApi.Plumber.Triggerer do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:PASSED, 0) - field(:STOPPED, 1) - field(:CANCELED, 2) - field(:FAILED, 3) -end + @type t :: %__MODULE__{ + wf_triggered_by: InternalApi.PlumberWF.TriggeredBy.t(), + wf_triggerer_id: String.t(), + wf_triggerer_user_id: String.t(), + wf_triggerer_provider_login: String.t(), + wf_triggerer_provider_uid: String.t(), + wf_triggerer_provider_avatar: String.t(), + ppl_triggered_by: InternalApi.Plumber.TriggeredBy.t(), + ppl_triggerer_id: String.t(), + ppl_triggerer_user_id: String.t(), + workflow_rerun_of: String.t() + } -defmodule InternalApi.Plumber.Pipeline.ResultReason do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + defstruct [ + :wf_triggered_by, + :wf_triggerer_id, + :wf_triggerer_user_id, + :wf_triggerer_provider_login, + :wf_triggerer_provider_uid, + :wf_triggerer_provider_avatar, + :ppl_triggered_by, + :ppl_triggerer_id, + :ppl_triggerer_user_id, + :workflow_rerun_of + ] - field(:TEST, 0) - field(:MALFORMED, 1) - field(:STUCK, 2) - field(:USER, 3) - field(:INTERNAL, 4) - field(:STRATEGY, 5) - field(:FAST_FAILING, 6) - field(:DELETED, 7) - field(:TIMEOUT, 8) + field(:wf_triggered_by, 1, type: InternalApi.PlumberWF.TriggeredBy, enum: true) + field(:wf_triggerer_id, 2, type: :string) + field(:wf_triggerer_user_id, 3, type: :string) + field(:wf_triggerer_provider_login, 4, type: :string) + field(:wf_triggerer_provider_uid, 5, type: :string) + field(:wf_triggerer_provider_avatar, 6, type: :string) + field(:ppl_triggered_by, 7, type: InternalApi.Plumber.TriggeredBy, enum: true) + field(:ppl_triggerer_id, 8, type: :string) + field(:ppl_triggerer_user_id, 9, type: :string) + field(:workflow_rerun_of, 10, type: :string) end defmodule InternalApi.Plumber.ListActivityRequest do @@ -716,10 +1011,11 @@ defmodule InternalApi.Plumber.ListActivityRequest do @type t :: %__MODULE__{ page_size: integer, page_token: String.t(), - order: integer, + order: InternalApi.Plumber.ListActivityRequest.Order.t(), organization_id: String.t(), - direction: integer + direction: InternalApi.Plumber.ListActivityRequest.Direction.t() } + defstruct [:page_size, :page_token, :order, :organization_id, :direction] field(:page_size, 1, type: :int32) @@ -729,21 +1025,6 @@ defmodule InternalApi.Plumber.ListActivityRequest do field(:direction, 5, type: InternalApi.Plumber.ListActivityRequest.Direction, enum: true) end -defmodule InternalApi.Plumber.ListActivityRequest.Order do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BY_CREATION_TIME_DESC, 0) -end - -defmodule InternalApi.Plumber.ListActivityRequest.Direction do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:NEXT, 0) - field(:PREVIOUS, 1) -end - defmodule InternalApi.Plumber.ListActivityResponse do @moduledoc false use Protobuf, syntax: :proto3 @@ -753,6 +1034,7 @@ defmodule InternalApi.Plumber.ListActivityResponse do previous_page_token: String.t(), pipelines: [InternalApi.Plumber.ActivePipeline.t()] } + defstruct [:next_page_token, :previous_page_token, :pipelines] field(:next_page_token, 1, type: :string) @@ -760,6 +1042,81 @@ defmodule InternalApi.Plumber.ListActivityResponse do field(:pipelines, 3, repeated: true, type: InternalApi.Plumber.ActivePipeline) end +defmodule InternalApi.Plumber.ListRequestersRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + organization_id: String.t(), + page_token: String.t(), + page_size: integer, + requested_at_gt: Google.Protobuf.Timestamp.t() | nil, + requested_at_lte: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:organization_id, :page_token, :page_size, :requested_at_gt, :requested_at_lte] + + field(:organization_id, 1, type: :string) + field(:page_token, 2, type: :string) + field(:page_size, 3, type: :int32) + field(:requested_at_gt, 4, type: Google.Protobuf.Timestamp) + field(:requested_at_lte, 5, type: Google.Protobuf.Timestamp) +end + +defmodule InternalApi.Plumber.ListRequestersResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + requesters: [InternalApi.Plumber.Requester.t()], + next_page_token: String.t() + } + + defstruct [:requesters, :next_page_token] + + field(:requesters, 1, repeated: true, type: InternalApi.Plumber.Requester) + field(:next_page_token, 2, type: :string) +end + +defmodule InternalApi.Plumber.Requester do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + organization_id: String.t(), + project_id: String.t(), + ppl_id: String.t(), + user_id: String.t(), + provider_login: String.t(), + provider_uid: String.t(), + provider: InternalApi.User.RepositoryProvider.Type.t(), + triggerer: InternalApi.PlumberWF.TriggeredBy.t(), + requested_at: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [ + :organization_id, + :project_id, + :ppl_id, + :user_id, + :provider_login, + :provider_uid, + :provider, + :triggerer, + :requested_at + ] + + field(:organization_id, 1, type: :string) + field(:project_id, 2, type: :string) + field(:ppl_id, 3, type: :string) + field(:user_id, 4, type: :string) + field(:provider_login, 5, type: :string) + field(:provider_uid, 6, type: :string) + field(:provider, 7, type: InternalApi.User.RepositoryProvider.Type, enum: true) + field(:triggerer, 8, type: InternalApi.PlumberWF.TriggeredBy, enum: true) + field(:requested_at, 9, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Plumber.ActivePipeline do @moduledoc false use Protobuf, syntax: :proto3 @@ -775,7 +1132,7 @@ defmodule InternalApi.Plumber.ActivePipeline do switch_id: String.t(), definition_file: String.t(), priority: non_neg_integer, - wf_triggered_by: integer, + wf_triggered_by: InternalApi.PlumberWF.TriggeredBy.t(), requester_id: String.t(), partial_rerun_of: String.t(), promotion_of: String.t(), @@ -784,18 +1141,20 @@ defmodule InternalApi.Plumber.ActivePipeline do git_ref: String.t(), commit_sha: String.t(), branch_id: String.t(), - created_at: Google.Protobuf.Timestamp.t(), - pending_at: Google.Protobuf.Timestamp.t(), - queuing_at: Google.Protobuf.Timestamp.t(), - running_at: Google.Protobuf.Timestamp.t(), - queue: InternalApi.Plumber.Queue.t(), + created_at: Google.Protobuf.Timestamp.t() | nil, + pending_at: Google.Protobuf.Timestamp.t() | nil, + queuing_at: Google.Protobuf.Timestamp.t() | nil, + running_at: Google.Protobuf.Timestamp.t() | nil, + queue: InternalApi.Plumber.Queue.t() | nil, blocks: [InternalApi.Plumber.BlockDetails.t()], - state: integer, - git_ref_type: integer, + state: InternalApi.Plumber.Pipeline.State.t(), + git_ref_type: InternalApi.Plumber.GitRefType.t(), commit_message: String.t(), commiter_username: String.t(), - commiter_avatar_url: String.t() + commiter_avatar_url: String.t(), + triggerer: InternalApi.Plumber.Triggerer.t() | nil } + defstruct [ :organization_id, :project_id, @@ -826,7 +1185,8 @@ defmodule InternalApi.Plumber.ActivePipeline do :git_ref_type, :commit_message, :commiter_username, - :commiter_avatar_url + :commiter_avatar_url, + :triggerer ] field(:organization_id, 1, type: :string) @@ -859,6 +1219,24 @@ defmodule InternalApi.Plumber.ActivePipeline do field(:commit_message, 28, type: :string) field(:commiter_username, 29, type: :string) field(:commiter_avatar_url, 30, type: :string) + field(:triggerer, 31, type: InternalApi.Plumber.Triggerer) +end + +defmodule InternalApi.Plumber.BlockDetails.JobDetails do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + name: String.t(), + index: non_neg_integer, + status: String.t() + } + + defstruct [:name, :index, :status] + + field(:name, 1, type: :string) + field(:index, 2, type: :uint32) + field(:status, 3, type: :string) end defmodule InternalApi.Plumber.BlockDetails do @@ -870,12 +1248,13 @@ defmodule InternalApi.Plumber.BlockDetails do name: String.t(), priority: non_neg_integer, dependencies: [String.t()], - state: integer, - result: integer, - result_reason: integer, + state: InternalApi.Plumber.Block.State.t(), + result: InternalApi.Plumber.Block.Result.t(), + result_reason: InternalApi.Plumber.Block.ResultReason.t(), error_description: String.t(), jobs: [InternalApi.Plumber.BlockDetails.JobDetails.t()] } + defstruct [ :block_id, :name, @@ -899,33 +1278,18 @@ defmodule InternalApi.Plumber.BlockDetails do field(:jobs, 9, repeated: true, type: InternalApi.Plumber.BlockDetails.JobDetails) end -defmodule InternalApi.Plumber.BlockDetails.JobDetails do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - name: String.t(), - index: non_neg_integer, - status: String.t() - } - defstruct [:name, :index, :status] - - field(:name, 1, type: :string) - field(:index, 2, type: :uint32) - field(:status, 3, type: :string) -end - defmodule InternalApi.Plumber.RunNowRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ requester_id: String.t(), - type: integer, + type: InternalApi.Plumber.RunNowRequest.Type.t(), ppl_id: String.t(), block_id: String.t(), job_id: String.t() } + defstruct [:requester_id, :type, :ppl_id, :block_id, :job_id] field(:requester_id, 1, type: :string) @@ -935,18 +1299,10 @@ defmodule InternalApi.Plumber.RunNowRequest do field(:job_id, 5, type: :string) end -defmodule InternalApi.Plumber.RunNowRequest.Type do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:PIPELINE, 0) - field(:BLOCK, 1) - field(:JOB, 2) -end - defmodule InternalApi.Plumber.RunNowResponse do @moduledoc false use Protobuf, syntax: :proto3 + @type t :: %__MODULE__{} defstruct [] end @@ -958,6 +1314,7 @@ defmodule InternalApi.Plumber.GetProjectIdRequest do @type t :: %__MODULE__{ ppl_id: String.t() } + defstruct [:ppl_id] field(:ppl_id, 1, type: :string) @@ -968,9 +1325,10 @@ defmodule InternalApi.Plumber.GetProjectIdResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, project_id: String.t() } + defstruct [:response_status, :project_id] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -985,6 +1343,7 @@ defmodule InternalApi.Plumber.ValidateYamlRequest do yaml_definition: String.t(), ppl_id: String.t() } + defstruct [:yaml_definition, :ppl_id] field(:yaml_definition, 1, type: :string) @@ -996,9 +1355,10 @@ defmodule InternalApi.Plumber.ValidateYamlResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, ppl_id: String.t() } + defstruct [:response_status, :ppl_id] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -1016,8 +1376,11 @@ defmodule InternalApi.Plumber.ScheduleExtensionRequest do env_variables: [InternalApi.Plumber.EnvVariable.t()], prev_ppl_artefact_ids: [String.t()], promoted_by: String.t(), - auto_promoted: boolean + auto_promoted: boolean, + secret_names: [String.t()], + deployment_target_id: String.t() } + defstruct [ :file_path, :ppl_id, @@ -1025,7 +1388,9 @@ defmodule InternalApi.Plumber.ScheduleExtensionRequest do :env_variables, :prev_ppl_artefact_ids, :promoted_by, - :auto_promoted + :auto_promoted, + :secret_names, + :deployment_target_id ] field(:file_path, 1, type: :string) @@ -1035,6 +1400,8 @@ defmodule InternalApi.Plumber.ScheduleExtensionRequest do field(:prev_ppl_artefact_ids, 6, repeated: true, type: :string) field(:promoted_by, 7, type: :string) field(:auto_promoted, 8, type: :bool) + field(:secret_names, 9, repeated: true, type: :string) + field(:deployment_target_id, 10, type: :string) end defmodule InternalApi.Plumber.EnvVariable do @@ -1045,6 +1412,7 @@ defmodule InternalApi.Plumber.EnvVariable do name: String.t(), value: String.t() } + defstruct [:name, :value] field(:name, 1, type: :string) @@ -1056,9 +1424,10 @@ defmodule InternalApi.Plumber.ScheduleExtensionResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, ppl_id: String.t() } + defstruct [:response_status, :ppl_id] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -1073,6 +1442,7 @@ defmodule InternalApi.Plumber.DeleteRequest do project_id: String.t(), requester: String.t() } + defstruct [:project_id, :requester] field(:project_id, 1, type: :string) @@ -1084,8 +1454,9 @@ defmodule InternalApi.Plumber.DeleteResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Plumber.ResponseStatus.t() + status: InternalApi.Plumber.ResponseStatus.t() | nil } + defstruct [:status] field(:status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -1100,6 +1471,7 @@ defmodule InternalApi.Plumber.PartialRebuildRequest do request_token: String.t(), user_id: String.t() } + defstruct [:ppl_id, :request_token, :user_id] field(:ppl_id, 1, type: :string) @@ -1112,9 +1484,10 @@ defmodule InternalApi.Plumber.PartialRebuildResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - response_status: InternalApi.Plumber.ResponseStatus.t(), + response_status: InternalApi.Plumber.ResponseStatus.t() | nil, ppl_id: String.t() } + defstruct [:response_status, :ppl_id] field(:response_status, 1, type: InternalApi.Plumber.ResponseStatus) @@ -1124,6 +1497,7 @@ end defmodule InternalApi.Plumber.VersionRequest do @moduledoc false use Protobuf, syntax: :proto3 + @type t :: %__MODULE__{} defstruct [] end @@ -1135,6 +1509,7 @@ defmodule InternalApi.Plumber.VersionResponse do @type t :: %__MODULE__{ version: String.t() } + defstruct [:version] field(:version, 1, type: :string) @@ -1145,34 +1520,26 @@ defmodule InternalApi.Plumber.ResponseStatus do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - code: integer, + code: InternalApi.Plumber.ResponseStatus.ResponseCode.t(), message: String.t() } + defstruct [:code, :message] field(:code, 1, type: InternalApi.Plumber.ResponseStatus.ResponseCode, enum: true) field(:message, 2, type: :string) end -defmodule InternalApi.Plumber.ResponseStatus.ResponseCode do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:OK, 0) - field(:BAD_PARAM, 1) - field(:LIMIT_EXCEEDED, 2) - field(:REFUSED, 3) -end - defmodule InternalApi.Plumber.PipelineEvent do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ pipeline_id: String.t(), - state: integer, - timestamp: Google.Protobuf.Timestamp.t() + state: InternalApi.Plumber.Pipeline.State.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil } + defstruct [:pipeline_id, :state, :timestamp] field(:pipeline_id, 1, type: :string) @@ -1187,9 +1554,10 @@ defmodule InternalApi.Plumber.PipelineBlockEvent do @type t :: %__MODULE__{ pipeline_id: String.t(), block_id: String.t(), - state: integer, - timestamp: Google.Protobuf.Timestamp.t() + state: InternalApi.Plumber.Block.State.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil } + defstruct [:pipeline_id, :block_id, :state, :timestamp] field(:pipeline_id, 1, type: :string) @@ -1198,21 +1566,42 @@ defmodule InternalApi.Plumber.PipelineBlockEvent do field(:timestamp, 4, type: Google.Protobuf.Timestamp) end -defmodule InternalApi.Plumber.QueueType do +defmodule InternalApi.Plumber.AfterPipeline do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:IMPLICIT, 0) - field(:USER_GENERATED, 1) + @type t :: %__MODULE__{ + pipeline_id: String.t(), + state: InternalApi.Plumber.AfterPipeline.State.t(), + result: InternalApi.Plumber.AfterPipeline.Result.t(), + result_reason: InternalApi.Plumber.AfterPipeline.ResultReason.t(), + created_at: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:pipeline_id, :state, :result, :result_reason, :created_at] + + field(:pipeline_id, 1, type: :string) + field(:state, 2, type: InternalApi.Plumber.AfterPipeline.State, enum: true) + field(:result, 3, type: InternalApi.Plumber.AfterPipeline.Result, enum: true) + field(:result_reason, 4, type: InternalApi.Plumber.AfterPipeline.ResultReason, enum: true) + field(:created_at, 5, type: Google.Protobuf.Timestamp) end -defmodule InternalApi.Plumber.GitRefType do +defmodule InternalApi.Plumber.AfterPipelineEvent do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:BRANCH, 0) - field(:TAG, 1) - field(:PR, 2) + @type t :: %__MODULE__{ + pipeline_id: String.t(), + state: InternalApi.Plumber.AfterPipeline.State.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:pipeline_id, :state, :timestamp] + + field(:pipeline_id, 1, type: :string) + field(:state, 2, type: InternalApi.Plumber.AfterPipeline.State, enum: true) + field(:timestamp, 3, type: Google.Protobuf.Timestamp) end defmodule InternalApi.Plumber.PipelineService.Service do @@ -1220,6 +1609,7 @@ defmodule InternalApi.Plumber.PipelineService.Service do use GRPC.Service, name: "InternalApi.Plumber.PipelineService" rpc(:Schedule, InternalApi.Plumber.ScheduleRequest, InternalApi.Plumber.ScheduleResponse) + rpc(:Describe, InternalApi.Plumber.DescribeRequest, InternalApi.Plumber.DescribeResponse) rpc( @@ -1235,7 +1625,9 @@ defmodule InternalApi.Plumber.PipelineService.Service do ) rpc(:Terminate, InternalApi.Plumber.TerminateRequest, InternalApi.Plumber.TerminateResponse) + rpc(:ListKeyset, InternalApi.Plumber.ListKeysetRequest, InternalApi.Plumber.ListKeysetResponse) + rpc(:List, InternalApi.Plumber.ListRequest, InternalApi.Plumber.ListResponse) rpc( @@ -1252,6 +1644,12 @@ defmodule InternalApi.Plumber.PipelineService.Service do InternalApi.Plumber.ListActivityResponse ) + rpc( + :ListRequesters, + InternalApi.Plumber.ListRequestersRequest, + InternalApi.Plumber.ListRequestersResponse + ) + rpc(:RunNow, InternalApi.Plumber.RunNowRequest, InternalApi.Plumber.RunNowResponse) rpc( diff --git a/badge/lib/internal_api/plumber_w_f.workflow.pb.ex b/badge/lib/internal_api/plumber_w_f.workflow.pb.ex index ff336f6e0..296456974 100644 --- a/badge/lib/internal_api/plumber_w_f.workflow.pb.ex +++ b/badge/lib/internal_api/plumber_w_f.workflow.pb.ex @@ -1,11 +1,156 @@ +defmodule InternalApi.PlumberWF.TriggeredBy do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :HOOK | :SCHEDULE | :API | :MANUAL_RUN + + field(:HOOK, 0) + + field(:SCHEDULE, 1) + + field(:API, 2) + + field(:MANUAL_RUN, 3) +end + +defmodule InternalApi.PlumberWF.GitRefType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BRANCH | :TAG | :PR + + field(:BRANCH, 0) + + field(:TAG, 1) + + field(:PR, 2) +end + +defmodule InternalApi.PlumberWF.ScheduleRequest.ServiceType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :GIT_HUB | :LOCAL | :SNAPSHOT | :BITBUCKET | :GITLAB | :GIT + + field(:GIT_HUB, 0) + + field(:LOCAL, 1) + + field(:SNAPSHOT, 2) + + field(:BITBUCKET, 3) + + field(:GITLAB, 4) + + field(:GIT, 5) +end + +defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest.Order do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BY_CREATION_TIME_DESC + + field(:BY_CREATION_TIME_DESC, 0) +end + +defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest.Direction do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :NEXT | :PREVIOUS + + field(:NEXT, 0) + + field(:PREVIOUS, 1) +end + +defmodule InternalApi.PlumberWF.ListGroupedKSRequest.Order do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BY_CREATION_TIME_DESC + + field(:BY_CREATION_TIME_DESC, 0) +end + +defmodule InternalApi.PlumberWF.ListGroupedKSRequest.Direction do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :NEXT | :PREVIOUS + + field(:NEXT, 0) + + field(:PREVIOUS, 1) +end + +defmodule InternalApi.PlumberWF.ListGroupedRequest.SourceType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BRANCH | :TAG | :PULL_REQUEST + + field(:BRANCH, 0) + + field(:TAG, 1) + + field(:PULL_REQUEST, 2) +end + +defmodule InternalApi.PlumberWF.ListKeysetRequest.Order do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BY_CREATION_TIME_DESC + + field(:BY_CREATION_TIME_DESC, 0) +end + +defmodule InternalApi.PlumberWF.ListKeysetRequest.Direction do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :NEXT | :PREVIOUS + + field(:NEXT, 0) + + field(:PREVIOUS, 1) +end + +defmodule InternalApi.PlumberWF.ScheduleRequest.Repo do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + owner: String.t(), + repo_name: String.t(), + branch_name: String.t(), + commit_sha: String.t(), + repository_id: String.t() + } + + defstruct [:owner, :repo_name, :branch_name, :commit_sha, :repository_id] + + field(:owner, 1, type: :string) + field(:repo_name, 2, type: :string) + field(:branch_name, 4, type: :string) + field(:commit_sha, 5, type: :string) + field(:repository_id, 6, type: :string) +end + +defmodule InternalApi.PlumberWF.ScheduleRequest.EnvVar do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + name: String.t(), + value: String.t() + } + + defstruct [:name, :value] + + field(:name, 1, type: :string) + field(:value, 2, type: :string) +end + defmodule InternalApi.PlumberWF.ScheduleRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - service: integer, - repo: InternalApi.PlumberWF.ScheduleRequest.Repo.t(), - auth: InternalApi.PlumberWF.ScheduleRequest.Auth.t(), + service: InternalApi.PlumberWF.ScheduleRequest.ServiceType.t(), + repo: InternalApi.PlumberWF.ScheduleRequest.Repo.t() | nil, project_id: String.t(), branch_id: String.t(), hook_id: String.t(), @@ -15,12 +160,14 @@ defmodule InternalApi.PlumberWF.ScheduleRequest do requester_id: String.t(), organization_id: String.t(), label: String.t(), - triggered_by: integer + triggered_by: InternalApi.PlumberWF.TriggeredBy.t(), + scheduler_task_id: String.t(), + env_vars: [InternalApi.PlumberWF.ScheduleRequest.EnvVar.t()] } + defstruct [ :service, :repo, - :auth, :project_id, :branch_id, :hook_id, @@ -30,12 +177,13 @@ defmodule InternalApi.PlumberWF.ScheduleRequest do :requester_id, :organization_id, :label, - :triggered_by + :triggered_by, + :scheduler_task_id, + :env_vars ] field(:service, 2, type: InternalApi.PlumberWF.ScheduleRequest.ServiceType, enum: true) field(:repo, 3, type: InternalApi.PlumberWF.ScheduleRequest.Repo) - field(:auth, 4, type: InternalApi.PlumberWF.ScheduleRequest.Auth) field(:project_id, 6, type: :string) field(:branch_id, 7, type: :string) field(:hook_id, 8, type: :string) @@ -46,49 +194,8 @@ defmodule InternalApi.PlumberWF.ScheduleRequest do field(:organization_id, 13, type: :string) field(:label, 14, type: :string) field(:triggered_by, 15, type: InternalApi.PlumberWF.TriggeredBy, enum: true) -end - -defmodule InternalApi.PlumberWF.ScheduleRequest.Repo do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - owner: String.t(), - repo_name: String.t(), - branch_name: String.t(), - commit_sha: String.t() - } - defstruct [:owner, :repo_name, :branch_name, :commit_sha] - - field(:owner, 1, type: :string) - field(:repo_name, 2, type: :string) - field(:branch_name, 4, type: :string) - field(:commit_sha, 5, type: :string) -end - -defmodule InternalApi.PlumberWF.ScheduleRequest.Auth do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - client_id: String.t(), - client_secret: String.t(), - access_token: String.t() - } - defstruct [:client_id, :client_secret, :access_token] - - field(:client_id, 1, type: :string) - field(:client_secret, 2, type: :string) - field(:access_token, 3, type: :string) -end - -defmodule InternalApi.PlumberWF.ScheduleRequest.ServiceType do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:GIT_HUB, 0) - field(:LOCAL, 1) - field(:SNAPSHOT, 2) + field(:scheduler_task_id, 16, type: :string) + field(:env_vars, 17, repeated: true, type: InternalApi.PlumberWF.ScheduleRequest.EnvVar) end defmodule InternalApi.PlumberWF.ScheduleResponse do @@ -97,9 +204,10 @@ defmodule InternalApi.PlumberWF.ScheduleResponse do @type t :: %__MODULE__{ wf_id: String.t(), - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, ppl_id: String.t() } + defstruct [:wf_id, :status, :ppl_id] field(:wf_id, 2, type: :string) @@ -116,6 +224,7 @@ defmodule InternalApi.PlumberWF.GetPathRequest do first_ppl_id: String.t(), last_ppl_id: String.t() } + defstruct [:wf_id, :first_ppl_id, :last_ppl_id] field(:wf_id, 1, type: :string) @@ -123,24 +232,6 @@ defmodule InternalApi.PlumberWF.GetPathRequest do field(:last_ppl_id, 3, type: :string) end -defmodule InternalApi.PlumberWF.GetPathResponse do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - wf_id: String.t(), - wf_created_at: Google.Protobuf.Timestamp.t(), - path: [InternalApi.PlumberWF.GetPathResponse.PathElement.t()], - status: InternalApi.Status.t() - } - defstruct [:wf_id, :wf_created_at, :path, :status] - - field(:wf_id, 2, type: :string) - field(:wf_created_at, 3, type: Google.Protobuf.Timestamp) - field(:path, 4, repeated: true, type: InternalApi.PlumberWF.GetPathResponse.PathElement) - field(:status, 5, type: InternalApi.Status) -end - defmodule InternalApi.PlumberWF.GetPathResponse.PathElement do @moduledoc false use Protobuf, syntax: :proto3 @@ -150,6 +241,7 @@ defmodule InternalApi.PlumberWF.GetPathResponse.PathElement do switch_id: String.t(), rebuild_partition: [String.t()] } + defstruct [:ppl_id, :switch_id, :rebuild_partition] field(:ppl_id, 1, type: :string) @@ -157,19 +249,39 @@ defmodule InternalApi.PlumberWF.GetPathResponse.PathElement do field(:rebuild_partition, 3, repeated: true, type: :string) end +defmodule InternalApi.PlumberWF.GetPathResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + wf_id: String.t(), + wf_created_at: Google.Protobuf.Timestamp.t() | nil, + path: [InternalApi.PlumberWF.GetPathResponse.PathElement.t()], + status: InternalApi.Status.t() | nil + } + + defstruct [:wf_id, :wf_created_at, :path, :status] + + field(:wf_id, 2, type: :string) + field(:wf_created_at, 3, type: Google.Protobuf.Timestamp) + field(:path, 4, repeated: true, type: InternalApi.PlumberWF.GetPathResponse.PathElement) + field(:status, 5, type: InternalApi.Status) +end + defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - order: integer, + order: InternalApi.PlumberWF.ListLatestWorkflowsRequest.Order.t(), page_size: integer, page_token: String.t(), - direction: integer, + direction: InternalApi.PlumberWF.ListLatestWorkflowsRequest.Direction.t(), project_id: String.t(), requester_id: String.t(), - git_ref_types: [integer] + git_ref_types: [[InternalApi.PlumberWF.GitRefType.t()]] } + defstruct [ :order, :page_size, @@ -194,21 +306,6 @@ defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest do field(:git_ref_types, 7, repeated: true, type: InternalApi.PlumberWF.GitRefType, enum: true) end -defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest.Order do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BY_CREATION_TIME_DESC, 0) -end - -defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest.Direction do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:NEXT, 0) - field(:PREVIOUS, 1) -end - defmodule InternalApi.PlumberWF.ListLatestWorkflowsResponse do @moduledoc false use Protobuf, syntax: :proto3 @@ -218,6 +315,7 @@ defmodule InternalApi.PlumberWF.ListLatestWorkflowsResponse do next_page_token: String.t(), previous_page_token: String.t() } + defstruct [:workflows, :next_page_token, :previous_page_token] field(:workflows, 1, repeated: true, type: InternalApi.PlumberWF.WorkflowDetails) @@ -230,14 +328,15 @@ defmodule InternalApi.PlumberWF.ListGroupedKSRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - order: integer, + order: InternalApi.PlumberWF.ListGroupedKSRequest.Order.t(), page_size: integer, page_token: String.t(), - direction: integer, + direction: InternalApi.PlumberWF.ListGroupedKSRequest.Direction.t(), project_id: String.t(), requester_id: String.t(), - git_ref_types: [integer] + git_ref_types: [[InternalApi.PlumberWF.GitRefType.t()]] } + defstruct [ :order, :page_size, @@ -257,21 +356,6 @@ defmodule InternalApi.PlumberWF.ListGroupedKSRequest do field(:git_ref_types, 7, repeated: true, type: InternalApi.PlumberWF.GitRefType, enum: true) end -defmodule InternalApi.PlumberWF.ListGroupedKSRequest.Order do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BY_CREATION_TIME_DESC, 0) -end - -defmodule InternalApi.PlumberWF.ListGroupedKSRequest.Direction do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:NEXT, 0) - field(:PREVIOUS, 1) -end - defmodule InternalApi.PlumberWF.ListGroupedKSResponse do @moduledoc false use Protobuf, syntax: :proto3 @@ -281,6 +365,7 @@ defmodule InternalApi.PlumberWF.ListGroupedKSResponse do next_page_token: String.t(), previous_page_token: String.t() } + defstruct [:workflows, :next_page_token, :previous_page_token] field(:workflows, 1, repeated: true, type: InternalApi.PlumberWF.WorkflowDetails) @@ -296,9 +381,10 @@ defmodule InternalApi.PlumberWF.ListGroupedRequest do page: integer, page_size: integer, project_id: String.t(), - grouped_by: integer, - git_ref_types: [integer] + grouped_by: InternalApi.PlumberWF.ListGroupedRequest.SourceType.t(), + git_ref_types: [[InternalApi.PlumberWF.GitRefType.t()]] } + defstruct [:page, :page_size, :project_id, :grouped_by, :git_ref_types] field(:page, 1, type: :int32) @@ -308,27 +394,19 @@ defmodule InternalApi.PlumberWF.ListGroupedRequest do field(:git_ref_types, 5, repeated: true, type: InternalApi.PlumberWF.GitRefType, enum: true) end -defmodule InternalApi.PlumberWF.ListGroupedRequest.SourceType do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BRANCH, 0) - field(:TAG, 1) - field(:PULL_REQUEST, 2) -end - defmodule InternalApi.PlumberWF.ListGroupedResponse do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, workflows: [InternalApi.PlumberWF.WorkflowDetails.t()], page_number: integer, page_size: integer, total_entries: integer, total_pages: integer } + defstruct [:status, :workflows, :page_number, :page_size, :total_entries, :total_pages] field(:status, 1, type: InternalApi.Status) @@ -351,11 +429,12 @@ defmodule InternalApi.PlumberWF.ListRequest do requester_id: String.t(), organization_id: String.t(), project_ids: [String.t()], - created_before: Google.Protobuf.Timestamp.t(), - created_after: Google.Protobuf.Timestamp.t(), + created_before: Google.Protobuf.Timestamp.t() | nil, + created_after: Google.Protobuf.Timestamp.t() | nil, label: String.t(), - git_ref_types: [integer] + git_ref_types: [[InternalApi.PlumberWF.GitRefType.t()]] } + defstruct [ :page, :page_size, @@ -388,13 +467,14 @@ defmodule InternalApi.PlumberWF.ListResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, workflows: [InternalApi.PlumberWF.WorkflowDetails.t()], page_number: integer, page_size: integer, total_entries: integer, total_pages: integer } + defstruct [:status, :workflows, :page_number, :page_size, :total_entries, :total_pages] field(:status, 1, type: InternalApi.Status) @@ -412,20 +492,21 @@ defmodule InternalApi.PlumberWF.ListKeysetRequest do @type t :: %__MODULE__{ page_size: integer, page_token: String.t(), - order: integer, + order: InternalApi.PlumberWF.ListKeysetRequest.Order.t(), organization_id: String.t(), project_id: String.t(), requester_id: String.t(), project_ids: [String.t()], - created_before: Google.Protobuf.Timestamp.t(), - created_after: Google.Protobuf.Timestamp.t(), + created_before: Google.Protobuf.Timestamp.t() | nil, + created_after: Google.Protobuf.Timestamp.t() | nil, label: String.t(), - git_ref_types: [integer], - direction: integer, - triggerers: [integer], + git_ref_types: [[InternalApi.PlumberWF.GitRefType.t()]], + direction: InternalApi.PlumberWF.ListKeysetRequest.Direction.t(), + triggerers: [[InternalApi.PlumberWF.TriggeredBy.t()]], branch_name: String.t(), requester_ids: [String.t()] } + defstruct [ :page_size, :page_token, @@ -461,31 +542,17 @@ defmodule InternalApi.PlumberWF.ListKeysetRequest do field(:requester_ids, 15, repeated: true, type: :string) end -defmodule InternalApi.PlumberWF.ListKeysetRequest.Order do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BY_CREATION_TIME_DESC, 0) -end - -defmodule InternalApi.PlumberWF.ListKeysetRequest.Direction do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:NEXT, 0) - field(:PREVIOUS, 1) -end - defmodule InternalApi.PlumberWF.ListKeysetResponse do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, workflows: [InternalApi.PlumberWF.WorkflowDetails.t()], next_page_token: String.t(), previous_page_token: String.t() } + defstruct [:status, :workflows, :next_page_token, :previous_page_token] field(:status, 1, type: InternalApi.Status) @@ -507,10 +574,13 @@ defmodule InternalApi.PlumberWF.WorkflowDetails do branch_id: String.t(), branch_name: String.t(), commit_sha: String.t(), - created_at: Google.Protobuf.Timestamp.t(), - triggered_by: integer, - rerun_of: String.t() + created_at: Google.Protobuf.Timestamp.t() | nil, + triggered_by: InternalApi.PlumberWF.TriggeredBy.t(), + rerun_of: String.t(), + repository_id: String.t(), + organization_id: String.t() } + defstruct [ :wf_id, :initial_ppl_id, @@ -522,7 +592,9 @@ defmodule InternalApi.PlumberWF.WorkflowDetails do :commit_sha, :created_at, :triggered_by, - :rerun_of + :rerun_of, + :repository_id, + :organization_id ] field(:wf_id, 1, type: :string) @@ -536,6 +608,8 @@ defmodule InternalApi.PlumberWF.WorkflowDetails do field(:created_at, 9, type: Google.Protobuf.Timestamp) field(:triggered_by, 10, type: InternalApi.PlumberWF.TriggeredBy, enum: true) field(:rerun_of, 11, type: :string) + field(:repository_id, 12, type: :string) + field(:organization_id, 13, type: :string) end defmodule InternalApi.PlumberWF.DescribeRequest do @@ -545,6 +619,7 @@ defmodule InternalApi.PlumberWF.DescribeRequest do @type t :: %__MODULE__{ wf_id: String.t() } + defstruct [:wf_id] field(:wf_id, 1, type: :string) @@ -555,15 +630,44 @@ defmodule InternalApi.PlumberWF.DescribeResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t(), - workflow: InternalApi.PlumberWF.WorkflowDetails.t() + status: InternalApi.Status.t() | nil, + workflow: InternalApi.PlumberWF.WorkflowDetails.t() | nil } + defstruct [:status, :workflow] field(:status, 1, type: InternalApi.Status) field(:workflow, 2, type: InternalApi.PlumberWF.WorkflowDetails) end +defmodule InternalApi.PlumberWF.DescribeManyRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + wf_ids: [String.t()] + } + + defstruct [:wf_ids] + + field(:wf_ids, 1, repeated: true, type: :string) +end + +defmodule InternalApi.PlumberWF.DescribeManyResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + status: InternalApi.Status.t() | nil, + workflows: [InternalApi.PlumberWF.WorkflowDetails.t()] + } + + defstruct [:status, :workflows] + + field(:status, 1, type: InternalApi.Status) + field(:workflows, 2, repeated: true, type: InternalApi.PlumberWF.WorkflowDetails) +end + defmodule InternalApi.PlumberWF.TerminateRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -572,6 +676,7 @@ defmodule InternalApi.PlumberWF.TerminateRequest do requester_id: String.t(), wf_id: String.t() } + defstruct [:requester_id, :wf_id] field(:requester_id, 2, type: :string) @@ -583,8 +688,9 @@ defmodule InternalApi.PlumberWF.TerminateResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t() + status: InternalApi.Status.t() | nil } + defstruct [:status] field(:status, 2, type: InternalApi.Status) @@ -599,6 +705,7 @@ defmodule InternalApi.PlumberWF.ListLabelsRequest do page_size: integer, project_id: String.t() } + defstruct [:page, :page_size, :project_id] field(:page, 1, type: :int32) @@ -611,13 +718,14 @@ defmodule InternalApi.PlumberWF.ListLabelsResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, labels: [String.t()], page_number: integer, page_size: integer, total_entries: integer, total_pages: integer } + defstruct [:status, :labels, :page_number, :page_size, :total_entries, :total_pages] field(:status, 1, type: InternalApi.Status) @@ -637,6 +745,7 @@ defmodule InternalApi.PlumberWF.RescheduleRequest do requester_id: String.t(), request_token: String.t() } + defstruct [:wf_id, :requester_id, :request_token] field(:wf_id, 1, type: :string) @@ -651,6 +760,7 @@ defmodule InternalApi.PlumberWF.GetProjectIdRequest do @type t :: %__MODULE__{ wf_id: String.t() } + defstruct [:wf_id] field(:wf_id, 1, type: :string) @@ -661,9 +771,10 @@ defmodule InternalApi.PlumberWF.GetProjectIdResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, project_id: String.t() } + defstruct [:status, :project_id] field(:status, 1, type: InternalApi.Status) @@ -682,6 +793,7 @@ defmodule InternalApi.PlumberWF.CreateRequest do definition_file: String.t(), requester_id: String.t() } + defstruct [:project_id, :label, :hook_id, :request_token, :definition_file, :requester_id] field(:project_id, 1, type: :string) @@ -698,9 +810,10 @@ defmodule InternalApi.PlumberWF.CreateResponse do @type t :: %__MODULE__{ wf_id: String.t(), - status: InternalApi.Status.t(), + status: InternalApi.Status.t() | nil, ppl_id: String.t() } + defstruct [:wf_id, :status, :ppl_id] field(:wf_id, 1, type: :string) @@ -708,30 +821,14 @@ defmodule InternalApi.PlumberWF.CreateResponse do field(:ppl_id, 3, type: :string) end -defmodule InternalApi.PlumberWF.TriggeredBy do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:HOOK, 0) - field(:SCHEDULE, 1) - field(:API, 2) -end - -defmodule InternalApi.PlumberWF.GitRefType do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BRANCH, 0) - field(:TAG, 1) - field(:PR, 2) -end - defmodule InternalApi.PlumberWF.WorkflowService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.PlumberWF.WorkflowService" rpc(:Schedule, InternalApi.PlumberWF.ScheduleRequest, InternalApi.PlumberWF.ScheduleResponse) + rpc(:GetPath, InternalApi.PlumberWF.GetPathRequest, InternalApi.PlumberWF.GetPathResponse) + rpc(:List, InternalApi.PlumberWF.ListRequest, InternalApi.PlumberWF.ListResponse) rpc( @@ -759,6 +856,13 @@ defmodule InternalApi.PlumberWF.WorkflowService.Service do ) rpc(:Describe, InternalApi.PlumberWF.DescribeRequest, InternalApi.PlumberWF.DescribeResponse) + + rpc( + :DescribeMany, + InternalApi.PlumberWF.DescribeManyRequest, + InternalApi.PlumberWF.DescribeManyResponse + ) + rpc(:Terminate, InternalApi.PlumberWF.TerminateRequest, InternalApi.PlumberWF.TerminateResponse) rpc( diff --git a/badge/lib/internal_api/projecthub.pb.ex b/badge/lib/internal_api/projecthub.pb.ex index 138be35c2..1462fa04d 100644 --- a/badge/lib/internal_api/projecthub.pb.ex +++ b/badge/lib/internal_api/projecthub.pb.ex @@ -1,3 +1,132 @@ +defmodule InternalApi.Projecthub.ResponseMeta.Code do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :OK | :NOT_FOUND | :FAILED_PRECONDITION + + field(:OK, 0) + + field(:NOT_FOUND, 2) + + field(:FAILED_PRECONDITION, 3) +end + +defmodule InternalApi.Projecthub.Project.Spec.Visibility do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :PRIVATE | :PUBLIC + + field(:PRIVATE, 0) + + field(:PUBLIC, 1) +end + +defmodule InternalApi.Projecthub.Project.Spec.PermissionType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + + @type t :: + integer + | :EMPTY + | :DEFAULT_BRANCH + | :NON_DEFAULT_BRANCH + | :PULL_REQUEST + | :FORKED_PULL_REQUEST + | :TAG + + field(:EMPTY, 0) + + field(:DEFAULT_BRANCH, 1) + + field(:NON_DEFAULT_BRANCH, 2) + + field(:PULL_REQUEST, 3) + + field(:FORKED_PULL_REQUEST, 4) + + field(:TAG, 5) +end + +defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + + @type t :: + integer + | :BRANCHES + | :TAGS + | :PULL_REQUESTS + | :FORKED_PULL_REQUESTS + | :DRAFT_PULL_REQUESTS + + field(:BRANCHES, 0) + + field(:TAGS, 1) + + field(:PULL_REQUESTS, 2) + + field(:FORKED_PULL_REQUESTS, 3) + + field(:DRAFT_PULL_REQUESTS, 4) +end + +defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :BLOCK | :PIPELINE + + field(:BLOCK, 0) + + field(:PIPELINE, 1) +end + +defmodule InternalApi.Projecthub.Project.Spec.Scheduler.Status do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :STATUS_UNSPECIFIED | :STATUS_INACTIVE | :STATUS_ACTIVE + + field(:STATUS_UNSPECIFIED, 0) + + field(:STATUS_INACTIVE, 1) + + field(:STATUS_ACTIVE, 2) +end + +defmodule InternalApi.Projecthub.Project.Spec.Task.Status do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :STATUS_UNSPECIFIED | :STATUS_INACTIVE | :STATUS_ACTIVE + + field(:STATUS_UNSPECIFIED, 0) + + field(:STATUS_INACTIVE, 1) + + field(:STATUS_ACTIVE, 2) +end + +defmodule InternalApi.Projecthub.Project.Status.State do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :INITIALIZING | :READY | :ERROR | :ONBOARDING + + field(:INITIALIZING, 0) + + field(:READY, 1) + + field(:ERROR, 2) + + field(:ONBOARDING, 3) +end + +defmodule InternalApi.Projecthub.ListKeysetRequest.Direction do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :NEXT | :PREVIOUS + + field(:NEXT, 0) + + field(:PREVIOUS, 1) +end + defmodule InternalApi.Projecthub.RequestMeta do @moduledoc false use Protobuf, syntax: :proto3 @@ -9,6 +138,7 @@ defmodule InternalApi.Projecthub.RequestMeta do org_id: String.t(), user_id: String.t() } + defstruct [:api_version, :kind, :req_id, :org_id, :user_id] field(:api_version, 1, type: :string) @@ -18,6 +148,21 @@ defmodule InternalApi.Projecthub.RequestMeta do field(:user_id, 5, type: :string) end +defmodule InternalApi.Projecthub.ResponseMeta.Status do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + code: InternalApi.Projecthub.ResponseMeta.Code.t(), + message: String.t() + } + + defstruct [:code, :message] + + field(:code, 1, type: InternalApi.Projecthub.ResponseMeta.Code, enum: true) + field(:message, 2, type: :string) +end + defmodule InternalApi.Projecthub.ResponseMeta do @moduledoc false use Protobuf, syntax: :proto3 @@ -28,8 +173,9 @@ defmodule InternalApi.Projecthub.ResponseMeta do req_id: String.t(), org_id: String.t(), user_id: String.t(), - status: InternalApi.Projecthub.ResponseMeta.Status.t() + status: InternalApi.Projecthub.ResponseMeta.Status.t() | nil } + defstruct [:api_version, :kind, :req_id, :org_id, :user_id, :status] field(:api_version, 1, type: :string) @@ -40,29 +186,6 @@ defmodule InternalApi.Projecthub.ResponseMeta do field(:status, 6, type: InternalApi.Projecthub.ResponseMeta.Status) end -defmodule InternalApi.Projecthub.ResponseMeta.Status do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - code: integer, - message: String.t() - } - defstruct [:code, :message] - - field(:code, 1, type: InternalApi.Projecthub.ResponseMeta.Code, enum: true) - field(:message, 2, type: :string) -end - -defmodule InternalApi.Projecthub.ResponseMeta.Code do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:OK, 0) - field(:NOT_FOUND, 2) - field(:FAILED_PRECONDITION, 3) -end - defmodule InternalApi.Projecthub.PaginationRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -71,6 +194,7 @@ defmodule InternalApi.Projecthub.PaginationRequest do page: integer, page_size: integer } + defstruct [:page, :page_size] field(:page, 1, type: :int32) @@ -87,6 +211,7 @@ defmodule InternalApi.Projecthub.PaginationResponse do total_entries: integer, total_pages: integer } + defstruct [:page_number, :page_size, :total_entries, :total_pages] field(:page_number, 1, type: :int32) @@ -95,22 +220,6 @@ defmodule InternalApi.Projecthub.PaginationResponse do field(:total_pages, 4, type: :int32) end -defmodule InternalApi.Projecthub.Project do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.Project.Metadata.t(), - spec: InternalApi.Projecthub.Project.Spec.t(), - status: InternalApi.Projecthub.Project.Status.t() - } - defstruct [:metadata, :spec, :status] - - field(:metadata, 1, type: InternalApi.Projecthub.Project.Metadata) - field(:spec, 2, type: InternalApi.Projecthub.Project.Spec) - field(:status, 3, type: InternalApi.Projecthub.Project.Status) -end - defmodule InternalApi.Projecthub.Project.Metadata do @moduledoc false use Protobuf, syntax: :proto3 @@ -121,8 +230,9 @@ defmodule InternalApi.Projecthub.Project.Metadata do owner_id: String.t(), org_id: String.t(), description: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t() | nil } + defstruct [:name, :id, :owner_id, :org_id, :description, :created_at] field(:name, 1, type: :string) @@ -133,48 +243,71 @@ defmodule InternalApi.Projecthub.Project.Metadata do field(:created_at, 6, type: Google.Protobuf.Timestamp) end -defmodule InternalApi.Projecthub.Project.Spec do +defmodule InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - repository: InternalApi.Projecthub.Project.Spec.Repository.t(), - schedulers: [InternalApi.Projecthub.Project.Spec.Scheduler.t()], - private: boolean, - public: boolean, - visibility: integer, - debug_permissions: [integer], - attach_permissions: [integer] + allowed_secrets: [String.t()], + allowed_contributors: [String.t()] } - defstruct [ - :repository, - :schedulers, - :private, - :public, - :visibility, - :debug_permissions, - :attach_permissions - ] - field(:repository, 1, type: InternalApi.Projecthub.Project.Spec.Repository) - field(:schedulers, 2, repeated: true, type: InternalApi.Projecthub.Project.Spec.Scheduler) - field(:private, 3, type: :bool) - field(:public, 4, type: :bool) - field(:visibility, 5, type: InternalApi.Projecthub.Project.Spec.Visibility, enum: true) + defstruct [:allowed_secrets, :allowed_contributors] - field(:debug_permissions, 6, - repeated: true, - type: InternalApi.Projecthub.Project.Spec.PermissionType, + field(:allowed_secrets, 1, repeated: true, type: :string) + field(:allowed_contributors, 2, repeated: true, type: :string) +end + +defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + path: String.t(), + level: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level.t() + } + + defstruct [:path, :level] + + field(:path, 1, type: :string) + + field(:level, 2, + type: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level, enum: true ) +end - field(:attach_permissions, 7, +defmodule InternalApi.Projecthub.Project.Spec.Repository.Status do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + pipeline_files: [InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.t()] + } + + defstruct [:pipeline_files] + + field(:pipeline_files, 1, repeated: true, - type: InternalApi.Projecthub.Project.Spec.PermissionType, - enum: true + type: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile ) end +defmodule InternalApi.Projecthub.Project.Spec.Repository.Whitelist do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + branches: [String.t()], + tags: [String.t()] + } + + defstruct [:branches, :tags] + + field(:branches, 1, repeated: true, type: :string) + field(:tags, 2, repeated: true, type: :string) +end + defmodule InternalApi.Projecthub.Project.Spec.Repository do @moduledoc false use Protobuf, syntax: :proto3 @@ -184,16 +317,19 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository do url: String.t(), name: String.t(), owner: String.t(), - run_on: [integer], + run_on: [[InternalApi.Projecthub.Project.Spec.Repository.RunType.t()]], forked_pull_requests: - InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.t(), + InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.t() | nil, pipeline_file: String.t(), - status: InternalApi.Projecthub.Project.Spec.Repository.Status.t(), - whitelist: InternalApi.Projecthub.Project.Spec.Repository.Whitelist.t(), + status: InternalApi.Projecthub.Project.Spec.Repository.Status.t() | nil, + whitelist: InternalApi.Projecthub.Project.Spec.Repository.Whitelist.t() | nil, public: boolean, - integration_type: integer, - connected: boolean + integration_type: InternalApi.RepositoryIntegrator.IntegrationType.t(), + connected: boolean, + id: String.t(), + default_branch: String.t() } + defstruct [ :run_present, :url, @@ -206,7 +342,9 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository do :whitelist, :public, :integration_type, - :connected + :connected, + :id, + :default_branch ] oneof(:run_present, 0) @@ -231,88 +369,55 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository do field(:public, 10, type: :bool) field(:integration_type, 11, type: InternalApi.RepositoryIntegrator.IntegrationType, enum: true) field(:connected, 12, type: :bool) + field(:id, 13, type: :string) + field(:default_branch, 14, type: :string) end -defmodule InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - allowed_secrets: [String.t()], - allowed_contributors: [String.t()] - } - defstruct [:allowed_secrets, :allowed_contributors] - - field(:allowed_secrets, 1, repeated: true, type: :string) - field(:allowed_contributors, 2, repeated: true, type: :string) -end - -defmodule InternalApi.Projecthub.Project.Spec.Repository.Status do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - pipeline_files: [InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.t()] - } - defstruct [:pipeline_files] - - field(:pipeline_files, 1, - repeated: true, - type: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile - ) -end - -defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile do +defmodule InternalApi.Projecthub.Project.Spec.Scheduler do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - path: String.t(), - level: integer + id: String.t(), + name: String.t(), + branch: String.t(), + at: String.t(), + pipeline_file: String.t(), + status: InternalApi.Projecthub.Project.Spec.Scheduler.Status.t() } - defstruct [:path, :level] - - field(:path, 1, type: :string) - - field(:level, 2, - type: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level, - enum: true - ) -end -defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + defstruct [:id, :name, :branch, :at, :pipeline_file, :status] - field(:BLOCK, 0) - field(:PIPELINE, 1) + field(:id, 1, type: :string) + field(:name, 2, type: :string) + field(:branch, 3, type: :string) + field(:at, 4, type: :string) + field(:pipeline_file, 5, type: :string) + field(:status, 6, type: InternalApi.Projecthub.Project.Spec.Scheduler.Status, enum: true) end -defmodule InternalApi.Projecthub.Project.Spec.Repository.Whitelist do +defmodule InternalApi.Projecthub.Project.Spec.Task.Parameter do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - branches: [String.t()], - tags: [String.t()] + name: String.t(), + required: boolean, + description: String.t(), + default_value: String.t(), + options: [String.t()] } - defstruct [:branches, :tags] - field(:branches, 1, repeated: true, type: :string) - field(:tags, 2, repeated: true, type: :string) -end + defstruct [:name, :required, :description, :default_value, :options] -defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:BRANCHES, 0) - field(:TAGS, 1) - field(:PULL_REQUESTS, 2) - field(:FORKED_PULL_REQUESTS, 3) + field(:name, 1, type: :string) + field(:required, 2, type: :bool) + field(:description, 3, type: :string) + field(:default_value, 4, type: :string) + field(:options, 5, repeated: true, type: :string) end -defmodule InternalApi.Projecthub.Project.Spec.Scheduler do +defmodule InternalApi.Projecthub.Project.Spec.Task do @moduledoc false use Protobuf, syntax: :proto3 @@ -321,114 +426,200 @@ defmodule InternalApi.Projecthub.Project.Spec.Scheduler do name: String.t(), branch: String.t(), at: String.t(), - pipeline_file: String.t() + pipeline_file: String.t(), + status: InternalApi.Projecthub.Project.Spec.Task.Status.t(), + recurring: boolean, + parameters: [InternalApi.Projecthub.Project.Spec.Task.Parameter.t()], + description: String.t() } - defstruct [:id, :name, :branch, :at, :pipeline_file] + + defstruct [ + :id, + :name, + :branch, + :at, + :pipeline_file, + :status, + :recurring, + :parameters, + :description + ] field(:id, 1, type: :string) field(:name, 2, type: :string) field(:branch, 3, type: :string) field(:at, 4, type: :string) field(:pipeline_file, 5, type: :string) + field(:status, 6, type: InternalApi.Projecthub.Project.Spec.Task.Status, enum: true) + field(:recurring, 7, type: :bool) + field(:parameters, 8, repeated: true, type: InternalApi.Projecthub.Project.Spec.Task.Parameter) + field(:description, 9, type: :string) end -defmodule InternalApi.Projecthub.Project.Spec.Visibility do +defmodule InternalApi.Projecthub.Project.Spec do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:PRIVATE, 0) - field(:PUBLIC, 1) + @type t :: %__MODULE__{ + repository: InternalApi.Projecthub.Project.Spec.Repository.t() | nil, + schedulers: [InternalApi.Projecthub.Project.Spec.Scheduler.t()], + private: boolean, + public: boolean, + visibility: InternalApi.Projecthub.Project.Spec.Visibility.t(), + debug_permissions: [[InternalApi.Projecthub.Project.Spec.PermissionType.t()]], + attach_permissions: [[InternalApi.Projecthub.Project.Spec.PermissionType.t()]], + custom_permissions: boolean, + artifact_store_id: String.t(), + cache_id: String.t(), + docker_registry_id: String.t(), + tasks: [InternalApi.Projecthub.Project.Spec.Task.t()] + } + + defstruct [ + :repository, + :schedulers, + :private, + :public, + :visibility, + :debug_permissions, + :attach_permissions, + :custom_permissions, + :artifact_store_id, + :cache_id, + :docker_registry_id, + :tasks + ] + + field(:repository, 1, type: InternalApi.Projecthub.Project.Spec.Repository) + field(:schedulers, 2, repeated: true, type: InternalApi.Projecthub.Project.Spec.Scheduler) + field(:private, 3, type: :bool) + field(:public, 4, type: :bool) + field(:visibility, 5, type: InternalApi.Projecthub.Project.Spec.Visibility, enum: true) + + field(:debug_permissions, 6, + repeated: true, + type: InternalApi.Projecthub.Project.Spec.PermissionType, + enum: true + ) + + field(:attach_permissions, 7, + repeated: true, + type: InternalApi.Projecthub.Project.Spec.PermissionType, + enum: true + ) + + field(:custom_permissions, 8, type: :bool) + field(:artifact_store_id, 9, type: :string) + field(:cache_id, 10, type: :string) + field(:docker_registry_id, 11, type: :string) + field(:tasks, 12, repeated: true, type: InternalApi.Projecthub.Project.Spec.Task) end -defmodule InternalApi.Projecthub.Project.Spec.PermissionType do +defmodule InternalApi.Projecthub.Project.Status.Cache do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:EMPTY, 0) - field(:DEFAULT_BRANCH, 1) - field(:NON_DEFAULT_BRANCH, 2) - field(:PULL_REQUEST, 3) - field(:FORKED_PULL_REQUEST, 4) - field(:TAG, 5) + @type t :: %__MODULE__{ + state: InternalApi.Projecthub.Project.Status.State.t() + } + + defstruct [:state] + + field(:state, 1, type: InternalApi.Projecthub.Project.Status.State, enum: true) end -defmodule InternalApi.Projecthub.Project.Status do +defmodule InternalApi.Projecthub.Project.Status.ArtifactStore do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - state: integer, - state_reason: String.t(), - cache: InternalApi.Projecthub.Project.Status.Cache.t(), - artifact_store: InternalApi.Projecthub.Project.Status.ArtifactStore.t(), - repository: InternalApi.Projecthub.Project.Status.Repository.t(), - analysis: InternalApi.Projecthub.Project.Status.Analysis.t() + state: InternalApi.Projecthub.Project.Status.State.t() } - defstruct [:state, :state_reason, :cache, :artifact_store, :repository, :analysis] + + defstruct [:state] field(:state, 1, type: InternalApi.Projecthub.Project.Status.State, enum: true) - field(:state_reason, 2, type: :string) - field(:cache, 3, type: InternalApi.Projecthub.Project.Status.Cache) - field(:artifact_store, 4, type: InternalApi.Projecthub.Project.Status.ArtifactStore) - field(:repository, 5, type: InternalApi.Projecthub.Project.Status.Repository) - field(:analysis, 6, type: InternalApi.Projecthub.Project.Status.Analysis) end -defmodule InternalApi.Projecthub.Project.Status.Cache do +defmodule InternalApi.Projecthub.Project.Status.Repository do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - state: integer + state: InternalApi.Projecthub.Project.Status.State.t() } + defstruct [:state] field(:state, 1, type: InternalApi.Projecthub.Project.Status.State, enum: true) end -defmodule InternalApi.Projecthub.Project.Status.ArtifactStore do +defmodule InternalApi.Projecthub.Project.Status.Analysis do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - state: integer + state: InternalApi.Projecthub.Project.Status.State.t() } + defstruct [:state] field(:state, 1, type: InternalApi.Projecthub.Project.Status.State, enum: true) end -defmodule InternalApi.Projecthub.Project.Status.Repository do +defmodule InternalApi.Projecthub.Project.Status.Permissions do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - state: integer + state: InternalApi.Projecthub.Project.Status.State.t() } + defstruct [:state] field(:state, 1, type: InternalApi.Projecthub.Project.Status.State, enum: true) end -defmodule InternalApi.Projecthub.Project.Status.Analysis do +defmodule InternalApi.Projecthub.Project.Status do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - state: integer + state: InternalApi.Projecthub.Project.Status.State.t(), + state_reason: String.t(), + cache: InternalApi.Projecthub.Project.Status.Cache.t() | nil, + artifact_store: InternalApi.Projecthub.Project.Status.ArtifactStore.t() | nil, + repository: InternalApi.Projecthub.Project.Status.Repository.t() | nil, + analysis: InternalApi.Projecthub.Project.Status.Analysis.t() | nil, + permissions: InternalApi.Projecthub.Project.Status.Permissions.t() | nil } - defstruct [:state] + + defstruct [:state, :state_reason, :cache, :artifact_store, :repository, :analysis, :permissions] field(:state, 1, type: InternalApi.Projecthub.Project.Status.State, enum: true) + field(:state_reason, 2, type: :string) + field(:cache, 3, type: InternalApi.Projecthub.Project.Status.Cache) + field(:artifact_store, 4, type: InternalApi.Projecthub.Project.Status.ArtifactStore) + field(:repository, 5, type: InternalApi.Projecthub.Project.Status.Repository) + field(:analysis, 6, type: InternalApi.Projecthub.Project.Status.Analysis) + field(:permissions, 7, type: InternalApi.Projecthub.Project.Status.Permissions) end -defmodule InternalApi.Projecthub.Project.Status.State do +defmodule InternalApi.Projecthub.Project do @moduledoc false - use Protobuf, enum: true, syntax: :proto3 + use Protobuf, syntax: :proto3 - field(:INITIALIZING, 0) - field(:READY, 1) - field(:ERROR, 2) + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.Project.Metadata.t() | nil, + spec: InternalApi.Projecthub.Project.Spec.t() | nil, + status: InternalApi.Projecthub.Project.Status.t() | nil + } + + defstruct [:metadata, :spec, :status] + + field(:metadata, 1, type: InternalApi.Projecthub.Project.Metadata) + field(:spec, 2, type: InternalApi.Projecthub.Project.Spec) + field(:status, 3, type: InternalApi.Projecthub.Project.Status) end defmodule InternalApi.Projecthub.ListRequest do @@ -436,17 +627,20 @@ defmodule InternalApi.Projecthub.ListRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), - pagination: InternalApi.Projecthub.PaginationRequest.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + pagination: InternalApi.Projecthub.PaginationRequest.t() | nil, owner_id: String.t(), - repo_url: String.t() + repo_url: String.t(), + soft_deleted: boolean } - defstruct [:metadata, :pagination, :owner_id, :repo_url] + + defstruct [:metadata, :pagination, :owner_id, :repo_url, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string) field(:repo_url, 4, type: :string) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.ListResponse do @@ -454,10 +648,11 @@ defmodule InternalApi.Projecthub.ListResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - pagination: InternalApi.Projecthub.PaginationResponse.t(), + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + pagination: InternalApi.Projecthub.PaginationResponse.t() | nil, projects: [InternalApi.Projecthub.Project.t()] } + defstruct [:metadata, :pagination, :projects] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -465,22 +660,69 @@ defmodule InternalApi.Projecthub.ListResponse do field(:projects, 3, repeated: true, type: InternalApi.Projecthub.Project) end +defmodule InternalApi.Projecthub.ListKeysetRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + page_size: integer, + page_token: String.t(), + direction: InternalApi.Projecthub.ListKeysetRequest.Direction.t(), + owner_id: String.t(), + repo_url: String.t(), + created_after: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:metadata, :page_size, :page_token, :direction, :owner_id, :repo_url, :created_after] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:page_size, 2, type: :int32) + field(:page_token, 3, type: :string) + field(:direction, 4, type: InternalApi.Projecthub.ListKeysetRequest.Direction, enum: true) + field(:owner_id, 5, type: :string) + field(:repo_url, 6, type: :string) + field(:created_after, 7, type: Google.Protobuf.Timestamp) +end + +defmodule InternalApi.Projecthub.ListKeysetResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + projects: [InternalApi.Projecthub.Project.t()], + next_page_token: String.t(), + previous_page_token: String.t() + } + + defstruct [:metadata, :projects, :next_page_token, :previous_page_token] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:projects, 2, repeated: true, type: InternalApi.Projecthub.Project) + field(:next_page_token, 3, type: :string) + field(:previous_page_token, 4, type: :string) +end + defmodule InternalApi.Projecthub.DescribeRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t(), name: String.t(), - detailed: boolean + detailed: boolean, + soft_deleted: boolean } - defstruct [:metadata, :id, :name, :detailed] + + defstruct [:metadata, :id, :name, :detailed, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.DescribeResponse do @@ -488,9 +730,10 @@ defmodule InternalApi.Projecthub.DescribeResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil } + defstruct [:metadata, :project] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -502,13 +745,16 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), - ids: [String.t()] + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + ids: [String.t()], + soft_deleted: boolean } - defstruct [:metadata, :ids] + + defstruct [:metadata, :ids, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool) end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -516,9 +762,10 @@ defmodule InternalApi.Projecthub.DescribeManyResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, projects: [InternalApi.Projecthub.Project.t()] } + defstruct [:metadata, :projects] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -530,13 +777,16 @@ defmodule InternalApi.Projecthub.CreateRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil, + skip_onboarding: boolean } - defstruct [:metadata, :project] + + defstruct [:metadata, :project, :skip_onboarding] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:project, 2, type: InternalApi.Projecthub.Project) + field(:skip_onboarding, 3, type: :bool) end defmodule InternalApi.Projecthub.CreateResponse do @@ -544,9 +794,10 @@ defmodule InternalApi.Projecthub.CreateResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil } + defstruct [:metadata, :project] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -558,13 +809,16 @@ defmodule InternalApi.Projecthub.UpdateRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil, + omit_schedulers_and_tasks: boolean } - defstruct [:metadata, :project] + + defstruct [:metadata, :project, :omit_schedulers_and_tasks] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:project, 2, type: InternalApi.Projecthub.Project) + field(:omit_schedulers_and_tasks, 3, type: :bool) end defmodule InternalApi.Projecthub.UpdateResponse do @@ -572,9 +826,10 @@ defmodule InternalApi.Projecthub.UpdateResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil } + defstruct [:metadata, :project] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -586,10 +841,11 @@ defmodule InternalApi.Projecthub.DestroyRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t(), name: String.t() } + defstruct [:metadata, :id, :name] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) @@ -602,67 +858,85 @@ defmodule InternalApi.Projecthub.DestroyResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil } + defstruct [:metadata] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end -defmodule InternalApi.Projecthub.UsersRequest do +defmodule InternalApi.Projecthub.RestoreRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t() } + defstruct [:metadata, :id] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:id, 2, type: :string) end -defmodule InternalApi.Projecthub.UsersResponse do +defmodule InternalApi.Projecthub.RestoreResponse do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - users: [InternalApi.User.User.t()] + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil } - defstruct [:metadata, :users] + + defstruct [:metadata] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) - field(:users, 2, repeated: true, type: InternalApi.User.User) end -defmodule InternalApi.Projecthub.CheckDeployKeyRequest do +defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t() } + defstruct [:metadata, :id] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:id, 2, type: :string) end -defmodule InternalApi.Projecthub.CheckDeployKeyResponse do +defmodule InternalApi.Projecthub.UsersResponse do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - deploy_key: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + users: [InternalApi.User.User.t()] } - defstruct [:metadata, :deploy_key] + + defstruct [:metadata, :users] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) - field(:deploy_key, 2, type: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey) + field(:users, 2, repeated: true, type: InternalApi.User.User) +end + +defmodule InternalApi.Projecthub.CheckDeployKeyRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) end defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @@ -672,41 +946,46 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end -defmodule InternalApi.Projecthub.RegenerateDeployKeyRequest do +defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), - id: String.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + deploy_key: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey.t() | nil } - defstruct [:metadata, :id] - field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) - field(:id, 2, type: :string) + defstruct [:metadata, :deploy_key] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:deploy_key, 2, type: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey) end -defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do +defmodule InternalApi.Projecthub.RegenerateDeployKeyRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - deploy_key: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey.t() + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() } - defstruct [:metadata, :deploy_key] - field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) - field(:deploy_key, 2, type: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey) + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @@ -716,13 +995,31 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + deploy_key: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey.t() | nil + } + + defstruct [:metadata, :deploy_key] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:deploy_key, 2, type: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey) end defmodule InternalApi.Projecthub.CheckWebhookRequest do @@ -730,9 +1027,10 @@ defmodule InternalApi.Projecthub.CheckWebhookRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t() } + defstruct [:metadata, :id] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) @@ -744,9 +1042,10 @@ defmodule InternalApi.Projecthub.CheckWebhookResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - webhook: InternalApi.Projecthub.Webhook.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + webhook: InternalApi.Projecthub.Webhook.t() | nil } + defstruct [:metadata, :webhook] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -758,9 +1057,10 @@ defmodule InternalApi.Projecthub.RegenerateWebhookRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t() } + defstruct [:metadata, :id] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) @@ -772,9 +1072,10 @@ defmodule InternalApi.Projecthub.RegenerateWebhookResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - webhook: InternalApi.Projecthub.Webhook.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + webhook: InternalApi.Projecthub.Webhook.t() | nil } + defstruct [:metadata, :webhook] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -788,6 +1089,7 @@ defmodule InternalApi.Projecthub.Webhook do @type t :: %__MODULE__{ url: String.t() } + defstruct [:url] field(:url, 1, type: :string) @@ -798,10 +1100,11 @@ defmodule InternalApi.Projecthub.ChangeProjectOwnerRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t(), user_id: String.t() } + defstruct [:metadata, :id, :user_id] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) @@ -814,8 +1117,9 @@ defmodule InternalApi.Projecthub.ChangeProjectOwnerResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil } + defstruct [:metadata] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -826,9 +1130,10 @@ defmodule InternalApi.Projecthub.ForkAndCreateRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil } + defstruct [:metadata, :project] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) @@ -840,9 +1145,10 @@ defmodule InternalApi.Projecthub.ForkAndCreateResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t(), - project: InternalApi.Projecthub.Project.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + project: InternalApi.Projecthub.Project.t() | nil } + defstruct [:metadata, :project] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) @@ -854,9 +1160,10 @@ defmodule InternalApi.Projecthub.GithubAppSwitchRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.RequestMeta.t(), + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t() } + defstruct [:metadata, :id] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) @@ -868,22 +1175,82 @@ defmodule InternalApi.Projecthub.GithubAppSwitchResponse do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - metadata: InternalApi.Projecthub.ResponseMeta.t() + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil + } + + defstruct [:metadata] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + +defmodule InternalApi.Projecthub.FinishOnboardingRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.FinishOnboardingResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil } + defstruct [:metadata] field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + secret: String.t() + } + + defstruct [:metadata, :secret] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ project_id: String.t(), - timestamp: Google.Protobuf.Timestamp.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil, org_id: String.t() } + defstruct [:project_id, :timestamp, :org_id] field(:project_id, 1, type: :string) @@ -897,9 +1264,27 @@ defmodule InternalApi.Projecthub.ProjectDeleted do @type t :: %__MODULE__{ project_id: String.t(), - timestamp: Google.Protobuf.Timestamp.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil, org_id: String.t() } + + defstruct [:project_id, :timestamp, :org_id] + + field(:project_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string) +end + +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil, + org_id: String.t() + } + defstruct [:project_id, :timestamp, :org_id] field(:project_id, 1, type: :string) @@ -914,8 +1299,9 @@ defmodule InternalApi.Projecthub.ProjectUpdated do @type t :: %__MODULE__{ project_id: String.t(), org_id: String.t(), - timestamp: Google.Protobuf.Timestamp.t() + timestamp: Google.Protobuf.Timestamp.t() | nil } + defstruct [:project_id, :org_id, :timestamp] field(:project_id, 1, type: :string) @@ -929,8 +1315,9 @@ defmodule InternalApi.Projecthub.CollaboratorsChanged do @type t :: %__MODULE__{ project_id: String.t(), - timestamp: Google.Protobuf.Timestamp.t() + timestamp: Google.Protobuf.Timestamp.t() | nil } + defstruct [:project_id, :timestamp] field(:project_id, 1, type: :string) @@ -942,6 +1329,13 @@ defmodule InternalApi.Projecthub.ProjectService.Service do use GRPC.Service, name: "InternalApi.Projecthub.ProjectService" rpc(:List, InternalApi.Projecthub.ListRequest, InternalApi.Projecthub.ListResponse) + + rpc( + :ListKeyset, + InternalApi.Projecthub.ListKeysetRequest, + InternalApi.Projecthub.ListKeysetResponse + ) + rpc(:Describe, InternalApi.Projecthub.DescribeRequest, InternalApi.Projecthub.DescribeResponse) rpc( @@ -951,8 +1345,13 @@ defmodule InternalApi.Projecthub.ProjectService.Service do ) rpc(:Create, InternalApi.Projecthub.CreateRequest, InternalApi.Projecthub.CreateResponse) + rpc(:Update, InternalApi.Projecthub.UpdateRequest, InternalApi.Projecthub.UpdateResponse) + rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -979,6 +1378,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, @@ -996,6 +1401,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.GithubAppSwitchRequest, InternalApi.Projecthub.GithubAppSwitchResponse ) + + rpc( + :FinishOnboarding, + InternalApi.Projecthub.FinishOnboardingRequest, + InternalApi.Projecthub.FinishOnboardingResponse + ) end defmodule InternalApi.Projecthub.ProjectService.Stub do diff --git a/badge/lib/internal_api/repository_integrator.pb.ex b/badge/lib/internal_api/repository_integrator.pb.ex index 848755c16..d16dc51b9 100644 --- a/badge/lib/internal_api/repository_integrator.pb.ex +++ b/badge/lib/internal_api/repository_integrator.pb.ex @@ -1,3 +1,31 @@ +defmodule InternalApi.RepositoryIntegrator.IntegrationType do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :GITHUB_OAUTH_TOKEN | :GITHUB_APP | :BITBUCKET | :GITLAB | :GIT + + field(:GITHUB_OAUTH_TOKEN, 0) + + field(:GITHUB_APP, 1) + + field(:BITBUCKET, 2) + + field(:GITLAB, 3) + + field(:GIT, 4) +end + +defmodule InternalApi.RepositoryIntegrator.IntegrationScope do + @moduledoc false + use Protobuf, enum: true, syntax: :proto3 + @type t :: integer | :FULL_CONNECTION | :ONLY_PUBLIC | :NO_CONNECTION + + field(:FULL_CONNECTION, 0) + + field(:ONLY_PUBLIC, 1) + + field(:NO_CONNECTION, 2) +end + defmodule InternalApi.RepositoryIntegrator.GetTokenRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -5,9 +33,10 @@ defmodule InternalApi.RepositoryIntegrator.GetTokenRequest do @type t :: %__MODULE__{ user_id: String.t(), repository_slug: String.t(), - integration_type: integer, + integration_type: InternalApi.RepositoryIntegrator.IntegrationType.t(), project_id: String.t() } + defstruct [:user_id, :repository_slug, :integration_type, :project_id] field(:user_id, 1, type: :string) @@ -22,8 +51,9 @@ defmodule InternalApi.RepositoryIntegrator.GetTokenResponse do @type t :: %__MODULE__{ token: String.t(), - expires_at: Google.Protobuf.Timestamp.t() + expires_at: Google.Protobuf.Timestamp.t() | nil } + defstruct [:token, :expires_at] field(:token, 1, type: :string) @@ -37,6 +67,7 @@ defmodule InternalApi.RepositoryIntegrator.CheckTokenRequest do @type t :: %__MODULE__{ project_id: String.t() } + defstruct [:project_id] field(:project_id, 1, type: :string) @@ -48,16 +79,14 @@ defmodule InternalApi.RepositoryIntegrator.CheckTokenResponse do @type t :: %__MODULE__{ valid: boolean, - integration_scope: integer + integration_scope: InternalApi.RepositoryIntegrator.IntegrationScope.t() } + defstruct [:valid, :integration_scope] field(:valid, 1, type: :bool) - field(:integration_scope, 2, - type: InternalApi.RepositoryIntegrator.IntegrationScope, - enum: true - ) + field(:integration_scope, 2, type: InternalApi.RepositoryIntegrator.IntegrationScope, enum: true) end defmodule InternalApi.RepositoryIntegrator.PreheatFileCacheRequest do @@ -69,6 +98,7 @@ defmodule InternalApi.RepositoryIntegrator.PreheatFileCacheRequest do path: String.t(), ref: String.t() } + defstruct [:project_id, :path, :ref] field(:project_id, 1, type: :string) @@ -85,6 +115,7 @@ defmodule InternalApi.RepositoryIntegrator.GetFileRequest do path: String.t(), ref: String.t() } + defstruct [:project_id, :path, :ref] field(:project_id, 1, type: :string) @@ -99,6 +130,7 @@ defmodule InternalApi.RepositoryIntegrator.GetFileResponse do @type t :: %__MODULE__{ content: String.t() } + defstruct [:content] field(:content, 1, type: :string) @@ -111,6 +143,7 @@ defmodule InternalApi.RepositoryIntegrator.GithubInstallationInfoRequest do @type t :: %__MODULE__{ project_id: String.t() } + defstruct [:project_id] field(:project_id, 1, type: :string) @@ -125,6 +158,7 @@ defmodule InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse do application_url: String.t(), installation_url: String.t() } + defstruct [:installation_id, :application_url, :installation_url] field(:installation_id, 1, type: :int64) @@ -132,14 +166,31 @@ defmodule InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse do field(:installation_url, 3, type: :string) end +defmodule InternalApi.RepositoryIntegrator.InitGithubInstallationRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + @type t :: %__MODULE__{} + + defstruct [] +end + +defmodule InternalApi.RepositoryIntegrator.InitGithubInstallationResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + @type t :: %__MODULE__{} + + defstruct [] +end + defmodule InternalApi.RepositoryIntegrator.GetRepositoriesRequest do @moduledoc false use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ user_id: String.t(), - integration_type: integer + integration_type: InternalApi.RepositoryIntegrator.IntegrationType.t() } + defstruct [:user_id, :integration_type] field(:user_id, 1, type: :string) @@ -153,6 +204,7 @@ defmodule InternalApi.RepositoryIntegrator.GetRepositoriesResponse do @type t :: %__MODULE__{ repositories: [InternalApi.RepositoryIntegrator.Repository.t()] } + defstruct [:repositories] field(:repositories, 1, repeated: true, type: InternalApi.RepositoryIntegrator.Repository) @@ -169,6 +221,7 @@ defmodule InternalApi.RepositoryIntegrator.Repository do url: String.t(), description: String.t() } + defstruct [:addable, :name, :full_name, :url, :description] field(:addable, 1, type: :bool) @@ -178,24 +231,6 @@ defmodule InternalApi.RepositoryIntegrator.Repository do field(:description, 5, type: :string) end -defmodule InternalApi.RepositoryIntegrator.IntegrationType do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:GITHUB_OAUTH_TOKEN, 0) - field(:GITHUB_APP, 1) - field(:BITBUCKET, 2) -end - -defmodule InternalApi.RepositoryIntegrator.IntegrationScope do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - field(:FULL_CONNECTION, 0) - field(:ONLY_PUBLIC, 1) - field(:NO_CONNECTION, 2) -end - defmodule InternalApi.RepositoryIntegrator.RepositoryIntegratorService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.RepositoryIntegrator.RepositoryIntegratorService" @@ -230,6 +265,12 @@ defmodule InternalApi.RepositoryIntegrator.RepositoryIntegratorService.Service d InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse ) + rpc( + :InitGithubInstallation, + InternalApi.RepositoryIntegrator.InitGithubInstallationRequest, + InternalApi.RepositoryIntegrator.InitGithubInstallationResponse + ) + rpc( :GetRepositories, InternalApi.RepositoryIntegrator.GetRepositoriesRequest, diff --git a/ee/gofer/lib/internal_api/plumber_w_f.workflow.pb.ex b/ee/gofer/lib/internal_api/plumber_w_f.workflow.pb.ex index 7e29db3ae..d0295632e 100644 --- a/ee/gofer/lib/internal_api/plumber_w_f.workflow.pb.ex +++ b/ee/gofer/lib/internal_api/plumber_w_f.workflow.pb.ex @@ -25,6 +25,8 @@ defmodule InternalApi.PlumberWF.ScheduleRequest.ServiceType do field :LOCAL, 1 field :SNAPSHOT, 2 field :BITBUCKET, 3 + field :GITLAB, 4 + field :GIT, 5 end defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest.Order do diff --git a/ee/gofer/lib/internal_api/projecthub.pb.ex b/ee/gofer/lib/internal_api/projecthub.pb.ex index 3b6f35acb..1b14b3442 100644 --- a/ee/gofer/lib/internal_api/projecthub.pb.ex +++ b/ee/gofer/lib/internal_api/projecthub.pb.ex @@ -35,6 +35,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field :TAGS, 1 field :PULL_REQUESTS, 2 field :FORKED_PULL_REQUESTS, 3 + field :DRAFT_PULL_REQUESTS, 4 end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -70,6 +71,7 @@ defmodule InternalApi.Projecthub.Project.Status.State do field :INITIALIZING, 0 field :READY, 1 field :ERROR, 2 + field :ONBOARDING, 3 end defmodule InternalApi.Projecthub.ListKeysetRequest.Direction do @@ -350,6 +352,7 @@ defmodule InternalApi.Projecthub.ListRequest do field :pagination, 2, type: InternalApi.Projecthub.PaginationRequest field :owner_id, 3, type: :string, json_name: "ownerId" field :repo_url, 4, type: :string, json_name: "repoUrl" + field :soft_deleted, 5, type: :bool, json_name: "softDeleted" end defmodule InternalApi.Projecthub.ListResponse do @@ -371,6 +374,7 @@ defmodule InternalApi.Projecthub.ListKeysetRequest do field :direction, 4, type: InternalApi.Projecthub.ListKeysetRequest.Direction, enum: true field :owner_id, 5, type: :string, json_name: "ownerId" field :repo_url, 6, type: :string, json_name: "repoUrl" + field :created_after, 7, type: Google.Protobuf.Timestamp, json_name: "createdAfter" end defmodule InternalApi.Projecthub.ListKeysetResponse do @@ -391,6 +395,7 @@ defmodule InternalApi.Projecthub.DescribeRequest do field :id, 2, type: :string field :name, 3, type: :string field :detailed, 4, type: :bool + field :soft_deleted, 5, type: :bool, json_name: "softDeleted" end defmodule InternalApi.Projecthub.DescribeResponse do @@ -407,6 +412,7 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :ids, 2, repeated: true, type: :string + field :soft_deleted, 3, type: :bool, json_name: "softDeleted" end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -423,6 +429,7 @@ defmodule InternalApi.Projecthub.CreateRequest do field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :project, 2, type: InternalApi.Projecthub.Project + field :skip_onboarding, 3, type: :bool, json_name: "skipOnboarding" end defmodule InternalApi.Projecthub.CreateResponse do @@ -466,6 +473,21 @@ defmodule InternalApi.Projecthub.DestroyResponse do field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -497,6 +519,7 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt" + field :public_key, 4, type: :string, json_name: "publicKey" end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -525,6 +548,7 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt" + field :public_key, 4, type: :string, json_name: "publicKey" end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -624,6 +648,37 @@ defmodule InternalApi.Projecthub.GithubAppSwitchResponse do field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta end +defmodule InternalApi.Projecthub.FinishOnboardingRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.FinishOnboardingResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta + field :secret, 2, type: :string +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -642,6 +697,15 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field :org_id, 3, type: :string, json_name: "orgId" end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :project_id, 1, type: :string, json_name: "projectId" + field :timestamp, 2, type: Google.Protobuf.Timestamp + field :org_id, 3, type: :string, json_name: "orgId" +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -683,6 +747,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc :Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse + rpc :Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse + rpc :Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse rpc :CheckDeployKey, @@ -701,6 +767,10 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookRequest, InternalApi.Projecthub.RegenerateWebhookResponse + rpc :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + rpc :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, InternalApi.Projecthub.ChangeProjectOwnerResponse @@ -712,6 +782,10 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc :GithubAppSwitch, InternalApi.Projecthub.GithubAppSwitchRequest, InternalApi.Projecthub.GithubAppSwitchResponse + + rpc :FinishOnboarding, + InternalApi.Projecthub.FinishOnboardingRequest, + InternalApi.Projecthub.FinishOnboardingResponse end defmodule InternalApi.Projecthub.ProjectService.Stub do diff --git a/ee/gofer/lib/internal_api/rbac.pb.ex b/ee/gofer/lib/internal_api/rbac.pb.ex index a97020737..dee9b14ef 100644 --- a/ee/gofer/lib/internal_api/rbac.pb.ex +++ b/ee/gofer/lib/internal_api/rbac.pb.ex @@ -26,6 +26,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do field :ROLE_BINDING_SOURCE_GITLAB, 4 field :ROLE_BINDING_SOURCE_SCIM, 5 field :ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6 + field :ROLE_BINDING_SOURCE_SAML_JIT, 7 end defmodule InternalApi.RBAC.ListUserPermissionsRequest do @@ -216,6 +217,20 @@ defmodule InternalApi.RBAC.ListMembersResponse do field :total_pages, 2, type: :int32, json_name: "totalPages" end +defmodule InternalApi.RBAC.CountMembersRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :org_id, 1, type: :string, json_name: "orgId" +end + +defmodule InternalApi.RBAC.CountMembersResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :members, 1, type: :int32 +end + defmodule InternalApi.RBAC.SubjectRoleBinding do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -273,6 +288,18 @@ defmodule InternalApi.RBAC.Subject do field :display_name, 3, type: :string, json_name: "displayName" end +defmodule InternalApi.RBAC.RefreshCollaboratorsRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :org_id, 1, type: :string, json_name: "orgId" +end + +defmodule InternalApi.RBAC.RefreshCollaboratorsResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" +end + defmodule InternalApi.RBAC.Role do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -334,6 +361,8 @@ defmodule InternalApi.RBAC.RBAC.Service do rpc :ListMembers, InternalApi.RBAC.ListMembersRequest, InternalApi.RBAC.ListMembersResponse + rpc :CountMembers, InternalApi.RBAC.CountMembersRequest, InternalApi.RBAC.CountMembersResponse + rpc :ListAccessibleOrgs, InternalApi.RBAC.ListAccessibleOrgsRequest, InternalApi.RBAC.ListAccessibleOrgsResponse @@ -341,6 +370,10 @@ defmodule InternalApi.RBAC.RBAC.Service do rpc :ListAccessibleProjects, InternalApi.RBAC.ListAccessibleProjectsRequest, InternalApi.RBAC.ListAccessibleProjectsResponse + + rpc :RefreshCollaborators, + InternalApi.RBAC.RefreshCollaboratorsRequest, + InternalApi.RBAC.RefreshCollaboratorsResponse end defmodule InternalApi.RBAC.RBAC.Stub do diff --git a/ee/gofer/lib/internal_api/repository.pb.ex b/ee/gofer/lib/internal_api/repository.pb.ex index 8a3952e7e..7a7fb97e8 100644 --- a/ee/gofer/lib/internal_api/repository.pb.ex +++ b/ee/gofer/lib/internal_api/repository.pb.ex @@ -79,6 +79,7 @@ defmodule InternalApi.Repository.DeployKey do field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt" + field :public_key, 4, type: :string, json_name: "publicKey" end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -327,6 +328,7 @@ defmodule InternalApi.Repository.Repository do field :whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist field :hook_id, 12, type: :string, json_name: "hookId" field :default_branch, 13, type: :string, json_name: "defaultBranch" + field :connected, 14, type: :bool end defmodule InternalApi.Repository.RemoteRepository do @@ -481,6 +483,7 @@ defmodule InternalApi.Repository.CreateRequest do json_name: "commitStatus" field :whitelist, 9, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist + field :default_branch, 10, type: :string, json_name: "defaultBranch" end defmodule InternalApi.Repository.CreateResponse do @@ -522,6 +525,7 @@ defmodule InternalApi.Repository.UpdateRequest do json_name: "commitStatus" field :whitelist, 6, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist + field :default_branch, 7, type: :string, json_name: "defaultBranch" end defmodule InternalApi.Repository.UpdateResponse do @@ -556,6 +560,34 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field :valid, 1, type: :bool end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :repository_id, 1, type: :string, json_name: "repositoryId" +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :repository, 1, type: InternalApi.Repository.Repository +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :repository_id, 1, type: :string, json_name: "repositoryId" +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :secret, 1, type: :string +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false use GRPC.Service, @@ -631,6 +663,14 @@ defmodule InternalApi.Repository.RepositoryService.Service do rpc :VerifyWebhookSignature, InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse + + rpc :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + + rpc :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse end defmodule InternalApi.Repository.RepositoryService.Stub do diff --git a/ee/gofer/lib/internal_api/repository_integrator.pb.ex b/ee/gofer/lib/internal_api/repository_integrator.pb.ex index df34c63cf..1a50bf23e 100644 --- a/ee/gofer/lib/internal_api/repository_integrator.pb.ex +++ b/ee/gofer/lib/internal_api/repository_integrator.pb.ex @@ -5,6 +5,8 @@ defmodule InternalApi.RepositoryIntegrator.IntegrationType do field :GITHUB_OAUTH_TOKEN, 0 field :GITHUB_APP, 1 field :BITBUCKET, 2 + field :GITLAB, 3 + field :GIT, 4 end defmodule InternalApi.RepositoryIntegrator.IntegrationScope do @@ -99,6 +101,16 @@ defmodule InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse do field :installation_url, 3, type: :string, json_name: "installationUrl" end +defmodule InternalApi.RepositoryIntegrator.InitGithubInstallationRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" +end + +defmodule InternalApi.RepositoryIntegrator.InitGithubInstallationResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" +end + defmodule InternalApi.RepositoryIntegrator.GetRepositoriesRequest do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -155,6 +167,10 @@ defmodule InternalApi.RepositoryIntegrator.RepositoryIntegratorService.Service d InternalApi.RepositoryIntegrator.GithubInstallationInfoRequest, InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse + rpc :InitGithubInstallation, + InternalApi.RepositoryIntegrator.InitGithubInstallationRequest, + InternalApi.RepositoryIntegrator.InitGithubInstallationResponse + rpc :GetRepositories, InternalApi.RepositoryIntegrator.GetRepositoriesRequest, InternalApi.RepositoryIntegrator.GetRepositoriesResponse diff --git a/ee/gofer/lib/internal_api/secrethub.pb.ex b/ee/gofer/lib/internal_api/secrethub.pb.ex index 53a677ab1..19326b21e 100644 --- a/ee/gofer/lib/internal_api/secrethub.pb.ex +++ b/ee/gofer/lib/internal_api/secrethub.pb.ex @@ -442,6 +442,7 @@ defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenRequest do field :git_pull_request_branch, 17, type: :string, json_name: "gitPullRequestBranch" field :repo_slug, 18, type: :string, json_name: "repoSlug" field :triggerer, 19, type: :string + field :project_name, 20, type: :string, json_name: "projectName" end defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenResponse do @@ -500,6 +501,54 @@ defmodule InternalApi.Secrethub.UpdateEncryptedResponse do field :encrypted_data, 3, type: InternalApi.Secrethub.EncryptedData, json_name: "encryptedData" end +defmodule InternalApi.Secrethub.GetJWTConfigRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :org_id, 1, type: :string, json_name: "orgId" + field :project_id, 2, type: :string, json_name: "projectId" +end + +defmodule InternalApi.Secrethub.GetJWTConfigResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :org_id, 1, type: :string, json_name: "orgId" + field :project_id, 2, type: :string, json_name: "projectId" + field :claims, 3, repeated: true, type: InternalApi.Secrethub.ClaimConfig + field :is_active, 4, type: :bool, json_name: "isActive" +end + +defmodule InternalApi.Secrethub.UpdateJWTConfigRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :org_id, 1, type: :string, json_name: "orgId" + field :project_id, 2, type: :string, json_name: "projectId" + field :claims, 3, repeated: true, type: InternalApi.Secrethub.ClaimConfig + field :is_active, 4, type: :bool, json_name: "isActive" +end + +defmodule InternalApi.Secrethub.UpdateJWTConfigResponse do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :org_id, 1, type: :string, json_name: "orgId" + field :project_id, 2, type: :string, json_name: "projectId" +end + +defmodule InternalApi.Secrethub.ClaimConfig do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :name, 1, type: :string + field :description, 2, type: :string + field :is_active, 3, type: :bool, json_name: "isActive" + field :is_mandatory, 4, type: :bool, json_name: "isMandatory" + field :is_aws_tag, 5, type: :bool, json_name: "isAwsTag" + field :is_system_claim, 6, type: :bool, json_name: "isSystemClaim" +end + defmodule InternalApi.Secrethub.SecretService.Service do @moduledoc false use GRPC.Service, @@ -543,6 +592,14 @@ defmodule InternalApi.Secrethub.SecretService.Service do rpc :CheckoutMany, InternalApi.Secrethub.CheckoutManyRequest, InternalApi.Secrethub.CheckoutManyResponse + + rpc :GetJWTConfig, + InternalApi.Secrethub.GetJWTConfigRequest, + InternalApi.Secrethub.GetJWTConfigResponse + + rpc :UpdateJWTConfig, + InternalApi.Secrethub.UpdateJWTConfigRequest, + InternalApi.Secrethub.UpdateJWTConfigResponse end defmodule InternalApi.Secrethub.SecretService.Stub do diff --git a/ee/gofer/lib/internal_api/user.pb.ex b/ee/gofer/lib/internal_api/user.pb.ex index dc8debe35..f18b43855 100644 --- a/ee/gofer/lib/internal_api/user.pb.ex +++ b/ee/gofer/lib/internal_api/user.pb.ex @@ -212,22 +212,6 @@ defmodule InternalApi.User.RegenerateTokenResponse do field :api_token, 3, type: :string, json_name: "apiToken" end -defmodule InternalApi.User.RefererRequest do - @moduledoc false - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" - - field :user_id, 1, type: :string, json_name: "userId" -end - -defmodule InternalApi.User.RefererResponse do - @moduledoc false - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" - - field :user_id, 1, type: :string, json_name: "userId" - field :entry_url, 2, type: :string, json_name: "entryUrl" - field :http_referer, 3, type: :string, json_name: "httpReferer" -end - defmodule InternalApi.User.CheckGithubTokenRequest do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -285,6 +269,13 @@ defmodule InternalApi.User.DescribeByRepositoryProviderRequest do field :provider, 1, type: InternalApi.User.RepositoryProvider end +defmodule InternalApi.User.DescribeByEmailRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :email, 1, type: :string +end + defmodule InternalApi.User.RefreshRepositoryProviderRequest do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -304,6 +295,22 @@ defmodule InternalApi.User.RefreshRepositoryProviderResponse do json_name: "repositoryProvider" end +defmodule InternalApi.User.CreateRequest do + @moduledoc false + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" + + field :email, 1, type: :string + field :name, 2, type: :string + field :password, 3, type: :string + + field :repository_providers, 4, + repeated: true, + type: InternalApi.User.RepositoryProvider, + json_name: "repositoryProviders" + + field :skip_password_change, 5, type: :bool, json_name: "skipPasswordChange" +end + defmodule InternalApi.User.User do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -360,15 +367,6 @@ defmodule InternalApi.User.UserUpdated do field :timestamp, 2, type: Google.Protobuf.Timestamp end -defmodule InternalApi.User.UserRefererCreated do - @moduledoc false - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" - - field :user_id, 1, type: :string, json_name: "userId" - field :entry_url, 2, type: :string, json_name: "entryUrl" - field :http_referer, 3, type: :string, json_name: "httpReferer" -end - defmodule InternalApi.User.UserJoinedOrganization do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.10.0" @@ -448,6 +446,8 @@ defmodule InternalApi.User.UserService.Service do InternalApi.User.DescribeByRepositoryProviderRequest, InternalApi.User.User + rpc :DescribeByEmail, InternalApi.User.DescribeByEmailRequest, InternalApi.User.User + rpc :SearchUsers, InternalApi.User.SearchUsersRequest, InternalApi.User.SearchUsersResponse rpc :DescribeMany, InternalApi.User.DescribeManyRequest, InternalApi.User.DescribeManyResponse @@ -468,8 +468,6 @@ defmodule InternalApi.User.UserService.Service do rpc :DeleteFavorite, InternalApi.User.Favorite, InternalApi.User.Favorite - rpc :Referer, InternalApi.User.RefererRequest, InternalApi.User.RefererResponse - rpc :CheckGithubToken, InternalApi.User.CheckGithubTokenRequest, InternalApi.User.CheckGithubTokenResponse @@ -485,6 +483,8 @@ defmodule InternalApi.User.UserService.Service do rpc :RefreshRepositoryProvider, InternalApi.User.RefreshRepositoryProviderRequest, InternalApi.User.RefreshRepositoryProviderResponse + + rpc :Create, InternalApi.User.CreateRequest, InternalApi.User.User end defmodule InternalApi.User.UserService.Stub do diff --git a/ee/rbac/lib/internal_api/organization.pb.ex b/ee/rbac/lib/internal_api/organization.pb.ex index dd68f3529..53dca1902 100644 --- a/ee/rbac/lib/internal_api/organization.pb.ex +++ b/ee/rbac/lib/internal_api/organization.pb.ex @@ -46,6 +46,7 @@ defmodule InternalApi.Organization.DescribeRequest do field(:org_id, 1, type: :string, json_name: "orgId") field(:org_username, 2, type: :string, json_name: "orgUsername") field(:include_quotas, 3, type: :bool, json_name: "includeQuotas") + field(:soft_deleted, 4, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeResponse do @@ -63,6 +64,7 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" field(:org_ids, 1, repeated: true, type: :string, json_name: "orgIds") + field(:soft_deleted, 2, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeManyResponse do @@ -83,6 +85,7 @@ defmodule InternalApi.Organization.ListRequest do field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32, json_name: "pageSize") field(:page_token, 6, type: :string, json_name: "pageToken") + field(:soft_deleted, 7, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.ListResponse do @@ -369,6 +372,14 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string, json_name: "orgId") end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + defmodule InternalApi.Organization.Organization do @moduledoc false @@ -620,6 +631,15 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false @@ -701,6 +721,8 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/ee/rbac/lib/internal_api/projecthub.pb.ex b/ee/rbac/lib/internal_api/projecthub.pb.ex index c10c5fa6b..639cd791e 100644 --- a/ee/rbac/lib/internal_api/projecthub.pb.ex +++ b/ee/rbac/lib/internal_api/projecthub.pb.ex @@ -39,6 +39,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -391,6 +392,7 @@ defmodule InternalApi.Projecthub.ListRequest do field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string, json_name: "ownerId") field(:repo_url, 4, type: :string, json_name: "repoUrl") + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.ListResponse do @@ -437,6 +439,7 @@ defmodule InternalApi.Projecthub.DescribeRequest do field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeResponse do @@ -455,6 +458,7 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -522,6 +526,23 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false @@ -557,6 +578,7 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -589,6 +611,7 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -718,6 +741,24 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false @@ -738,6 +779,16 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string, json_name: "orgId") end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:project_id, 1, type: :string, json_name: "projectId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string, json_name: "orgId") +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false @@ -786,6 +837,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -812,6 +865,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/ee/rbac/lib/internal_api/repository.pb.ex b/ee/rbac/lib/internal_api/repository.pb.ex index 9dee6dd6f..890975954 100644 --- a/ee/rbac/lib/internal_api/repository.pb.ex +++ b/ee/rbac/lib/internal_api/repository.pb.ex @@ -88,6 +88,7 @@ defmodule InternalApi.Repository.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -370,6 +371,7 @@ defmodule InternalApi.Repository.Repository do field(:whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist) field(:hook_id, 12, type: :string, json_name: "hookId") field(:default_branch, 13, type: :string, json_name: "defaultBranch") + field(:connected, 14, type: :bool) end defmodule InternalApi.Repository.RemoteRepository do @@ -630,6 +632,38 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field(:valid, 1, type: :bool) end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:repository_id, 1, type: :string, json_name: "repositoryId") +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:repository, 1, type: InternalApi.Repository.Repository) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:repository_id, 1, type: :string, json_name: "repositoryId") +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:secret, 1, type: :string) +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false @@ -732,6 +766,18 @@ defmodule InternalApi.Repository.RepositoryService.Service do InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse ) + + rpc( + :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + ) + + rpc( + :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse + ) end defmodule InternalApi.Repository.RepositoryService.Stub do diff --git a/ee/velocity/Dockerfile b/ee/velocity/Dockerfile index 20244ccba..9cc9fd0db 100644 --- a/ee/velocity/Dockerfile +++ b/ee/velocity/Dockerfile @@ -33,15 +33,15 @@ FROM base AS dev COPY test test WORKDIR /tmp -RUN curl -sL https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip -o protoc && \ +RUN curl -sL https://github.com/google/protobuf/releases/download/v3.20.0/protoc-3.20.0-linux-x86_64.zip -o protoc && \ unzip protoc && \ mv bin/protoc /usr/local/bin/protoc WORKDIR /app RUN go install github.com/mgechev/revive@v1.7.0 RUN go install gotest.tools/gotestsum@v1.12.1 -RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest -RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest +RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0 +RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 CMD [ "/bin/bash", "-c \"while sleep 1000; do :; done\"" ] diff --git a/ee/velocity/Makefile b/ee/velocity/Makefile index fd4c12044..2b9b7a3e6 100644 --- a/ee/velocity/Makefile +++ b/ee/velocity/Makefile @@ -8,18 +8,18 @@ APP_ENV=prod # lint: build - docker-compose run --rm --no-deps app revive -formatter friendly -config lint.toml ./... + docker compose run --rm --no-deps app revive -formatter friendly -config lint.toml ./... test.setup: - docker-compose build + docker compose build $(MAKE) db.create $(MAKE) db.migrate test: build - docker-compose run --rm app gotestsum --format short-verbose --junitfile out/test-reports.xml --packages="./..." -- -p 1 + docker compose run --rm app gotestsum --format short-verbose --junitfile out/test-reports.xml --packages="./..." -- -p 1 wait.for.postgres: - docker-compose run --rm app scripts/wait-for-postgres.sh + docker compose run --rm app scripts/wait-for-postgres.sh # # Database and migrations @@ -32,25 +32,25 @@ export DB_USERNAME=postgres export DB_PASSWORD=the-cake-is-a-lie db.create: wait.for.postgres - docker-compose run app bash -c "scripts/db.sh create" + docker compose run app bash -c "scripts/db.sh create" db.migration.create: wait.for.postgres - docker-compose run app mkdir -p db/migrations - docker-compose run app migrate create -ext sql -dir db/migrations $(NAME) + docker compose run app mkdir -p db/migrations + docker compose run app migrate create -ext sql -dir db/migrations $(NAME) ls -lah db/migrations/*$(NAME)* db.migrate: wait.for.postgres rm -f db/structure.sql - docker-compose run app bash -c "scripts/db.sh migrate" + docker compose run app bash -c "scripts/db.sh migrate" # echo dump schema to db/structure.sql - docker-compose run --user $$(id -u):$$(id -g) -e PGPASSWORD=$(DB_PASSWORD) app bash -c "pg_dump --schema-only --no-privileges --no-owner -h db -p 5432 -U postgres -d $(DB_NAME)" > db/structure.sql - docker-compose run --user $$(id -u):$$(id -g) -e PGPASSWORD=$(DB_PASSWORD) app bash -c "pg_dump --data-only --table schema_migrations -h db -p 5432 -U postgres -d $(DB_NAME)" >> db/structure.sql + docker compose run --user $$(id -u):$$(id -g) -e PGPASSWORD=$(DB_PASSWORD) app bash -c "pg_dump --schema-only --no-privileges --no-owner -h db -p 5432 -U postgres -d $(DB_NAME)" > db/structure.sql + docker compose run --user $$(id -u):$$(id -g) -e PGPASSWORD=$(DB_PASSWORD) app bash -c "pg_dump --data-only --table schema_migrations -h db -p 5432 -U postgres -d $(DB_NAME)" >> db/structure.sql db.test.console: - docker-compose run --user $$(id -u):$$(id -g) -e PGPASSWORD=$(DB_PASSWORD) app psql -h db -p 5432 -U postgres $(DB_NAME) + docker compose run --user $$(id -u):$$(id -g) -e PGPASSWORD=$(DB_PASSWORD) app psql -h db -p 5432 -U postgres $(DB_NAME) db.test.delete: - docker-compose run --user $$(id -u):$$(id -g) --rm -e PGPASSWORD=$(DB_PASSWORD) app dropdb -h db -p 5432 -U postgres $(DB_NAME) + docker compose run --user $$(id -u):$$(id -g) --rm -e PGPASSWORD=$(DB_PASSWORD) app dropdb -h db -p 5432 -U postgres $(DB_NAME) # # Protobuf compilation. @@ -61,4 +61,4 @@ MODULES = user,repository_integrator,projecthub,artifacthub,plumber_w_f.workflow pb.gen: rm -rf /tmp/internal_api git clone git@github.com:renderedtext/internal_api.git /tmp/internal_api && (cd /tmp/internal_api && git checkout $(INTERNAL_API_BRANCH) && cd -) - docker-compose run --rm app scripts/protoc.sh $(MODULES) $(INTERNAL_API_BRANCH) + docker compose run --rm app scripts/protoc.sh $(MODULES) $(INTERNAL_API_BRANCH) diff --git a/ee/velocity/db/structure.sql b/ee/velocity/db/structure.sql index ee1c1f45b..ebf3bfeca 100644 --- a/ee/velocity/db/structure.sql +++ b/ee/velocity/db/structure.sql @@ -1,485 +1,532 @@ --- --- PostgreSQL database dump --- - --- Dumped from database version 9.6.24 --- Dumped by pg_dump version 13.7 (Debian 13.7-0+deb11u1) - -SET statement_timeout = 0; -SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; -SET client_encoding = 'UTF8'; -SET standard_conforming_strings = on; -SELECT pg_catalog.set_config('search_path', '', false); -SET check_function_bodies = false; -SET xmloption = content; -SET client_min_messages = warning; -SET row_security = off; - --- --- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: - --- - -CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; - - --- --- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: - --- - -COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; - - -SET default_tablespace = ''; - --- --- Name: branch_metrics; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.branch_metrics ( - id bigint NOT NULL, - project_id uuid NOT NULL, - branch_id uuid NOT NULL, - pipeline_yml_file character varying NOT NULL, - pipeline_name character varying NOT NULL, - latest_pipeline_runs jsonb, - weekly_metrics jsonb -); - - --- --- Name: branch_metrics_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.branch_metrics_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: branch_metrics_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.branch_metrics_id_seq OWNED BY public.branch_metrics.id; - - --- --- Name: job_summaries; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.job_summaries ( - id bigint NOT NULL, - project_id uuid NOT NULL, - pipeline_id uuid NOT NULL, - job_id uuid NOT NULL, - total integer NOT NULL, - passed integer NOT NULL, - skipped integer NOT NULL, - failed integer NOT NULL, - errors integer NOT NULL, - disabled integer NOT NULL, - duration bigint NOT NULL, - created_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL, - updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL -); - - --- --- Name: job_summaries_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.job_summaries_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: job_summaries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.job_summaries_id_seq OWNED BY public.job_summaries.id; - - --- --- Name: pipeline_event_buffer; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.pipeline_event_buffer ( - id bigint NOT NULL, - pipeline_id uuid NOT NULL, - workflow_id uuid NOT NULL, - project_id uuid NOT NULL, - branch_id uuid NOT NULL, - pipeline_file_name character varying NOT NULL, - pipeline_name character varying NOT NULL, - running_at timestamp without time zone, - done_at timestamp without time zone NOT NULL, - "timestamp" timestamp without time zone NOT NULL, - result character varying NOT NULL, - reason character varying NOT NULL, - state character varying NOT NULL -); - - --- --- Name: pipeline_event_buffer_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.pipeline_event_buffer_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: pipeline_event_buffer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.pipeline_event_buffer_id_seq OWNED BY public.pipeline_event_buffer.id; - - --- --- Name: pipeline_event_results; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.pipeline_event_results ( - id bigint NOT NULL, - pipeline_id uuid NOT NULL, - workflow_id uuid NOT NULL, - project_id uuid NOT NULL, - branch_id uuid NOT NULL, - pipeline_file_name character varying NOT NULL, - pipeline_name character varying NOT NULL, - running_at timestamp without time zone, - done_at timestamp without time zone NOT NULL, - "timestamp" timestamp without time zone NOT NULL, - result character varying NOT NULL, - reason character varying NOT NULL, - state character varying NOT NULL -); - - --- --- Name: pipeline_event_results_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.pipeline_event_results_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: pipeline_event_results_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.pipeline_event_results_id_seq OWNED BY public.pipeline_event_results.id; - - --- --- Name: pipeline_summaries; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.pipeline_summaries ( - id bigint NOT NULL, - project_id uuid NOT NULL, - pipeline_id uuid NOT NULL, - total integer NOT NULL, - passed integer NOT NULL, - skipped integer NOT NULL, - failed integer NOT NULL, - errors integer NOT NULL, - disabled integer NOT NULL, - duration bigint NOT NULL, - created_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL, - updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL -); - - --- --- Name: pipeline_summaries_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.pipeline_summaries_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: pipeline_summaries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.pipeline_summaries_id_seq OWNED BY public.pipeline_summaries.id; - - --- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.schema_migrations ( - version bigint NOT NULL, - dirty boolean NOT NULL -); - - --- --- Name: weekly_pipeline_metrics; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.weekly_pipeline_metrics ( - id bigint NOT NULL, - project_id uuid NOT NULL, - branch_id uuid NOT NULL, - pipeline_file_name character varying NOT NULL, - pipeline_name character varying NOT NULL, - week_of_year integer NOT NULL, - year integer NOT NULL, - average bigint NOT NULL, - pass_rate numeric(12,2) NOT NULL, - created_at timestamp without time zone DEFAULT now() NOT NULL, - processed_at timestamp without time zone -); - - --- --- Name: weekly_pipeline_metrics_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.weekly_pipeline_metrics_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: weekly_pipeline_metrics_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.weekly_pipeline_metrics_id_seq OWNED BY public.weekly_pipeline_metrics.id; - - --- --- Name: branch_metrics id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.branch_metrics ALTER COLUMN id SET DEFAULT nextval('public.branch_metrics_id_seq'::regclass); - - --- --- Name: job_summaries id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.job_summaries ALTER COLUMN id SET DEFAULT nextval('public.job_summaries_id_seq'::regclass); - - --- --- Name: pipeline_event_buffer id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.pipeline_event_buffer ALTER COLUMN id SET DEFAULT nextval('public.pipeline_event_buffer_id_seq'::regclass); - - --- --- Name: pipeline_event_results id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.pipeline_event_results ALTER COLUMN id SET DEFAULT nextval('public.pipeline_event_results_id_seq'::regclass); - - --- --- Name: pipeline_summaries id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.pipeline_summaries ALTER COLUMN id SET DEFAULT nextval('public.pipeline_summaries_id_seq'::regclass); - - --- --- Name: weekly_pipeline_metrics id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.weekly_pipeline_metrics ALTER COLUMN id SET DEFAULT nextval('public.weekly_pipeline_metrics_id_seq'::regclass); - - --- --- Name: branch_metrics branch_metrics_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.branch_metrics - ADD CONSTRAINT branch_metrics_pkey PRIMARY KEY (id); - - --- --- Name: job_summaries job_summaries_pk; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.job_summaries - ADD CONSTRAINT job_summaries_pk PRIMARY KEY (id); - - --- --- Name: pipeline_event_buffer pipeline_event_buffer_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.pipeline_event_buffer - ADD CONSTRAINT pipeline_event_buffer_pkey PRIMARY KEY (id); - - --- --- Name: pipeline_event_results pipeline_event_results_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.pipeline_event_results - ADD CONSTRAINT pipeline_event_results_pkey PRIMARY KEY (id); - - --- --- Name: pipeline_summaries pipeline_summaries_pk; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.pipeline_summaries - ADD CONSTRAINT pipeline_summaries_pk PRIMARY KEY (id); - - --- --- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.schema_migrations - ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version); - - --- --- Name: weekly_pipeline_metrics weekly_pipeline_metrics_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.weekly_pipeline_metrics - ADD CONSTRAINT weekly_pipeline_metrics_pkey PRIMARY KEY (id); - - --- --- Name: branch_metrics_unique_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX branch_metrics_unique_idx ON public.branch_metrics USING btree (project_id, branch_id, pipeline_yml_file); - - --- --- Name: job_summaries_id_uindex; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX job_summaries_id_uindex ON public.job_summaries USING btree (id); - - --- --- Name: job_summaries_project_id_pipeline_id_uindex; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX job_summaries_project_id_pipeline_id_uindex ON public.job_summaries USING btree (project_id, pipeline_id, job_id); - - --- --- Name: per_project_id_branch_id_pipeline_file_name_buffer_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX per_project_id_branch_id_pipeline_file_name_buffer_idx ON public.pipeline_event_buffer USING btree (project_id, branch_id, pipeline_file_name); - - --- --- Name: per_project_id_branch_id_pipeline_file_name_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX per_project_id_branch_id_pipeline_file_name_idx ON public.pipeline_event_results USING btree (project_id, branch_id, pipeline_file_name); - - --- --- Name: pipeline_event_buffer_pipeline_id_unique_index; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX pipeline_event_buffer_pipeline_id_unique_index ON public.pipeline_event_buffer USING btree (pipeline_id); - - --- --- Name: pipeline_event_results_pipeline_id_unique_index; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX pipeline_event_results_pipeline_id_unique_index ON public.pipeline_event_results USING btree (pipeline_id); - - --- --- Name: pipeline_summaries_id_uindex; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX pipeline_summaries_id_uindex ON public.pipeline_summaries USING btree (id); - - --- --- Name: pipeline_summaries_project_id_pipeline_id_uindex; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX pipeline_summaries_project_id_pipeline_id_uindex ON public.pipeline_summaries USING btree (project_id, pipeline_id); - - --- --- Name: pm_project_id_branch_id_pipeline_file_name_kind_unique_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX pm_project_id_branch_id_pipeline_file_name_kind_unique_idx ON public.weekly_pipeline_metrics USING btree (project_id, branch_id, pipeline_file_name); - - --- --- Name: weekly_pipeline_metrics_uindex; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX weekly_pipeline_metrics_uindex ON public.weekly_pipeline_metrics USING btree (project_id, branch_id, pipeline_file_name, year, week_of_year); - - --- --- PostgreSQL database dump complete --- - --- --- PostgreSQL database dump --- - --- Dumped from database version 9.6.24 --- Dumped by pg_dump version 13.7 (Debian 13.7-0+deb11u1) - -SET statement_timeout = 0; -SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; -SET client_encoding = 'UTF8'; -SET standard_conforming_strings = on; -SELECT pg_catalog.set_config('search_path', '', false); -SET check_function_bodies = false; -SET xmloption = content; -SET client_min_messages = warning; -SET row_security = off; - --- --- Data for Name: schema_migrations; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.schema_migrations (version, dirty) FROM stdin; -7 f -\. - - --- --- PostgreSQL database dump complete --- - +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 9.6.24 +-- Dumped by pg_dump version 15.13 (Debian 15.13-0+deb12u1) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Name: public; Type: SCHEMA; Schema: -; Owner: - +-- + +-- *not* creating schema, since initdb creates it + + +-- +-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; + + +-- +-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; + + +SET default_tablespace = ''; + +-- +-- Name: flaky_tests_filters; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.flaky_tests_filters ( + id uuid NOT NULL, + name character varying NOT NULL, + value character varying NOT NULL, + project_id uuid NOT NULL, + organization_id uuid NOT NULL, + inserted_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +-- +-- Name: job_summaries; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.job_summaries ( + project_id uuid NOT NULL, + pipeline_id uuid NOT NULL, + job_id uuid NOT NULL, + total integer NOT NULL, + passed integer NOT NULL, + skipped integer NOT NULL, + failed integer NOT NULL, + errors integer NOT NULL, + disabled integer NOT NULL, + duration bigint NOT NULL, + created_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL, + updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL +); + + +-- +-- Name: metrics_dashboard_items; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.metrics_dashboard_items ( + id uuid NOT NULL, + metrics_dashboard_id uuid NOT NULL, + name character varying NOT NULL, + branch_name character varying NOT NULL, + pipeline_file_name character varying NOT NULL, + settings jsonb DEFAULT '{}'::jsonb NOT NULL, + inserted_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL, + notes text DEFAULT ''::text NOT NULL +); + + +-- +-- Name: metrics_dashboards; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.metrics_dashboards ( + id uuid NOT NULL, + name character varying NOT NULL, + project_id uuid NOT NULL, + organization_id uuid NOT NULL, + inserted_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +-- +-- Name: pipeline_runs; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.pipeline_runs ( + pipeline_id uuid NOT NULL, + project_id uuid NOT NULL, + branch_id uuid NOT NULL, + branch_name character varying NOT NULL, + pipeline_file_name character varying NOT NULL, + result character varying NOT NULL, + reason character varying NOT NULL, + queueing_at timestamp without time zone, + running_at timestamp without time zone, + done_at timestamp without time zone, + created_at timestamp without time zone, + updated_at timestamp without time zone +); + + +-- +-- Name: pipeline_summaries; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.pipeline_summaries ( + project_id uuid NOT NULL, + pipeline_id uuid NOT NULL, + total integer NOT NULL, + passed integer NOT NULL, + skipped integer NOT NULL, + failed integer NOT NULL, + errors integer NOT NULL, + disabled integer NOT NULL, + duration bigint NOT NULL, + created_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL, + updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL +); + + +-- +-- Name: project_last_successful_runs; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.project_last_successful_runs ( + id uuid NOT NULL, + project_id uuid NOT NULL, + organization_id uuid NOT NULL, + pipeline_file_name character varying NOT NULL, + branch_name character varying NOT NULL, + last_successful_run_at timestamp without time zone NOT NULL, + inserted_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +-- +-- Name: project_metrics; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.project_metrics ( + project_id uuid NOT NULL, + pipeline_file_name character varying NOT NULL, + collected_at date NOT NULL, + organization_id uuid NOT NULL, + branch_name character varying NOT NULL, + metrics jsonb DEFAULT '{}'::jsonb NOT NULL +); + + +-- +-- Name: project_mttr; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.project_mttr ( + id uuid NOT NULL, + project_id uuid NOT NULL, + organization_id uuid NOT NULL, + pipeline_file_name character varying NOT NULL, + branch_name character varying NOT NULL, + failed_ppl_id uuid NOT NULL, + failed_at timestamp without time zone NOT NULL, + passed_ppl_id uuid, + passed_at timestamp without time zone, + inserted_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +-- +-- Name: project_settings; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.project_settings ( + project_id uuid NOT NULL, + organization_id uuid, + cd_branch_name character varying NOT NULL, + cd_pipeline_file_name character varying NOT NULL, + ci_branch_name character varying DEFAULT ''::character varying NOT NULL, + ci_pipeline_file_name character varying DEFAULT ''::character varying NOT NULL +); + + +-- +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.schema_migrations ( + version bigint NOT NULL, + dirty boolean NOT NULL +); + + +-- +-- Name: flaky_tests_filters flaky_tests_filters_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.flaky_tests_filters + ADD CONSTRAINT flaky_tests_filters_pk PRIMARY KEY (id); + + +-- +-- Name: job_summaries job_summaries_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.job_summaries + ADD CONSTRAINT job_summaries_pk PRIMARY KEY (job_id); + + +-- +-- Name: metrics_dashboard_items metrics_dashboard_items_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.metrics_dashboard_items + ADD CONSTRAINT metrics_dashboard_items_pk PRIMARY KEY (id); + + +-- +-- Name: metrics_dashboards metrics_dashboards_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.metrics_dashboards + ADD CONSTRAINT metrics_dashboards_pk PRIMARY KEY (id); + + +-- +-- Name: pipeline_runs pipeline_runs_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.pipeline_runs + ADD CONSTRAINT pipeline_runs_pk PRIMARY KEY (pipeline_id); + + +-- +-- Name: pipeline_summaries pipeline_summaries_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.pipeline_summaries + ADD CONSTRAINT pipeline_summaries_pk PRIMARY KEY (pipeline_id); + + +-- +-- Name: project_last_successful_runs plsr_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.project_last_successful_runs + ADD CONSTRAINT plsr_pk PRIMARY KEY (id); + + +-- +-- Name: project_metrics project_metrics_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.project_metrics + ADD CONSTRAINT project_metrics_pk PRIMARY KEY (project_id, pipeline_file_name, branch_name, collected_at); + + +-- +-- Name: project_mttr project_mttr_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.project_mttr + ADD CONSTRAINT project_mttr_pkey PRIMARY KEY (id); + + +-- +-- Name: project_settings ps_pk; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.project_settings + ADD CONSTRAINT ps_pk PRIMARY KEY (project_id); + + +-- +-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.schema_migrations + ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version); + + +-- +-- Name: flaky_tests_filters_project_id_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX flaky_tests_filters_project_id_index ON public.flaky_tests_filters USING btree (project_id); + + +-- +-- Name: flaky_tests_filters_project_id_name_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX flaky_tests_filters_project_id_name_uindex ON public.flaky_tests_filters USING btree (project_id, name); + + +-- +-- Name: idx_project_metrics_optimization; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX idx_project_metrics_optimization ON public.project_metrics USING btree (branch_name, collected_at, project_id); + + +-- +-- Name: job_summaries_id_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX job_summaries_id_uindex ON public.job_summaries USING btree (job_id); + + +-- +-- Name: job_summaries_project_id_pipeline_id_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX job_summaries_project_id_pipeline_id_uindex ON public.job_summaries USING btree (project_id, pipeline_id, job_id); + + +-- +-- Name: mdi_metrics_dashboard_id_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX mdi_metrics_dashboard_id_index ON public.metrics_dashboard_items USING btree (metrics_dashboard_id); + + +-- +-- Name: metrics_dashboards_name_project_id_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX metrics_dashboards_name_project_id_uindex ON public.metrics_dashboards USING btree (name, project_id); + + +-- +-- Name: mttr_branch_name_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX mttr_branch_name_idx ON public.project_mttr USING btree (branch_name); + + +-- +-- Name: mttr_passed_ppl_id_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX mttr_passed_ppl_id_idx ON public.project_mttr USING btree (passed_ppl_id); + + +-- +-- Name: mttr_pipeline_file_name_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX mttr_pipeline_file_name_idx ON public.project_mttr USING btree (pipeline_file_name); + + +-- +-- Name: mttr_project_id_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX mttr_project_id_idx ON public.project_mttr USING btree (project_id); + + +-- +-- Name: organization_id_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX organization_id_idx ON public.project_last_successful_runs USING btree (organization_id); + + +-- +-- Name: pipeline_file_name_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_file_name_idx ON public.project_last_successful_runs USING btree (pipeline_file_name); + + +-- +-- Name: pipeline_run_bid_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_run_bid_idx ON public.pipeline_runs USING btree (branch_id); + + +-- +-- Name: pipeline_run_bname_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_run_bname_idx ON public.pipeline_runs USING btree (branch_name); + + +-- +-- Name: pipeline_run_pfname_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_run_pfname_idx ON public.pipeline_runs USING btree (pipeline_file_name); + + +-- +-- Name: pipeline_run_proj_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_run_proj_idx ON public.pipeline_runs USING btree (project_id); + + +-- +-- Name: pipeline_run_reason_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_run_reason_idx ON public.pipeline_runs USING btree (reason); + + +-- +-- Name: pipeline_run_result_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_run_result_idx ON public.pipeline_runs USING btree (result); + + +-- +-- Name: pipeline_runs_pipeline_id_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX pipeline_runs_pipeline_id_uindex ON public.pipeline_runs USING btree (pipeline_id); + + +-- +-- Name: pipeline_summaries_id_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX pipeline_summaries_id_uindex ON public.pipeline_summaries USING btree (pipeline_id); + + +-- +-- Name: pipeline_summaries_project_id_pipeline_id_uindex; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX pipeline_summaries_project_id_pipeline_id_uindex ON public.pipeline_summaries USING btree (project_id, pipeline_id); + + +-- +-- Name: plsr_unq_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX plsr_unq_idx ON public.project_last_successful_runs USING btree (project_id, pipeline_file_name, branch_name); + + +-- +-- Name: project_id_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX project_id_idx ON public.project_last_successful_runs USING btree (project_id); + + +-- +-- Name: project_last_runs_project_id_last_run_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX project_last_runs_project_id_last_run_idx ON public.project_last_successful_runs USING btree (project_id, last_successful_run_at DESC); + + +-- +-- Name: project_mttr_unq_idx; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX project_mttr_unq_idx ON public.project_mttr USING btree (project_id, pipeline_file_name, branch_name, failed_ppl_id); + + +-- +-- Name: metrics_dashboard_items metrics_dashboard_items_metrics_dashboard_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.metrics_dashboard_items + ADD CONSTRAINT metrics_dashboard_items_metrics_dashboard_id_fkey FOREIGN KEY (metrics_dashboard_id) REFERENCES public.metrics_dashboards(id) ON DELETE CASCADE; + + +-- +-- PostgreSQL database dump complete +-- + +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 9.6.24 +-- Dumped by pg_dump version 15.13 (Debian 15.13-0+deb12u1) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Data for Name: schema_migrations; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.schema_migrations (version, dirty) FROM stdin; +25 f +\. + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/ee/velocity/docker-compose.yml b/ee/velocity/docker-compose.yml index ded94d72d..f8630efd7 100644 --- a/ee/velocity/docker-compose.yml +++ b/ee/velocity/docker-compose.yml @@ -3,6 +3,7 @@ version: '3.6' services: app: + platform: linux/amd64 build: context: . cache_from: diff --git a/ee/velocity/pkg/protos/artifacthub/artifacthub.pb.go b/ee/velocity/pkg/protos/artifacthub/artifacthub.pb.go index 7aa2b4f0d..74df85dbd 100644 --- a/ee/velocity/pkg/protos/artifacthub/artifacthub.pb.go +++ b/ee/velocity/pkg/protos/artifacthub/artifacthub.pb.go @@ -330,7 +330,7 @@ func (x *UpdateRetentionPolicyResponse) GetRetentionPolicy() *RetentionPolicy { } // Request for Create -// Contains idempotency token, example: project-01234567-0123-4012-8012-012345678901 +// Contains idempotency token, example: project-877b07c5-fde0-4baf-9608-58e28da587f9 type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -647,6 +647,10 @@ type ListPathRequest struct { ArtifactId string `protobuf:"bytes,1,opt,name=artifact_id,json=artifactId,proto3" json:"artifact_id,omitempty"` Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + // By default, files under a subdirectory are not returned, + // and only the subdirectory itself is returned in an item with is_directory=true. + // If you want to list the files under subdirectories too, use unwrap_directories=true. + UnwrapDirectories bool `protobuf:"varint,3,opt,name=unwrap_directories,json=unwrapDirectories,proto3" json:"unwrap_directories,omitempty"` } func (x *ListPathRequest) Reset() { @@ -695,6 +699,13 @@ func (x *ListPathRequest) GetPath() string { return "" } +func (x *ListPathRequest) GetUnwrapDirectories() bool { + if x != nil { + return x.UnwrapDirectories + } + return false +} + // Response for List a Bucket directory // Contains the directory contents and response status type ListPathResponse struct { @@ -1532,6 +1543,140 @@ func (x *Artifact) GetArtifactToken() string { return "" } +// Request for GenerateToken +// - artifact_id = [required] UUID of the artifact +// - job_id = [required] UUID of the job +// - project_id = [required] UUID of the project +// - workflow_id = [optional] UUID of the workflow. If not specified, token will not be able to manage artifacts for any workflows +// - duration = [optional] How long should the newly generated token last. If not specified, 24h is used +type GenerateTokenRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtifactId string `protobuf:"bytes,1,opt,name=artifact_id,json=artifactId,proto3" json:"artifact_id,omitempty"` + JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + WorkflowId string `protobuf:"bytes,3,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"` + ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Duration uint32 `protobuf:"varint,5,opt,name=duration,proto3" json:"duration,omitempty"` +} + +func (x *GenerateTokenRequest) Reset() { + *x = GenerateTokenRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_artifacthub_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateTokenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateTokenRequest) ProtoMessage() {} + +func (x *GenerateTokenRequest) ProtoReflect() protoreflect.Message { + mi := &file_artifacthub_proto_msgTypes[29] + 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 GenerateTokenRequest.ProtoReflect.Descriptor instead. +func (*GenerateTokenRequest) Descriptor() ([]byte, []int) { + return file_artifacthub_proto_rawDescGZIP(), []int{29} +} + +func (x *GenerateTokenRequest) GetArtifactId() string { + if x != nil { + return x.ArtifactId + } + return "" +} + +func (x *GenerateTokenRequest) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *GenerateTokenRequest) GetWorkflowId() string { + if x != nil { + return x.WorkflowId + } + return "" +} + +func (x *GenerateTokenRequest) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *GenerateTokenRequest) GetDuration() uint32 { + if x != nil { + return x.Duration + } + return 0 +} + +// Response for GenerateToken +// - token = [required] JWT token generated +type GenerateTokenResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *GenerateTokenResponse) Reset() { + *x = GenerateTokenResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_artifacthub_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateTokenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateTokenResponse) ProtoMessage() {} + +func (x *GenerateTokenResponse) ProtoReflect() protoreflect.Message { + mi := &file_artifacthub_proto_msgTypes[30] + 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 GenerateTokenResponse.ProtoReflect.Descriptor instead. +func (*GenerateTokenResponse) Descriptor() ([]byte, []int) { + return file_artifacthub_proto_rawDescGZIP(), []int{30} +} + +func (x *GenerateTokenResponse) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + type RetentionPolicy_RetentionPolicyRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1555,7 +1700,7 @@ type RetentionPolicy_RetentionPolicyRule struct { func (x *RetentionPolicy_RetentionPolicyRule) Reset() { *x = RetentionPolicy_RetentionPolicyRule{} if protoimpl.UnsafeEnabled { - mi := &file_artifacthub_proto_msgTypes[29] + mi := &file_artifacthub_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1568,7 +1713,7 @@ func (x *RetentionPolicy_RetentionPolicyRule) String() string { func (*RetentionPolicy_RetentionPolicyRule) ProtoMessage() {} func (x *RetentionPolicy_RetentionPolicyRule) ProtoReflect() protoreflect.Message { - mi := &file_artifacthub_proto_msgTypes[29] + mi := &file_artifacthub_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1701,181 +1846,205 @@ var file_artifacthub_proto_rawDesc = []byte{ 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x4b, - 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x48, 0x0a, 0x11, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x43, - 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x11, 0x0a, - 0x0f, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x62, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x22, 0x28, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x26, - 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, - 0x0a, 0x14, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x66, - 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x11, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x46, 0x6f, - 0x72, 0x49, 0x64, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xde, 0x01, 0x0a, 0x15, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2d, + 0x0a, 0x12, 0x75, 0x6e, 0x77, 0x72, 0x61, 0x70, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x6e, 0x77, 0x72, + 0x61, 0x70, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x4b, 0x0a, + 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x48, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x6c, + 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x11, 0x0a, 0x0f, + 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x62, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x22, 0x28, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x26, 0x0a, + 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, + 0x14, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x66, 0x6f, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x11, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x46, 0x6f, 0x72, + 0x49, 0x64, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x46, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xde, 0x01, 0x0a, 0x15, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x08, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x08, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, + 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x02, 0x22, 0x3f, 0x0a, 0x16, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x39, 0x0a, 0x14, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, + 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x62, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x49, 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, 0x1f, 0x0a, 0x0b, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xd2, 0x0b, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, - 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x08, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x4f, 0x4a, 0x45, - 0x43, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x02, 0x22, 0x3f, 0x0a, 0x16, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x39, 0x0a, 0x14, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, - 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, 0x53, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, - 0x52, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x62, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xe2, 0x0a, 0x0a, 0x0f, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x68, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2b, + 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5f, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5c, 0x0a, 0x07, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, + 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x07, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, - 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x65, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6e, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5c, 0x0a, 0x07, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6c, + 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x2c, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, + 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x07, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x12, - 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, - 0x52, 0x4c, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x68, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2b, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, + 0x52, 0x53, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, 0x53, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, 0x53, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x52, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x4f, 0x52, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x5a, 0x40, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, + 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, + 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x73, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x68, 0x75, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1891,7 +2060,7 @@ func file_artifacthub_proto_rawDescGZIP() []byte { } var file_artifacthub_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_artifacthub_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_artifacthub_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_artifacthub_proto_goTypes = []interface{}{ (CountArtifactsRequest_Category)(0), // 0: InternalApi.Artifacthub.CountArtifactsRequest.Category (*HealthCheckRequest)(nil), // 1: InternalApi.Artifacthub.HealthCheckRequest @@ -1923,16 +2092,18 @@ var file_artifacthub_proto_goTypes = []interface{}{ (*UpdateCORSResponse)(nil), // 27: InternalApi.Artifacthub.UpdateCORSResponse (*ListItem)(nil), // 28: InternalApi.Artifacthub.ListItem (*Artifact)(nil), // 29: InternalApi.Artifacthub.Artifact - (*RetentionPolicy_RetentionPolicyRule)(nil), // 30: InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule - nil, // 31: InternalApi.Artifacthub.ListBucketsResponse.BucketNamesForIdsEntry - (*timestamp.Timestamp)(nil), // 32: google.protobuf.Timestamp + (*GenerateTokenRequest)(nil), // 30: InternalApi.Artifacthub.GenerateTokenRequest + (*GenerateTokenResponse)(nil), // 31: InternalApi.Artifacthub.GenerateTokenResponse + (*RetentionPolicy_RetentionPolicyRule)(nil), // 32: InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule + nil, // 33: InternalApi.Artifacthub.ListBucketsResponse.BucketNamesForIdsEntry + (*timestamp.Timestamp)(nil), // 34: google.protobuf.Timestamp } var file_artifacthub_proto_depIdxs = []int32{ - 30, // 0: InternalApi.Artifacthub.RetentionPolicy.project_level_retention_policies:type_name -> InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule - 30, // 1: InternalApi.Artifacthub.RetentionPolicy.workflow_level_retention_policies:type_name -> InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule - 30, // 2: InternalApi.Artifacthub.RetentionPolicy.job_level_retention_policies:type_name -> InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule - 32, // 3: InternalApi.Artifacthub.RetentionPolicy.scheduled_for_cleaning_at:type_name -> google.protobuf.Timestamp - 32, // 4: InternalApi.Artifacthub.RetentionPolicy.last_cleaned_at:type_name -> google.protobuf.Timestamp + 32, // 0: InternalApi.Artifacthub.RetentionPolicy.project_level_retention_policies:type_name -> InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule + 32, // 1: InternalApi.Artifacthub.RetentionPolicy.workflow_level_retention_policies:type_name -> InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule + 32, // 2: InternalApi.Artifacthub.RetentionPolicy.job_level_retention_policies:type_name -> InternalApi.Artifacthub.RetentionPolicy.RetentionPolicyRule + 34, // 3: InternalApi.Artifacthub.RetentionPolicy.scheduled_for_cleaning_at:type_name -> google.protobuf.Timestamp + 34, // 4: InternalApi.Artifacthub.RetentionPolicy.last_cleaned_at:type_name -> google.protobuf.Timestamp 3, // 5: InternalApi.Artifacthub.UpdateRetentionPolicyRequest.retention_policy:type_name -> InternalApi.Artifacthub.RetentionPolicy 3, // 6: InternalApi.Artifacthub.UpdateRetentionPolicyResponse.retention_policy:type_name -> InternalApi.Artifacthub.RetentionPolicy 3, // 7: InternalApi.Artifacthub.CreateRequest.retention_policy:type_name -> InternalApi.Artifacthub.RetentionPolicy @@ -1940,7 +2111,7 @@ var file_artifacthub_proto_depIdxs = []int32{ 29, // 9: InternalApi.Artifacthub.DescribeResponse.artifact:type_name -> InternalApi.Artifacthub.Artifact 3, // 10: InternalApi.Artifacthub.DescribeResponse.retention_policy:type_name -> InternalApi.Artifacthub.RetentionPolicy 28, // 11: InternalApi.Artifacthub.ListPathResponse.items:type_name -> InternalApi.Artifacthub.ListItem - 31, // 12: InternalApi.Artifacthub.ListBucketsResponse.bucket_names_for_ids:type_name -> InternalApi.Artifacthub.ListBucketsResponse.BucketNamesForIdsEntry + 33, // 12: InternalApi.Artifacthub.ListBucketsResponse.bucket_names_for_ids:type_name -> InternalApi.Artifacthub.ListBucketsResponse.BucketNamesForIdsEntry 0, // 13: InternalApi.Artifacthub.CountArtifactsRequest.category:type_name -> InternalApi.Artifacthub.CountArtifactsRequest.Category 1, // 14: InternalApi.Artifacthub.ArtifactService.HealthCheck:input_type -> InternalApi.Artifacthub.HealthCheckRequest 6, // 15: InternalApi.Artifacthub.ArtifactService.Create:input_type -> InternalApi.Artifacthub.CreateRequest @@ -1949,27 +2120,29 @@ var file_artifacthub_proto_depIdxs = []int32{ 12, // 18: InternalApi.Artifacthub.ArtifactService.ListPath:input_type -> InternalApi.Artifacthub.ListPathRequest 14, // 19: InternalApi.Artifacthub.ArtifactService.DeletePath:input_type -> InternalApi.Artifacthub.DeletePathRequest 4, // 20: InternalApi.Artifacthub.ArtifactService.UpdateRetentionPolicy:input_type -> InternalApi.Artifacthub.UpdateRetentionPolicyRequest - 16, // 21: InternalApi.Artifacthub.ArtifactService.Cleanup:input_type -> InternalApi.Artifacthub.CleanupRequest - 18, // 22: InternalApi.Artifacthub.ArtifactService.GetSignedURL:input_type -> InternalApi.Artifacthub.GetSignedURLRequest - 20, // 23: InternalApi.Artifacthub.ArtifactService.ListBuckets:input_type -> InternalApi.Artifacthub.ListBucketsRequest - 22, // 24: InternalApi.Artifacthub.ArtifactService.CountArtifacts:input_type -> InternalApi.Artifacthub.CountArtifactsRequest - 24, // 25: InternalApi.Artifacthub.ArtifactService.CountBuckets:input_type -> InternalApi.Artifacthub.CountBucketsRequest - 26, // 26: InternalApi.Artifacthub.ArtifactService.UpdateCORS:input_type -> InternalApi.Artifacthub.UpdateCORSRequest - 2, // 27: InternalApi.Artifacthub.ArtifactService.HealthCheck:output_type -> InternalApi.Artifacthub.HealthCheckResponse - 7, // 28: InternalApi.Artifacthub.ArtifactService.Create:output_type -> InternalApi.Artifacthub.CreateResponse - 9, // 29: InternalApi.Artifacthub.ArtifactService.Describe:output_type -> InternalApi.Artifacthub.DescribeResponse - 11, // 30: InternalApi.Artifacthub.ArtifactService.Destroy:output_type -> InternalApi.Artifacthub.DestroyResponse - 13, // 31: InternalApi.Artifacthub.ArtifactService.ListPath:output_type -> InternalApi.Artifacthub.ListPathResponse - 15, // 32: InternalApi.Artifacthub.ArtifactService.DeletePath:output_type -> InternalApi.Artifacthub.DeletePathResponse - 5, // 33: InternalApi.Artifacthub.ArtifactService.UpdateRetentionPolicy:output_type -> InternalApi.Artifacthub.UpdateRetentionPolicyResponse - 17, // 34: InternalApi.Artifacthub.ArtifactService.Cleanup:output_type -> InternalApi.Artifacthub.CleanupResponse - 19, // 35: InternalApi.Artifacthub.ArtifactService.GetSignedURL:output_type -> InternalApi.Artifacthub.GetSignedURLResponse - 21, // 36: InternalApi.Artifacthub.ArtifactService.ListBuckets:output_type -> InternalApi.Artifacthub.ListBucketsResponse - 23, // 37: InternalApi.Artifacthub.ArtifactService.CountArtifacts:output_type -> InternalApi.Artifacthub.CountArtifactsResponse - 25, // 38: InternalApi.Artifacthub.ArtifactService.CountBuckets:output_type -> InternalApi.Artifacthub.CountBucketsResponse - 27, // 39: InternalApi.Artifacthub.ArtifactService.UpdateCORS:output_type -> InternalApi.Artifacthub.UpdateCORSResponse - 27, // [27:40] is the sub-list for method output_type - 14, // [14:27] is the sub-list for method input_type + 30, // 21: InternalApi.Artifacthub.ArtifactService.GenerateToken:input_type -> InternalApi.Artifacthub.GenerateTokenRequest + 16, // 22: InternalApi.Artifacthub.ArtifactService.Cleanup:input_type -> InternalApi.Artifacthub.CleanupRequest + 18, // 23: InternalApi.Artifacthub.ArtifactService.GetSignedURL:input_type -> InternalApi.Artifacthub.GetSignedURLRequest + 20, // 24: InternalApi.Artifacthub.ArtifactService.ListBuckets:input_type -> InternalApi.Artifacthub.ListBucketsRequest + 22, // 25: InternalApi.Artifacthub.ArtifactService.CountArtifacts:input_type -> InternalApi.Artifacthub.CountArtifactsRequest + 24, // 26: InternalApi.Artifacthub.ArtifactService.CountBuckets:input_type -> InternalApi.Artifacthub.CountBucketsRequest + 26, // 27: InternalApi.Artifacthub.ArtifactService.UpdateCORS:input_type -> InternalApi.Artifacthub.UpdateCORSRequest + 2, // 28: InternalApi.Artifacthub.ArtifactService.HealthCheck:output_type -> InternalApi.Artifacthub.HealthCheckResponse + 7, // 29: InternalApi.Artifacthub.ArtifactService.Create:output_type -> InternalApi.Artifacthub.CreateResponse + 9, // 30: InternalApi.Artifacthub.ArtifactService.Describe:output_type -> InternalApi.Artifacthub.DescribeResponse + 11, // 31: InternalApi.Artifacthub.ArtifactService.Destroy:output_type -> InternalApi.Artifacthub.DestroyResponse + 13, // 32: InternalApi.Artifacthub.ArtifactService.ListPath:output_type -> InternalApi.Artifacthub.ListPathResponse + 15, // 33: InternalApi.Artifacthub.ArtifactService.DeletePath:output_type -> InternalApi.Artifacthub.DeletePathResponse + 5, // 34: InternalApi.Artifacthub.ArtifactService.UpdateRetentionPolicy:output_type -> InternalApi.Artifacthub.UpdateRetentionPolicyResponse + 31, // 35: InternalApi.Artifacthub.ArtifactService.GenerateToken:output_type -> InternalApi.Artifacthub.GenerateTokenResponse + 17, // 36: InternalApi.Artifacthub.ArtifactService.Cleanup:output_type -> InternalApi.Artifacthub.CleanupResponse + 19, // 37: InternalApi.Artifacthub.ArtifactService.GetSignedURL:output_type -> InternalApi.Artifacthub.GetSignedURLResponse + 21, // 38: InternalApi.Artifacthub.ArtifactService.ListBuckets:output_type -> InternalApi.Artifacthub.ListBucketsResponse + 23, // 39: InternalApi.Artifacthub.ArtifactService.CountArtifacts:output_type -> InternalApi.Artifacthub.CountArtifactsResponse + 25, // 40: InternalApi.Artifacthub.ArtifactService.CountBuckets:output_type -> InternalApi.Artifacthub.CountBucketsResponse + 27, // 41: InternalApi.Artifacthub.ArtifactService.UpdateCORS:output_type -> InternalApi.Artifacthub.UpdateCORSResponse + 28, // [28:42] is the sub-list for method output_type + 14, // [14:28] is the sub-list for method input_type 14, // [14:14] is the sub-list for extension type_name 14, // [14:14] is the sub-list for extension extendee 0, // [0:14] is the sub-list for field type_name @@ -2330,6 +2503,30 @@ func file_artifacthub_proto_init() { } } file_artifacthub_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateTokenRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_artifacthub_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateTokenResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_artifacthub_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RetentionPolicy_RetentionPolicyRule); i { case 0: return &v.state @@ -2348,7 +2545,7 @@ func file_artifacthub_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_artifacthub_proto_rawDesc, NumEnums: 1, - NumMessages: 31, + NumMessages: 33, NumExtensions: 0, NumServices: 1, }, diff --git a/ee/velocity/pkg/protos/artifacthub/artifacthub_grpc.pb.go b/ee/velocity/pkg/protos/artifacthub/artifacthub_grpc.pb.go index 9dea7ba6a..43686e677 100644 --- a/ee/velocity/pkg/protos/artifacthub/artifacthub_grpc.pb.go +++ b/ee/velocity/pkg/protos/artifacthub/artifacthub_grpc.pb.go @@ -26,6 +26,7 @@ const ( ArtifactService_ListPath_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/ListPath" ArtifactService_DeletePath_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/DeletePath" ArtifactService_UpdateRetentionPolicy_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/UpdateRetentionPolicy" + ArtifactService_GenerateToken_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/GenerateToken" ArtifactService_Cleanup_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/Cleanup" ArtifactService_GetSignedURL_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/GetSignedURL" ArtifactService_ListBuckets_FullMethodName = "/InternalApi.Artifacthub.ArtifactService/ListBuckets" @@ -46,6 +47,10 @@ type ArtifactServiceClient interface { ListPath(ctx context.Context, in *ListPathRequest, opts ...grpc.CallOption) (*ListPathResponse, error) DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*DeletePathResponse, error) UpdateRetentionPolicy(ctx context.Context, in *UpdateRetentionPolicyRequest, opts ...grpc.CallOption) (*UpdateRetentionPolicyResponse, error) + // Used to zebra to generate a short-lived JWT token, granting temporary access + // to a project/workflow/job artifacts for a newly created job. + // This is how jobs get access to the artifact API. + GenerateToken(ctx context.Context, in *GenerateTokenRequest, opts ...grpc.CallOption) (*GenerateTokenResponse, error) // if the cleanup result has errors, that does NOT mean it has been failed: it means that there were errors Cleanup(ctx context.Context, in *CleanupRequest, opts ...grpc.CallOption) (*CleanupResponse, error) GetSignedURL(ctx context.Context, in *GetSignedURLRequest, opts ...grpc.CallOption) (*GetSignedURLResponse, error) @@ -130,6 +135,15 @@ func (c *artifactServiceClient) UpdateRetentionPolicy(ctx context.Context, in *U return out, nil } +func (c *artifactServiceClient) GenerateToken(ctx context.Context, in *GenerateTokenRequest, opts ...grpc.CallOption) (*GenerateTokenResponse, error) { + out := new(GenerateTokenResponse) + err := c.cc.Invoke(ctx, ArtifactService_GenerateToken_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *artifactServiceClient) Cleanup(ctx context.Context, in *CleanupRequest, opts ...grpc.CallOption) (*CleanupResponse, error) { out := new(CleanupResponse) err := c.cc.Invoke(ctx, ArtifactService_Cleanup_FullMethodName, in, out, opts...) @@ -196,6 +210,10 @@ type ArtifactServiceServer interface { ListPath(context.Context, *ListPathRequest) (*ListPathResponse, error) DeletePath(context.Context, *DeletePathRequest) (*DeletePathResponse, error) UpdateRetentionPolicy(context.Context, *UpdateRetentionPolicyRequest) (*UpdateRetentionPolicyResponse, error) + // Used to zebra to generate a short-lived JWT token, granting temporary access + // to a project/workflow/job artifacts for a newly created job. + // This is how jobs get access to the artifact API. + GenerateToken(context.Context, *GenerateTokenRequest) (*GenerateTokenResponse, error) // if the cleanup result has errors, that does NOT mean it has been failed: it means that there were errors Cleanup(context.Context, *CleanupRequest) (*CleanupResponse, error) GetSignedURL(context.Context, *GetSignedURLRequest) (*GetSignedURLResponse, error) @@ -234,6 +252,9 @@ func (UnimplementedArtifactServiceServer) DeletePath(context.Context, *DeletePat func (UnimplementedArtifactServiceServer) UpdateRetentionPolicy(context.Context, *UpdateRetentionPolicyRequest) (*UpdateRetentionPolicyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateRetentionPolicy not implemented") } +func (UnimplementedArtifactServiceServer) GenerateToken(context.Context, *GenerateTokenRequest) (*GenerateTokenResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateToken not implemented") +} func (UnimplementedArtifactServiceServer) Cleanup(context.Context, *CleanupRequest) (*CleanupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Cleanup not implemented") } @@ -390,6 +411,24 @@ func _ArtifactService_UpdateRetentionPolicy_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _ArtifactService_GenerateToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtifactServiceServer).GenerateToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ArtifactService_GenerateToken_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtifactServiceServer).GenerateToken(ctx, req.(*GenerateTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ArtifactService_Cleanup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CleanupRequest) if err := dec(in); err != nil { @@ -533,6 +572,10 @@ var ArtifactService_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateRetentionPolicy", Handler: _ArtifactService_UpdateRetentionPolicy_Handler, }, + { + MethodName: "GenerateToken", + Handler: _ArtifactService_GenerateToken_Handler, + }, { MethodName: "Cleanup", Handler: _ArtifactService_Cleanup_Handler, diff --git a/ee/velocity/pkg/protos/feature/feature.pb.go b/ee/velocity/pkg/protos/feature/feature.pb.go index 42f4b7ca0..188c2e1e5 100644 --- a/ee/velocity/pkg/protos/feature/feature.pb.go +++ b/ee/velocity/pkg/protos/feature/feature.pb.go @@ -1234,10 +1234,11 @@ var file_feature_proto_rawDesc = []byte{ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, - 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, + 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ee/velocity/pkg/protos/plumber.pipeline/plumber.pipeline.pb.go b/ee/velocity/pkg/protos/plumber.pipeline/plumber.pipeline.pb.go index 446addad2..3b30a8414 100644 --- a/ee/velocity/pkg/protos/plumber.pipeline/plumber.pipeline.pb.go +++ b/ee/velocity/pkg/protos/plumber.pipeline/plumber.pipeline.pb.go @@ -121,6 +121,64 @@ func (GitRefType) EnumDescriptor() ([]byte, []int) { return file_plumber_pipeline_proto_rawDescGZIP(), []int{1} } +// Pipeline trigger source +// +// - WORKFLOW = Pipeline was triggered by workflow - it's an initial pipeline +// - PROMOTION = Pipeline was triggered by manual promotion +// - AUTO_PROMOTION = Pipeline was triggered by auto promotion +// - PARTIAL_RE_RUN = Pipeline was triggered by partial re-run of a pipeline +type TriggeredBy int32 + +const ( + TriggeredBy_WORKFLOW TriggeredBy = 0 + TriggeredBy_PROMOTION TriggeredBy = 1 + TriggeredBy_AUTO_PROMOTION TriggeredBy = 2 + TriggeredBy_PARTIAL_RE_RUN TriggeredBy = 3 +) + +// Enum value maps for TriggeredBy. +var ( + TriggeredBy_name = map[int32]string{ + 0: "WORKFLOW", + 1: "PROMOTION", + 2: "AUTO_PROMOTION", + 3: "PARTIAL_RE_RUN", + } + TriggeredBy_value = map[string]int32{ + "WORKFLOW": 0, + "PROMOTION": 1, + "AUTO_PROMOTION": 2, + "PARTIAL_RE_RUN": 3, + } +) + +func (x TriggeredBy) Enum() *TriggeredBy { + p := new(TriggeredBy) + *p = x + return p +} + +func (x TriggeredBy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TriggeredBy) Descriptor() protoreflect.EnumDescriptor { + return file_plumber_pipeline_proto_enumTypes[2].Descriptor() +} + +func (TriggeredBy) Type() protoreflect.EnumType { + return &file_plumber_pipeline_proto_enumTypes[2] +} + +func (x TriggeredBy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TriggeredBy.Descriptor instead. +func (TriggeredBy) EnumDescriptor() ([]byte, []int) { + return file_plumber_pipeline_proto_rawDescGZIP(), []int{2} +} + type ScheduleRequest_ServiceType int32 const ( @@ -154,11 +212,11 @@ func (x ScheduleRequest_ServiceType) String() string { } func (ScheduleRequest_ServiceType) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[2].Descriptor() + return file_plumber_pipeline_proto_enumTypes[3].Descriptor() } func (ScheduleRequest_ServiceType) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[2] + return &file_plumber_pipeline_proto_enumTypes[3] } func (x ScheduleRequest_ServiceType) Number() protoreflect.EnumNumber { @@ -217,11 +275,11 @@ func (x Block_State) String() string { } func (Block_State) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[3].Descriptor() + return file_plumber_pipeline_proto_enumTypes[4].Descriptor() } func (Block_State) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[3] + return &file_plumber_pipeline_proto_enumTypes[4] } func (x Block_State) Number() protoreflect.EnumNumber { @@ -269,11 +327,11 @@ func (x Block_Result) String() string { } func (Block_Result) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[4].Descriptor() + return file_plumber_pipeline_proto_enumTypes[5].Descriptor() } func (Block_Result) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[4] + return &file_plumber_pipeline_proto_enumTypes[5] } func (x Block_Result) Number() protoreflect.EnumNumber { @@ -355,11 +413,11 @@ func (x Block_ResultReason) String() string { } func (Block_ResultReason) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[5].Descriptor() + return file_plumber_pipeline_proto_enumTypes[6].Descriptor() } func (Block_ResultReason) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[5] + return &file_plumber_pipeline_proto_enumTypes[6] } func (x Block_ResultReason) Number() protoreflect.EnumNumber { @@ -398,11 +456,11 @@ func (x ListKeysetRequest_Order) String() string { } func (ListKeysetRequest_Order) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[6].Descriptor() + return file_plumber_pipeline_proto_enumTypes[7].Descriptor() } func (ListKeysetRequest_Order) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[6] + return &file_plumber_pipeline_proto_enumTypes[7] } func (x ListKeysetRequest_Order) Number() protoreflect.EnumNumber { @@ -444,11 +502,11 @@ func (x ListKeysetRequest_Direction) String() string { } func (ListKeysetRequest_Direction) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[7].Descriptor() + return file_plumber_pipeline_proto_enumTypes[8].Descriptor() } func (ListKeysetRequest_Direction) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[7] + return &file_plumber_pipeline_proto_enumTypes[8] } func (x ListKeysetRequest_Direction) Number() protoreflect.EnumNumber { @@ -514,11 +572,11 @@ func (x Pipeline_State) String() string { } func (Pipeline_State) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[8].Descriptor() + return file_plumber_pipeline_proto_enumTypes[9].Descriptor() } func (Pipeline_State) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[8] + return &file_plumber_pipeline_proto_enumTypes[9] } func (x Pipeline_State) Number() protoreflect.EnumNumber { @@ -566,11 +624,11 @@ func (x Pipeline_Result) String() string { } func (Pipeline_Result) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[9].Descriptor() + return file_plumber_pipeline_proto_enumTypes[10].Descriptor() } func (Pipeline_Result) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[9] + return &file_plumber_pipeline_proto_enumTypes[10] } func (x Pipeline_Result) Number() protoreflect.EnumNumber { @@ -647,11 +705,11 @@ func (x Pipeline_ResultReason) String() string { } func (Pipeline_ResultReason) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[10].Descriptor() + return file_plumber_pipeline_proto_enumTypes[11].Descriptor() } func (Pipeline_ResultReason) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[10] + return &file_plumber_pipeline_proto_enumTypes[11] } func (x Pipeline_ResultReason) Number() protoreflect.EnumNumber { @@ -690,11 +748,11 @@ func (x ListActivityRequest_Order) String() string { } func (ListActivityRequest_Order) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[11].Descriptor() + return file_plumber_pipeline_proto_enumTypes[12].Descriptor() } func (ListActivityRequest_Order) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[11] + return &file_plumber_pipeline_proto_enumTypes[12] } func (x ListActivityRequest_Order) Number() protoreflect.EnumNumber { @@ -703,7 +761,7 @@ func (x ListActivityRequest_Order) Number() protoreflect.EnumNumber { // Deprecated: Use ListActivityRequest_Order.Descriptor instead. func (ListActivityRequest_Order) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{21, 0} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{22, 0} } type ListActivityRequest_Direction int32 @@ -736,11 +794,11 @@ func (x ListActivityRequest_Direction) String() string { } func (ListActivityRequest_Direction) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[12].Descriptor() + return file_plumber_pipeline_proto_enumTypes[13].Descriptor() } func (ListActivityRequest_Direction) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[12] + return &file_plumber_pipeline_proto_enumTypes[13] } func (x ListActivityRequest_Direction) Number() protoreflect.EnumNumber { @@ -749,7 +807,7 @@ func (x ListActivityRequest_Direction) Number() protoreflect.EnumNumber { // Deprecated: Use ListActivityRequest_Direction.Descriptor instead. func (ListActivityRequest_Direction) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{21, 1} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{22, 1} } type RunNowRequest_Type int32 @@ -785,11 +843,11 @@ func (x RunNowRequest_Type) String() string { } func (RunNowRequest_Type) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[13].Descriptor() + return file_plumber_pipeline_proto_enumTypes[14].Descriptor() } func (RunNowRequest_Type) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[13] + return &file_plumber_pipeline_proto_enumTypes[14] } func (x RunNowRequest_Type) Number() protoreflect.EnumNumber { @@ -798,7 +856,7 @@ func (x RunNowRequest_Type) Number() protoreflect.EnumNumber { // Deprecated: Use RunNowRequest_Type.Descriptor instead. func (RunNowRequest_Type) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{28, 0} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{29, 0} } // Codes serve to determin result of Request processing and wether to interpret the @@ -847,11 +905,11 @@ func (x ResponseStatus_ResponseCode) String() string { } func (ResponseStatus_ResponseCode) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[14].Descriptor() + return file_plumber_pipeline_proto_enumTypes[15].Descriptor() } func (ResponseStatus_ResponseCode) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[14] + return &file_plumber_pipeline_proto_enumTypes[15] } func (x ResponseStatus_ResponseCode) Number() protoreflect.EnumNumber { @@ -860,7 +918,7 @@ func (x ResponseStatus_ResponseCode) Number() protoreflect.EnumNumber { // Deprecated: Use ResponseStatus_ResponseCode.Descriptor instead. func (ResponseStatus_ResponseCode) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{43, 0} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{44, 0} } // States that describe after pipeline execution @@ -904,11 +962,11 @@ func (x AfterPipeline_State) String() string { } func (AfterPipeline_State) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[15].Descriptor() + return file_plumber_pipeline_proto_enumTypes[16].Descriptor() } func (AfterPipeline_State) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[15] + return &file_plumber_pipeline_proto_enumTypes[16] } func (x AfterPipeline_State) Number() protoreflect.EnumNumber { @@ -917,7 +975,7 @@ func (x AfterPipeline_State) Number() protoreflect.EnumNumber { // Deprecated: Use AfterPipeline_State.Descriptor instead. func (AfterPipeline_State) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{46, 0} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{47, 0} } type AfterPipeline_Result int32 @@ -953,11 +1011,11 @@ func (x AfterPipeline_Result) String() string { } func (AfterPipeline_Result) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[16].Descriptor() + return file_plumber_pipeline_proto_enumTypes[17].Descriptor() } func (AfterPipeline_Result) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[16] + return &file_plumber_pipeline_proto_enumTypes[17] } func (x AfterPipeline_Result) Number() protoreflect.EnumNumber { @@ -966,7 +1024,7 @@ func (x AfterPipeline_Result) Number() protoreflect.EnumNumber { // Deprecated: Use AfterPipeline_Result.Descriptor instead. func (AfterPipeline_Result) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{46, 1} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{47, 1} } // Reasons for result different from PASSED @@ -1004,11 +1062,11 @@ func (x AfterPipeline_ResultReason) String() string { } func (AfterPipeline_ResultReason) Descriptor() protoreflect.EnumDescriptor { - return file_plumber_pipeline_proto_enumTypes[17].Descriptor() + return file_plumber_pipeline_proto_enumTypes[18].Descriptor() } func (AfterPipeline_ResultReason) Type() protoreflect.EnumType { - return &file_plumber_pipeline_proto_enumTypes[17] + return &file_plumber_pipeline_proto_enumTypes[18] } func (x AfterPipeline_ResultReason) Number() protoreflect.EnumNumber { @@ -1017,7 +1075,7 @@ func (x AfterPipeline_ResultReason) Number() protoreflect.EnumNumber { // Deprecated: Use AfterPipeline_ResultReason.Descriptor instead. func (AfterPipeline_ResultReason) EnumDescriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{46, 2} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{47, 2} } // Schedule call request @@ -2269,29 +2327,31 @@ func (x *ListGroupedResponse) GetTotalPages() int32 { // match the other search parameters if they are given. // // Arguments: -// - page_size = [required] Number of pipelines per page of List call result. -// - page_token = [required] Starting point for listing, tokens for next and previous +// - page_size = [required] Number of pipelines per page of List call result. +// - page_token = [required] Starting point for listing, tokens for next and previous // page are returned in response. If you are fetching first page // leave it empty and set direction to NEXT -// - order = [required] Sorting order direction -// - direction = [required] Listing direction. Use NEXT with value of 'next_page_token' +// - order = [required] Sorting order direction +// - direction = [required] Listing direction. Use NEXT with value of 'next_page_token' // from ListKeyset response as 'page_token' to fetch next page // of results, or use PREVIOUS with value of 'previous_page_token' // as 'page_token' to fetch the previous page. -// - project_id = [required, optional if wf_id is given] Id of project which +// - project_id = [required, optional if wf_id is given] Id of project which // pipelines should be returned. -// - yml_file_path = [optional] path within GitHub repository to yml file from +// - yml_file_path = [optional] path within GitHub repository to yml file from // which pipeline originated -// - wf_id = [required, optional if project_id is given] Workflow for which +// - wf_id = [required, optional if project_id is given] Workflow for which // pipelines should be returned. -// - created_before = [optional] Return only pipelines created before this timestamp -// - created_after = [optional] Return only pipelines created after this timestamp -// - done_before = [optional] Return only pipelines which finished before this timestamp -// - done_after = [optional] Return only pipelines which finished after this timestamp -// - label = [optional] Return only pipeline with given label +// - created_before = [optional] Return only pipelines created before this timestamp +// - created_after = [optional] Return only pipelines created after this timestamp +// - done_before = [optional] Return only pipelines which finished before this timestamp +// - done_after = [optional] Return only pipelines which finished after this timestamp +// - label = [optional] Return only pipeline with given label // (label is branch/tag name, PR number, snapshot generated label etc.) -// - git_ref_types = [optional] Return only pipelines which originated from one of given git refs -// - queue_id = [optional] Return only pipelines from queue with given id +// - git_ref_types = [optional] Return only pipelines which originated from one of given git refs +// - queue_id = [optional] Return only pipelines from queue with given id +// - pr_head_branch = [optional] Return only pipelines with given PR head branch +// - pr_target_branch = [optional] Return only pipelines with given PR target branch // // Preconditions: // @@ -2308,20 +2368,22 @@ type ListKeysetRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` - PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` - Order ListKeysetRequest_Order `protobuf:"varint,3,opt,name=order,proto3,enum=InternalApi.Plumber.ListKeysetRequest_Order" json:"order,omitempty"` - Direction ListKeysetRequest_Direction `protobuf:"varint,4,opt,name=direction,proto3,enum=InternalApi.Plumber.ListKeysetRequest_Direction" json:"direction,omitempty"` - ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - YmlFilePath string `protobuf:"bytes,6,opt,name=yml_file_path,json=ymlFilePath,proto3" json:"yml_file_path,omitempty"` - WfId string `protobuf:"bytes,7,opt,name=wf_id,json=wfId,proto3" json:"wf_id,omitempty"` - CreatedBefore *timestamp.Timestamp `protobuf:"bytes,8,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"` - CreatedAfter *timestamp.Timestamp `protobuf:"bytes,9,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"` - DoneBefore *timestamp.Timestamp `protobuf:"bytes,10,opt,name=done_before,json=doneBefore,proto3" json:"done_before,omitempty"` - DoneAfter *timestamp.Timestamp `protobuf:"bytes,11,opt,name=done_after,json=doneAfter,proto3" json:"done_after,omitempty"` - Label string `protobuf:"bytes,12,opt,name=label,proto3" json:"label,omitempty"` - GitRefTypes []GitRefType `protobuf:"varint,13,rep,packed,name=git_ref_types,json=gitRefTypes,proto3,enum=InternalApi.Plumber.GitRefType" json:"git_ref_types,omitempty"` - QueueId string `protobuf:"bytes,14,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + Order ListKeysetRequest_Order `protobuf:"varint,3,opt,name=order,proto3,enum=InternalApi.Plumber.ListKeysetRequest_Order" json:"order,omitempty"` + Direction ListKeysetRequest_Direction `protobuf:"varint,4,opt,name=direction,proto3,enum=InternalApi.Plumber.ListKeysetRequest_Direction" json:"direction,omitempty"` + ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + YmlFilePath string `protobuf:"bytes,6,opt,name=yml_file_path,json=ymlFilePath,proto3" json:"yml_file_path,omitempty"` + WfId string `protobuf:"bytes,7,opt,name=wf_id,json=wfId,proto3" json:"wf_id,omitempty"` + CreatedBefore *timestamp.Timestamp `protobuf:"bytes,8,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"` + CreatedAfter *timestamp.Timestamp `protobuf:"bytes,9,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"` + DoneBefore *timestamp.Timestamp `protobuf:"bytes,10,opt,name=done_before,json=doneBefore,proto3" json:"done_before,omitempty"` + DoneAfter *timestamp.Timestamp `protobuf:"bytes,11,opt,name=done_after,json=doneAfter,proto3" json:"done_after,omitempty"` + Label string `protobuf:"bytes,12,opt,name=label,proto3" json:"label,omitempty"` + GitRefTypes []GitRefType `protobuf:"varint,13,rep,packed,name=git_ref_types,json=gitRefTypes,proto3,enum=InternalApi.Plumber.GitRefType" json:"git_ref_types,omitempty"` + QueueId string `protobuf:"bytes,14,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` + PrHeadBranch string `protobuf:"bytes,15,opt,name=pr_head_branch,json=prHeadBranch,proto3" json:"pr_head_branch,omitempty"` + PrTargetBranch string `protobuf:"bytes,16,opt,name=pr_target_branch,json=prTargetBranch,proto3" json:"pr_target_branch,omitempty"` } func (x *ListKeysetRequest) Reset() { @@ -2454,6 +2516,20 @@ func (x *ListKeysetRequest) GetQueueId() string { return "" } +func (x *ListKeysetRequest) GetPrHeadBranch() string { + if x != nil { + return x.PrHeadBranch + } + return "" +} + +func (x *ListKeysetRequest) GetPrTargetBranch() string { + if x != nil { + return x.PrTargetBranch + } + return "" +} + // ListKeyset call response // // Response: @@ -2532,28 +2608,27 @@ func (x *ListKeysetResponse) GetPreviousPageToken() string { // other search parameters if they are given. // // Arguments: -// -// - project_id = [required, optional if wf_id is given] Id of project which +// - project_id = [required, optional if wf_id is given] Id of project which // pipelines should be returned. -// // # DEPRECATED - instead use: label + git_ref_types = [BRANCH] +// - branch_name = [optional] Name of branch which pipelines should be returned. // -// - branch_name = [optional] Name of branch which pipelines should be returned. -// -// - page = [required] Serial number of wanted page with List call result. -// - page_size = [required] Number of pipelines per page of List call result. -// - yml_file_path = [optional] path within GitHub repository to yml file from +// - page = [required] Serial number of wanted page with List call result. +// - page_size = [required] Number of pipelines per page of List call result. +// - yml_file_path = [optional] path within GitHub repository to yml file from // which pipeline originated -// - wf_id = [required, optional if project_id is given] Workflow for which +// - wf_id = [required, optional if project_id is given] Workflow for which // pipelines should be returned. -// - created_before = [optional] Return only pipelines created before this timestamp -// - created_after = [optional] Return only pipelines created after this timestamp -// - done_before = [optional] Return only pipelines which finished before this timestamp -// - done_after = [optional] Return only pipelines which finished after this timestamp -// - label = [optional] Return only pipeline with given label +// - created_before = [optional] Return only pipelines created before this timestamp +// - created_after = [optional] Return only pipelines created after this timestamp +// - done_before = [optional] Return only pipelines which finished before this timestamp +// - done_after = [optional] Return only pipelines which finished after this timestamp +// - label = [optional] Return only pipeline with given label // (label is branch/tag name, PR number, snapshot generated label etc.) -// - git_ref_types = [optional] Return only pipelines which originated from one of given git refs -// - queue_id = [optional] Return only pipelines from queue with given id +// - git_ref_types = [optional] Return only pipelines which originated from one of given git refs +// - queue_id = [optional] Return only pipelines from queue with given id +// - pr_head_branch = [optional] Return only pipelines with given PR head branch +// - pr_target_branch = [optional] Return only pipelines with given PR target branch // // Preconditions: // @@ -2565,19 +2640,21 @@ type ListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - BranchName string `protobuf:"bytes,2,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"` // DEPRECATED - Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` - PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` - YmlFilePath string `protobuf:"bytes,5,opt,name=yml_file_path,json=ymlFilePath,proto3" json:"yml_file_path,omitempty"` - WfId string `protobuf:"bytes,6,opt,name=wf_id,json=wfId,proto3" json:"wf_id,omitempty"` - CreatedBefore *timestamp.Timestamp `protobuf:"bytes,7,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"` - CreatedAfter *timestamp.Timestamp `protobuf:"bytes,8,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"` - DoneBefore *timestamp.Timestamp `protobuf:"bytes,9,opt,name=done_before,json=doneBefore,proto3" json:"done_before,omitempty"` - DoneAfter *timestamp.Timestamp `protobuf:"bytes,10,opt,name=done_after,json=doneAfter,proto3" json:"done_after,omitempty"` - Label string `protobuf:"bytes,11,opt,name=label,proto3" json:"label,omitempty"` - GitRefTypes []GitRefType `protobuf:"varint,12,rep,packed,name=git_ref_types,json=gitRefTypes,proto3,enum=InternalApi.Plumber.GitRefType" json:"git_ref_types,omitempty"` - QueueId string `protobuf:"bytes,13,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + BranchName string `protobuf:"bytes,2,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"` // DEPRECATED + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + YmlFilePath string `protobuf:"bytes,5,opt,name=yml_file_path,json=ymlFilePath,proto3" json:"yml_file_path,omitempty"` + WfId string `protobuf:"bytes,6,opt,name=wf_id,json=wfId,proto3" json:"wf_id,omitempty"` + CreatedBefore *timestamp.Timestamp `protobuf:"bytes,7,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"` + CreatedAfter *timestamp.Timestamp `protobuf:"bytes,8,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"` + DoneBefore *timestamp.Timestamp `protobuf:"bytes,9,opt,name=done_before,json=doneBefore,proto3" json:"done_before,omitempty"` + DoneAfter *timestamp.Timestamp `protobuf:"bytes,10,opt,name=done_after,json=doneAfter,proto3" json:"done_after,omitempty"` + Label string `protobuf:"bytes,11,opt,name=label,proto3" json:"label,omitempty"` + GitRefTypes []GitRefType `protobuf:"varint,12,rep,packed,name=git_ref_types,json=gitRefTypes,proto3,enum=InternalApi.Plumber.GitRefType" json:"git_ref_types,omitempty"` + QueueId string `protobuf:"bytes,13,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` + PrHeadBranch string `protobuf:"bytes,14,opt,name=pr_head_branch,json=prHeadBranch,proto3" json:"pr_head_branch,omitempty"` + PrTargetBranch string `protobuf:"bytes,15,opt,name=pr_target_branch,json=prTargetBranch,proto3" json:"pr_target_branch,omitempty"` } func (x *ListRequest) Reset() { @@ -2703,6 +2780,20 @@ func (x *ListRequest) GetQueueId() string { return "" } +func (x *ListRequest) GetPrHeadBranch() string { + if x != nil { + return x.PrHeadBranch + } + return "" +} + +func (x *ListRequest) GetPrTargetBranch() string { + if x != nil { + return x.PrTargetBranch + } + return "" +} + // List call response // // Response: @@ -2994,6 +3085,8 @@ func (x *Queue) GetType() QueueType { // Only available if related hook was processed by hooks-receiver/processor (only BitBucket currently) // // - env_vars = [optional] Environment variables that were set for the pipeline (via extension request) +// - triggerer = [required] Who and how triggered the pipeline +// - organization_id = [required] Id of organization to which given pipeline belongs type Pipeline struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3033,6 +3126,8 @@ type Pipeline struct { AfterTaskId string `protobuf:"bytes,32,opt,name=after_task_id,json=afterTaskId,proto3" json:"after_task_id,omitempty"` RepositoryId string `protobuf:"bytes,33,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"` EnvVars []*EnvVariable `protobuf:"bytes,34,rep,name=env_vars,json=envVars,proto3" json:"env_vars,omitempty"` + Triggerer *Triggerer `protobuf:"bytes,35,opt,name=triggerer,proto3" json:"triggerer,omitempty"` + OrganizationId string `protobuf:"bytes,36,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` } func (x *Pipeline) Reset() { @@ -3305,6 +3400,139 @@ func (x *Pipeline) GetEnvVars() []*EnvVariable { return nil } +func (x *Pipeline) GetTriggerer() *Triggerer { + if x != nil { + return x.Triggerer + } + return nil +} + +func (x *Pipeline) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +type Triggerer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WfTriggeredBy plumber_w_f_workflow.TriggeredBy `protobuf:"varint,1,opt,name=wf_triggered_by,json=wfTriggeredBy,proto3,enum=InternalApi.PlumberWF.TriggeredBy" json:"wf_triggered_by,omitempty"` + WfTriggererId string `protobuf:"bytes,2,opt,name=wf_triggerer_id,json=wfTriggererId,proto3" json:"wf_triggerer_id,omitempty"` + WfTriggererUserId string `protobuf:"bytes,3,opt,name=wf_triggerer_user_id,json=wfTriggererUserId,proto3" json:"wf_triggerer_user_id,omitempty"` + WfTriggererProviderLogin string `protobuf:"bytes,4,opt,name=wf_triggerer_provider_login,json=wfTriggererProviderLogin,proto3" json:"wf_triggerer_provider_login,omitempty"` + WfTriggererProviderUid string `protobuf:"bytes,5,opt,name=wf_triggerer_provider_uid,json=wfTriggererProviderUid,proto3" json:"wf_triggerer_provider_uid,omitempty"` + WfTriggererProviderAvatar string `protobuf:"bytes,6,opt,name=wf_triggerer_provider_avatar,json=wfTriggererProviderAvatar,proto3" json:"wf_triggerer_provider_avatar,omitempty"` + PplTriggeredBy TriggeredBy `protobuf:"varint,7,opt,name=ppl_triggered_by,json=pplTriggeredBy,proto3,enum=InternalApi.Plumber.TriggeredBy" json:"ppl_triggered_by,omitempty"` + PplTriggererId string `protobuf:"bytes,8,opt,name=ppl_triggerer_id,json=pplTriggererId,proto3" json:"ppl_triggerer_id,omitempty"` + PplTriggererUserId string `protobuf:"bytes,9,opt,name=ppl_triggerer_user_id,json=pplTriggererUserId,proto3" json:"ppl_triggerer_user_id,omitempty"` + WorkflowRerunOf string `protobuf:"bytes,10,opt,name=workflow_rerun_of,json=workflowRerunOf,proto3" json:"workflow_rerun_of,omitempty"` +} + +func (x *Triggerer) Reset() { + *x = Triggerer{} + if protoimpl.UnsafeEnabled { + mi := &file_plumber_pipeline_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Triggerer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Triggerer) ProtoMessage() {} + +func (x *Triggerer) ProtoReflect() protoreflect.Message { + mi := &file_plumber_pipeline_proto_msgTypes[21] + 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 Triggerer.ProtoReflect.Descriptor instead. +func (*Triggerer) Descriptor() ([]byte, []int) { + return file_plumber_pipeline_proto_rawDescGZIP(), []int{21} +} + +func (x *Triggerer) GetWfTriggeredBy() plumber_w_f_workflow.TriggeredBy { + if x != nil { + return x.WfTriggeredBy + } + return plumber_w_f_workflow.TriggeredBy_HOOK +} + +func (x *Triggerer) GetWfTriggererId() string { + if x != nil { + return x.WfTriggererId + } + return "" +} + +func (x *Triggerer) GetWfTriggererUserId() string { + if x != nil { + return x.WfTriggererUserId + } + return "" +} + +func (x *Triggerer) GetWfTriggererProviderLogin() string { + if x != nil { + return x.WfTriggererProviderLogin + } + return "" +} + +func (x *Triggerer) GetWfTriggererProviderUid() string { + if x != nil { + return x.WfTriggererProviderUid + } + return "" +} + +func (x *Triggerer) GetWfTriggererProviderAvatar() string { + if x != nil { + return x.WfTriggererProviderAvatar + } + return "" +} + +func (x *Triggerer) GetPplTriggeredBy() TriggeredBy { + if x != nil { + return x.PplTriggeredBy + } + return TriggeredBy_WORKFLOW +} + +func (x *Triggerer) GetPplTriggererId() string { + if x != nil { + return x.PplTriggererId + } + return "" +} + +func (x *Triggerer) GetPplTriggererUserId() string { + if x != nil { + return x.PplTriggererUserId + } + return "" +} + +func (x *Triggerer) GetWorkflowRerunOf() string { + if x != nil { + return x.WorkflowRerunOf + } + return "" +} + // ListActivity call request // // Synchronous operation. @@ -3346,7 +3574,7 @@ type ListActivityRequest struct { func (x *ListActivityRequest) Reset() { *x = ListActivityRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[21] + mi := &file_plumber_pipeline_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3359,7 +3587,7 @@ func (x *ListActivityRequest) String() string { func (*ListActivityRequest) ProtoMessage() {} func (x *ListActivityRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[21] + mi := &file_plumber_pipeline_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3372,7 +3600,7 @@ func (x *ListActivityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListActivityRequest.ProtoReflect.Descriptor instead. func (*ListActivityRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{21} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{22} } func (x *ListActivityRequest) GetPageSize() int32 { @@ -3431,7 +3659,7 @@ type ListActivityResponse struct { func (x *ListActivityResponse) Reset() { *x = ListActivityResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[22] + mi := &file_plumber_pipeline_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3444,7 +3672,7 @@ func (x *ListActivityResponse) String() string { func (*ListActivityResponse) ProtoMessage() {} func (x *ListActivityResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[22] + mi := &file_plumber_pipeline_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3457,7 +3685,7 @@ func (x *ListActivityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListActivityResponse.ProtoReflect.Descriptor instead. func (*ListActivityResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{22} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{23} } func (x *ListActivityResponse) GetNextPageToken() string { @@ -3509,7 +3737,7 @@ type ListRequestersRequest struct { func (x *ListRequestersRequest) Reset() { *x = ListRequestersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[23] + mi := &file_plumber_pipeline_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3522,7 +3750,7 @@ func (x *ListRequestersRequest) String() string { func (*ListRequestersRequest) ProtoMessage() {} func (x *ListRequestersRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[23] + mi := &file_plumber_pipeline_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3535,7 +3763,7 @@ func (x *ListRequestersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRequestersRequest.ProtoReflect.Descriptor instead. func (*ListRequestersRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{23} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{24} } func (x *ListRequestersRequest) GetOrganizationId() string { @@ -3590,7 +3818,7 @@ type ListRequestersResponse struct { func (x *ListRequestersResponse) Reset() { *x = ListRequestersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[24] + mi := &file_plumber_pipeline_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3603,7 +3831,7 @@ func (x *ListRequestersResponse) String() string { func (*ListRequestersResponse) ProtoMessage() {} func (x *ListRequestersResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[24] + mi := &file_plumber_pipeline_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3616,7 +3844,7 @@ func (x *ListRequestersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRequestersResponse.ProtoReflect.Descriptor instead. func (*ListRequestersResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{24} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{25} } func (x *ListRequestersResponse) GetRequesters() []*Requester { @@ -3662,7 +3890,7 @@ type Requester struct { func (x *Requester) Reset() { *x = Requester{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[25] + mi := &file_plumber_pipeline_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3675,7 +3903,7 @@ func (x *Requester) String() string { func (*Requester) ProtoMessage() {} func (x *Requester) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[25] + mi := &file_plumber_pipeline_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3688,7 +3916,7 @@ func (x *Requester) ProtoReflect() protoreflect.Message { // Deprecated: Use Requester.ProtoReflect.Descriptor instead. func (*Requester) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{25} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{26} } func (x *Requester) GetOrganizationId() string { @@ -3787,6 +4015,7 @@ func (x *Requester) GetRequestedAt() *timestamp.Timestamp { // - commit_message = [required] Git commit message of th commit for which pipeline was initiated // - commiter_username = [required] GitHub username of the person that authored given commit // - commiter_avatar_url = [required] URL to GitHub avatar of the author of the given commit +// - triggerer = [required] Who and how triggered the pipeline type ActivePipeline struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3825,14 +4054,15 @@ type ActivePipeline struct { GitRefType GitRefType `protobuf:"varint,27,opt,name=git_ref_type,json=gitRefType,proto3,enum=InternalApi.Plumber.GitRefType" json:"git_ref_type,omitempty"` CommitMessage string `protobuf:"bytes,28,opt,name=commit_message,json=commitMessage,proto3" json:"commit_message,omitempty"` // Commiter data used when they are not Semaphore users - CommiterUsername string `protobuf:"bytes,29,opt,name=commiter_username,json=commiterUsername,proto3" json:"commiter_username,omitempty"` - CommiterAvatarUrl string `protobuf:"bytes,30,opt,name=commiter_avatar_url,json=commiterAvatarUrl,proto3" json:"commiter_avatar_url,omitempty"` + CommiterUsername string `protobuf:"bytes,29,opt,name=commiter_username,json=commiterUsername,proto3" json:"commiter_username,omitempty"` + CommiterAvatarUrl string `protobuf:"bytes,30,opt,name=commiter_avatar_url,json=commiterAvatarUrl,proto3" json:"commiter_avatar_url,omitempty"` + Triggerer *Triggerer `protobuf:"bytes,31,opt,name=triggerer,proto3" json:"triggerer,omitempty"` } func (x *ActivePipeline) Reset() { *x = ActivePipeline{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[26] + mi := &file_plumber_pipeline_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3845,7 +4075,7 @@ func (x *ActivePipeline) String() string { func (*ActivePipeline) ProtoMessage() {} func (x *ActivePipeline) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[26] + mi := &file_plumber_pipeline_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3858,7 +4088,7 @@ func (x *ActivePipeline) ProtoReflect() protoreflect.Message { // Deprecated: Use ActivePipeline.ProtoReflect.Descriptor instead. func (*ActivePipeline) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{26} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{27} } func (x *ActivePipeline) GetOrganizationId() string { @@ -4071,6 +4301,13 @@ func (x *ActivePipeline) GetCommiterAvatarUrl() string { return "" } +func (x *ActivePipeline) GetTriggerer() *Triggerer { + if x != nil { + return x.Triggerer + } + return nil +} + // Block details // // Fields: @@ -4106,7 +4343,7 @@ type BlockDetails struct { func (x *BlockDetails) Reset() { *x = BlockDetails{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[27] + mi := &file_plumber_pipeline_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4119,7 +4356,7 @@ func (x *BlockDetails) String() string { func (*BlockDetails) ProtoMessage() {} func (x *BlockDetails) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[27] + mi := &file_plumber_pipeline_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4132,7 +4369,7 @@ func (x *BlockDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockDetails.ProtoReflect.Descriptor instead. func (*BlockDetails) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{27} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{28} } func (x *BlockDetails) GetBlockId() string { @@ -4235,7 +4472,7 @@ type RunNowRequest struct { func (x *RunNowRequest) Reset() { *x = RunNowRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[28] + mi := &file_plumber_pipeline_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4248,7 +4485,7 @@ func (x *RunNowRequest) String() string { func (*RunNowRequest) ProtoMessage() {} func (x *RunNowRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[28] + mi := &file_plumber_pipeline_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4261,7 +4498,7 @@ func (x *RunNowRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RunNowRequest.ProtoReflect.Descriptor instead. func (*RunNowRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{28} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{29} } func (x *RunNowRequest) GetRequesterId() string { @@ -4311,7 +4548,7 @@ type RunNowResponse struct { func (x *RunNowResponse) Reset() { *x = RunNowResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[29] + mi := &file_plumber_pipeline_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4324,7 +4561,7 @@ func (x *RunNowResponse) String() string { func (*RunNowResponse) ProtoMessage() {} func (x *RunNowResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[29] + mi := &file_plumber_pipeline_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4337,7 +4574,7 @@ func (x *RunNowResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RunNowResponse.ProtoReflect.Descriptor instead. func (*RunNowResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{29} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{30} } // GetProjectId call request @@ -4366,7 +4603,7 @@ type GetProjectIdRequest struct { func (x *GetProjectIdRequest) Reset() { *x = GetProjectIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[30] + mi := &file_plumber_pipeline_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4379,7 +4616,7 @@ func (x *GetProjectIdRequest) String() string { func (*GetProjectIdRequest) ProtoMessage() {} func (x *GetProjectIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[30] + mi := &file_plumber_pipeline_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4392,7 +4629,7 @@ func (x *GetProjectIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectIdRequest.ProtoReflect.Descriptor instead. func (*GetProjectIdRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{30} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{31} } func (x *GetProjectIdRequest) GetPplId() string { @@ -4421,7 +4658,7 @@ type GetProjectIdResponse struct { func (x *GetProjectIdResponse) Reset() { *x = GetProjectIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[31] + mi := &file_plumber_pipeline_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4434,7 +4671,7 @@ func (x *GetProjectIdResponse) String() string { func (*GetProjectIdResponse) ProtoMessage() {} func (x *GetProjectIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[31] + mi := &file_plumber_pipeline_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4447,7 +4684,7 @@ func (x *GetProjectIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectIdResponse.ProtoReflect.Descriptor instead. func (*GetProjectIdResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{31} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{32} } func (x *GetProjectIdResponse) GetResponseStatus() *ResponseStatus { @@ -4505,7 +4742,7 @@ type ValidateYamlRequest struct { func (x *ValidateYamlRequest) Reset() { *x = ValidateYamlRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[32] + mi := &file_plumber_pipeline_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4518,7 +4755,7 @@ func (x *ValidateYamlRequest) String() string { func (*ValidateYamlRequest) ProtoMessage() {} func (x *ValidateYamlRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[32] + mi := &file_plumber_pipeline_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4531,7 +4768,7 @@ func (x *ValidateYamlRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateYamlRequest.ProtoReflect.Descriptor instead. func (*ValidateYamlRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{32} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{33} } func (x *ValidateYamlRequest) GetYamlDefinition() string { @@ -4569,7 +4806,7 @@ type ValidateYamlResponse struct { func (x *ValidateYamlResponse) Reset() { *x = ValidateYamlResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[33] + mi := &file_plumber_pipeline_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4582,7 +4819,7 @@ func (x *ValidateYamlResponse) String() string { func (*ValidateYamlResponse) ProtoMessage() {} func (x *ValidateYamlResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[33] + mi := &file_plumber_pipeline_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4595,7 +4832,7 @@ func (x *ValidateYamlResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateYamlResponse.ProtoReflect.Descriptor instead. func (*ValidateYamlResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{33} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{34} } func (x *ValidateYamlResponse) GetResponseStatus() *ResponseStatus { @@ -4621,18 +4858,19 @@ func (x *ValidateYamlResponse) GetPplId() string { // // Arguments: // -// - file_path = [required] Path inside repo of YAML file containing pipeline +// - file_path = [required] Path inside repo of YAML file containing pipeline // definition -// - ppl_id = [required] Id of pipeline from which repo and auth data +// - ppl_id = [required] Id of pipeline from which repo and auth data // will be used for scheduling -// - request_token = [required] Unique string, see Idempotency -// - env_variables = [optional] Env vars which will be added to ppl_env_vars +// - request_token = [required] Unique string, see Idempotency +// - env_variables = [optional] Env vars which will be added to ppl_env_vars // in this pipeline's jobs -// - prev_ppl_artefact_ids = [required] ppl_artefact_ids of previous pipelines in workflow -// - promoted_by = [required] ID of the user that triggered this +// - prev_ppl_artefact_ids = [required] ppl_artefact_ids of previous pipelines in workflow +// - promoted_by = [required] ID of the user that triggered this // (the value is 'auto' for auto-promoted pipelines) -// - auto_promoted = [required] true if extension was auto-promoted, otherwise it is false -// - secret_names = [optional] Secret names that will be added to global job configuration +// - auto_promoted = [required] true if extension was auto-promoted, otherwise it is false +// - secret_names = [optional] Secret names that will be added to global job configuration +// - deployment_target_id = [optional] Deployment Target ID that guarded promoted pipeline // // Preconditions: // - Pipeline with given ppl_id must already be scheduled @@ -4659,12 +4897,13 @@ type ScheduleExtensionRequest struct { PromotedBy string `protobuf:"bytes,7,opt,name=promoted_by,json=promotedBy,proto3" json:"promoted_by,omitempty"` AutoPromoted bool `protobuf:"varint,8,opt,name=auto_promoted,json=autoPromoted,proto3" json:"auto_promoted,omitempty"` SecretNames []string `protobuf:"bytes,9,rep,name=secret_names,json=secretNames,proto3" json:"secret_names,omitempty"` + DeploymentTargetId string `protobuf:"bytes,10,opt,name=deployment_target_id,json=deploymentTargetId,proto3" json:"deployment_target_id,omitempty"` } func (x *ScheduleExtensionRequest) Reset() { *x = ScheduleExtensionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[34] + mi := &file_plumber_pipeline_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4677,7 +4916,7 @@ func (x *ScheduleExtensionRequest) String() string { func (*ScheduleExtensionRequest) ProtoMessage() {} func (x *ScheduleExtensionRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[34] + mi := &file_plumber_pipeline_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4690,7 +4929,7 @@ func (x *ScheduleExtensionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ScheduleExtensionRequest.ProtoReflect.Descriptor instead. func (*ScheduleExtensionRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{34} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{35} } func (x *ScheduleExtensionRequest) GetFilePath() string { @@ -4749,6 +4988,13 @@ func (x *ScheduleExtensionRequest) GetSecretNames() []string { return nil } +func (x *ScheduleExtensionRequest) GetDeploymentTargetId() string { + if x != nil { + return x.DeploymentTargetId + } + return "" +} + // Type which models environment variables with name and string value type EnvVariable struct { state protoimpl.MessageState @@ -4762,7 +5008,7 @@ type EnvVariable struct { func (x *EnvVariable) Reset() { *x = EnvVariable{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[35] + mi := &file_plumber_pipeline_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4775,7 +5021,7 @@ func (x *EnvVariable) String() string { func (*EnvVariable) ProtoMessage() {} func (x *EnvVariable) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[35] + mi := &file_plumber_pipeline_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4788,7 +5034,7 @@ func (x *EnvVariable) ProtoReflect() protoreflect.Message { // Deprecated: Use EnvVariable.ProtoReflect.Descriptor instead. func (*EnvVariable) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{35} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{36} } func (x *EnvVariable) GetName() string { @@ -4826,7 +5072,7 @@ type ScheduleExtensionResponse struct { func (x *ScheduleExtensionResponse) Reset() { *x = ScheduleExtensionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[36] + mi := &file_plumber_pipeline_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4839,7 +5085,7 @@ func (x *ScheduleExtensionResponse) String() string { func (*ScheduleExtensionResponse) ProtoMessage() {} func (x *ScheduleExtensionResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[36] + mi := &file_plumber_pipeline_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4852,7 +5098,7 @@ func (x *ScheduleExtensionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ScheduleExtensionResponse.ProtoReflect.Descriptor instead. func (*ScheduleExtensionResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{36} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{37} } func (x *ScheduleExtensionResponse) GetResponseStatus() *ResponseStatus { @@ -4899,7 +5145,7 @@ type DeleteRequest struct { func (x *DeleteRequest) Reset() { *x = DeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[37] + mi := &file_plumber_pipeline_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4912,7 +5158,7 @@ func (x *DeleteRequest) String() string { func (*DeleteRequest) ProtoMessage() {} func (x *DeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[37] + mi := &file_plumber_pipeline_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4925,7 +5171,7 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. func (*DeleteRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{37} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{38} } func (x *DeleteRequest) GetProjectId() string { @@ -4958,7 +5204,7 @@ type DeleteResponse struct { func (x *DeleteResponse) Reset() { *x = DeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[38] + mi := &file_plumber_pipeline_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4971,7 +5217,7 @@ func (x *DeleteResponse) String() string { func (*DeleteResponse) ProtoMessage() {} func (x *DeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[38] + mi := &file_plumber_pipeline_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4984,7 +5230,7 @@ func (x *DeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead. func (*DeleteResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{38} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{39} } func (x *DeleteResponse) GetStatus() *ResponseStatus { @@ -5031,7 +5277,7 @@ type PartialRebuildRequest struct { func (x *PartialRebuildRequest) Reset() { *x = PartialRebuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[39] + mi := &file_plumber_pipeline_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5044,7 +5290,7 @@ func (x *PartialRebuildRequest) String() string { func (*PartialRebuildRequest) ProtoMessage() {} func (x *PartialRebuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[39] + mi := &file_plumber_pipeline_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5057,7 +5303,7 @@ func (x *PartialRebuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PartialRebuildRequest.ProtoReflect.Descriptor instead. func (*PartialRebuildRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{39} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{40} } func (x *PartialRebuildRequest) GetPplId() string { @@ -5103,7 +5349,7 @@ type PartialRebuildResponse struct { func (x *PartialRebuildResponse) Reset() { *x = PartialRebuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[40] + mi := &file_plumber_pipeline_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5116,7 +5362,7 @@ func (x *PartialRebuildResponse) String() string { func (*PartialRebuildResponse) ProtoMessage() {} func (x *PartialRebuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[40] + mi := &file_plumber_pipeline_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5129,7 +5375,7 @@ func (x *PartialRebuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PartialRebuildResponse.ProtoReflect.Descriptor instead. func (*PartialRebuildResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{40} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{41} } func (x *PartialRebuildResponse) GetResponseStatus() *ResponseStatus { @@ -5169,7 +5415,7 @@ type VersionRequest struct { func (x *VersionRequest) Reset() { *x = VersionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[41] + mi := &file_plumber_pipeline_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5182,7 +5428,7 @@ func (x *VersionRequest) String() string { func (*VersionRequest) ProtoMessage() {} func (x *VersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[41] + mi := &file_plumber_pipeline_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5195,7 +5441,7 @@ func (x *VersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionRequest.ProtoReflect.Descriptor instead. func (*VersionRequest) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{41} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{42} } // Version call response @@ -5213,7 +5459,7 @@ type VersionResponse struct { func (x *VersionResponse) Reset() { *x = VersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[42] + mi := &file_plumber_pipeline_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5226,7 +5472,7 @@ func (x *VersionResponse) String() string { func (*VersionResponse) ProtoMessage() {} func (x *VersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[42] + mi := &file_plumber_pipeline_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5239,7 +5485,7 @@ func (x *VersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionResponse.ProtoReflect.Descriptor instead. func (*VersionResponse) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{42} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{43} } func (x *VersionResponse) GetVersion() string { @@ -5261,7 +5507,7 @@ type ResponseStatus struct { func (x *ResponseStatus) Reset() { *x = ResponseStatus{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[43] + mi := &file_plumber_pipeline_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5274,7 +5520,7 @@ func (x *ResponseStatus) String() string { func (*ResponseStatus) ProtoMessage() {} func (x *ResponseStatus) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[43] + mi := &file_plumber_pipeline_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5287,7 +5533,7 @@ func (x *ResponseStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ResponseStatus.ProtoReflect.Descriptor instead. func (*ResponseStatus) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{43} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{44} } func (x *ResponseStatus) GetCode() ResponseStatus_ResponseCode { @@ -5347,7 +5593,7 @@ type PipelineEvent struct { func (x *PipelineEvent) Reset() { *x = PipelineEvent{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[44] + mi := &file_plumber_pipeline_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5360,7 +5606,7 @@ func (x *PipelineEvent) String() string { func (*PipelineEvent) ProtoMessage() {} func (x *PipelineEvent) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[44] + mi := &file_plumber_pipeline_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5373,7 +5619,7 @@ func (x *PipelineEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use PipelineEvent.ProtoReflect.Descriptor instead. func (*PipelineEvent) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{44} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{45} } func (x *PipelineEvent) GetPipelineId() string { @@ -5426,7 +5672,7 @@ type PipelineBlockEvent struct { func (x *PipelineBlockEvent) Reset() { *x = PipelineBlockEvent{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[45] + mi := &file_plumber_pipeline_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5439,7 +5685,7 @@ func (x *PipelineBlockEvent) String() string { func (*PipelineBlockEvent) ProtoMessage() {} func (x *PipelineBlockEvent) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[45] + mi := &file_plumber_pipeline_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5452,7 +5698,7 @@ func (x *PipelineBlockEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use PipelineBlockEvent.ProtoReflect.Descriptor instead. func (*PipelineBlockEvent) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{45} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{46} } func (x *PipelineBlockEvent) GetPipelineId() string { @@ -5507,7 +5753,7 @@ type AfterPipeline struct { func (x *AfterPipeline) Reset() { *x = AfterPipeline{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[46] + mi := &file_plumber_pipeline_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5520,7 +5766,7 @@ func (x *AfterPipeline) String() string { func (*AfterPipeline) ProtoMessage() {} func (x *AfterPipeline) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[46] + mi := &file_plumber_pipeline_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5533,7 +5779,7 @@ func (x *AfterPipeline) ProtoReflect() protoreflect.Message { // Deprecated: Use AfterPipeline.ProtoReflect.Descriptor instead. func (*AfterPipeline) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{46} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{47} } func (x *AfterPipeline) GetPipelineId() string { @@ -5601,7 +5847,7 @@ type AfterPipelineEvent struct { func (x *AfterPipelineEvent) Reset() { *x = AfterPipelineEvent{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[47] + mi := &file_plumber_pipeline_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5614,7 +5860,7 @@ func (x *AfterPipelineEvent) String() string { func (*AfterPipelineEvent) ProtoMessage() {} func (x *AfterPipelineEvent) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[47] + mi := &file_plumber_pipeline_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5627,7 +5873,7 @@ func (x *AfterPipelineEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AfterPipelineEvent.ProtoReflect.Descriptor instead. func (*AfterPipelineEvent) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{47} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{48} } func (x *AfterPipelineEvent) GetPipelineId() string { @@ -5665,7 +5911,7 @@ type ScheduleRequest_Repo struct { func (x *ScheduleRequest_Repo) Reset() { *x = ScheduleRequest_Repo{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[48] + mi := &file_plumber_pipeline_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5678,7 +5924,7 @@ func (x *ScheduleRequest_Repo) String() string { func (*ScheduleRequest_Repo) ProtoMessage() {} func (x *ScheduleRequest_Repo) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[48] + mi := &file_plumber_pipeline_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5735,7 +5981,7 @@ type ScheduleRequest_Auth struct { func (x *ScheduleRequest_Auth) Reset() { *x = ScheduleRequest_Auth{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[49] + mi := &file_plumber_pipeline_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5748,7 +5994,7 @@ func (x *ScheduleRequest_Auth) String() string { func (*ScheduleRequest_Auth) ProtoMessage() {} func (x *ScheduleRequest_Auth) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[49] + mi := &file_plumber_pipeline_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5807,7 +6053,7 @@ type Block_Job struct { func (x *Block_Job) Reset() { *x = Block_Job{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[50] + mi := &file_plumber_pipeline_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5820,7 +6066,7 @@ func (x *Block_Job) String() string { func (*Block_Job) ProtoMessage() {} func (x *Block_Job) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[50] + mi := &file_plumber_pipeline_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5891,7 +6137,7 @@ type DescribeTopologyResponse_Block struct { func (x *DescribeTopologyResponse_Block) Reset() { *x = DescribeTopologyResponse_Block{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[51] + mi := &file_plumber_pipeline_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5904,7 +6150,7 @@ func (x *DescribeTopologyResponse_Block) String() string { func (*DescribeTopologyResponse_Block) ProtoMessage() {} func (x *DescribeTopologyResponse_Block) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[51] + mi := &file_plumber_pipeline_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5952,7 +6198,7 @@ type DescribeTopologyResponse_AfterPipeline struct { func (x *DescribeTopologyResponse_AfterPipeline) Reset() { *x = DescribeTopologyResponse_AfterPipeline{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[52] + mi := &file_plumber_pipeline_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5965,7 +6211,7 @@ func (x *DescribeTopologyResponse_AfterPipeline) String() string { func (*DescribeTopologyResponse_AfterPipeline) ProtoMessage() {} func (x *DescribeTopologyResponse_AfterPipeline) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[52] + mi := &file_plumber_pipeline_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6008,7 +6254,7 @@ type BlockDetails_JobDetails struct { func (x *BlockDetails_JobDetails) Reset() { *x = BlockDetails_JobDetails{} if protoimpl.UnsafeEnabled { - mi := &file_plumber_pipeline_proto_msgTypes[53] + mi := &file_plumber_pipeline_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6021,7 +6267,7 @@ func (x *BlockDetails_JobDetails) String() string { func (*BlockDetails_JobDetails) ProtoMessage() {} func (x *BlockDetails_JobDetails) ProtoReflect() protoreflect.Message { - mi := &file_plumber_pipeline_proto_msgTypes[53] + mi := &file_plumber_pipeline_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6034,7 +6280,7 @@ func (x *BlockDetails_JobDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockDetails_JobDetails.ProtoReflect.Descriptor instead. func (*BlockDetails_JobDetails) Descriptor() ([]byte, []int) { - return file_plumber_pipeline_proto_rawDescGZIP(), []int{27, 0} + return file_plumber_pipeline_proto_rawDescGZIP(), []int{28, 0} } func (x *BlockDetails_JobDetails) GetName() string { @@ -6300,7 +6546,7 @@ var file_plumber_pipeline_proto_rawDesc = []byte{ 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0xf6, 0x05, 0x0a, 0x11, 0x4c, 0x69, 0x73, + 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0xc6, 0x06, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, @@ -6343,7 +6589,12 @@ var file_plumber_pipeline_proto_rawDesc = []byte{ 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, + 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x72, 0x48, 0x65, 0x61, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, + 0x0a, 0x10, 0x70, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, + 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, @@ -6358,7 +6609,7 @@ var file_plumber_pipeline_proto_rawDesc = []byte{ 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa9, 0x04, + 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf9, 0x04, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, @@ -6393,7 +6644,12 @@ var file_plumber_pipeline_proto_rawDesc = []byte{ 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x22, 0x9d, 0x02, 0x0a, 0x0c, 0x4c, 0x69, + 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x70, 0x72, 0x48, 0x65, 0x61, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, + 0x28, 0x0a, 0x10, 0x70, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x9d, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, @@ -6424,7 +6680,7 @@ var file_plumber_pipeline_proto_rawDesc = []byte{ 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x22, 0xdf, 0x0d, 0x0a, 0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x74, 0x79, 0x70, 0x65, 0x22, 0xc6, 0x0e, 0x0a, 0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, @@ -6516,515 +6772,570 @@ var file_plumber_pipeline_proto_rawDesc = []byte{ 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x07, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x22, 0x58, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, - 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, - 0x12, 0x0b, 0x0a, 0x07, 0x51, 0x55, 0x45, 0x55, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, - 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, - 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, - 0x10, 0x05, 0x22, 0x3b, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x0a, 0x06, - 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, - 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, - 0x84, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x41, - 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x55, - 0x43, 0x4b, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0c, - 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, - 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x41, - 0x53, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, - 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, - 0x45, 0x4f, 0x55, 0x54, 0x10, 0x08, 0x22, 0xdb, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x05, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x22, 0x0a, 0x05, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, - 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, - 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, - 0x55, 0x53, 0x10, 0x01, 0x22, 0xb1, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x09, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x86, 0x02, 0x0a, 0x15, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x07, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x65, 0x72, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x52, 0x09, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, + 0x58, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, + 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x51, 0x55, 0x45, 0x55, 0x49, + 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, + 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x05, 0x22, 0x3b, 0x0a, 0x06, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, + 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x55, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x55, + 0x53, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x10, + 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x49, 0x4e, + 0x47, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x07, + 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x08, 0x22, 0xc0, 0x04, + 0x0a, 0x09, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0f, 0x77, + 0x66, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0d, 0x77, 0x66, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x77, 0x66, 0x5f, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x77, 0x66, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x2f, 0x0a, 0x14, 0x77, 0x66, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x77, + 0x66, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x1b, 0x77, 0x66, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x77, 0x66, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, + 0x39, 0x0a, 0x19, 0x77, 0x66, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x16, 0x77, 0x66, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x55, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x77, 0x66, + 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x19, 0x77, 0x66, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x70, + 0x70, 0x6c, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0e, 0x70, 0x70, 0x6c, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x70, 0x6c, 0x5f, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x70, 0x70, 0x6c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x31, 0x0a, 0x15, 0x70, 0x70, 0x6c, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x70, 0x70, 0x6c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x6f, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x4f, 0x66, + 0x22, 0xdb, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x22, 0xb1, + 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x41, 0x0a, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x22, 0x86, 0x02, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x5f, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x47, 0x74, 0x12, 0x44, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4c, 0x74, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x47, 0x74, 0x12, 0x44, 0x0a, 0x10, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4c, 0x74, - 0x65, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x95, 0x03, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, - 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x75, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x55, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x09, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, - 0x42, 0x79, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x12, 0x3d, 0x0a, - 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xe2, 0x09, 0x0a, - 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x77, 0x66, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x77, 0x66, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, - 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, - 0x70, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x4a, 0x0a, 0x0f, 0x77, 0x66, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, - 0x62, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x95, + 0x03, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x55, 0x69, 0x64, 0x12, 0x45, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, - 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0d, 0x77, 0x66, - 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, - 0x6f, 0x66, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, - 0x6c, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x4f, 0x66, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x09, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xa0, 0x0a, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x66, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x66, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x0f, 0x77, 0x66, 0x5f, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0d, 0x77, 0x66, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x6f, 0x66, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x72, 0x75, 0x6e, + 0x4f, 0x66, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6f, 0x66, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x70, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, + 0x75, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, + 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, + 0x74, 0x52, 0x65, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, + 0x68, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x53, 0x68, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x64, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x69, 0x6e, + 0x67, 0x5f, 0x61, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x69, 0x6e, 0x67, 0x41, + 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x18, + 0x17, 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, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x71, 0x75, 0x65, 0x75, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x71, 0x75, - 0x65, 0x75, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x18, 0x17, 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, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x41, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x05, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x19, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, - 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x67, 0x69, - 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x0a, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x72, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, - 0x6c, 0x22, 0xfd, 0x03, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, - 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, - 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x49, 0x6e, + 0x70, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x12, 0x30, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x40, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x04, 0x6a, 0x6f, 0x62, - 0x73, 0x1a, 0x4e, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x75, 0x6e, 0x4e, 0x6f, - 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x07, 0x0a, - 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x02, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x4e, 0x6f, 0x77, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x13, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x5f, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x79, 0x61, - 0x6d, 0x6c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x06, - 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, - 0x6c, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x59, - 0x61, 0x6d, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, - 0x22, 0xd6, 0x02, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, - 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x45, 0x0a, 0x0d, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x0c, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, - 0x15, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x70, 0x70, 0x6c, 0x5f, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, - 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, - 0x65, 0x76, 0x50, 0x70, 0x6c, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x45, 0x6e, 0x76, - 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x19, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, - 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x70, - 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, - 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x22, 0x7d, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, + 0x72, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x39, + 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x67, 0x69, 0x74, + 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, + 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x3c, 0x0a, 0x09, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x52, 0x09, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x22, 0xfd, 0x03, 0x0a, 0x0c, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4c, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x1a, 0x4e, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x0d, 0x52, 0x75, + 0x6e, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3b, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x52, 0x75, 0x6e, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, + 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x15, 0x0a, + 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, + 0x6f, 0x62, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, + 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x02, 0x22, 0x10, + 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2c, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x83, + 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x59, 0x61, 0x6d, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x79, + 0x61, 0x6d, 0x6c, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x14, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x88, 0x03, 0x0a, 0x18, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x45, + 0x0a, 0x0d, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x70, 0x70, + 0x6c, 0x5f, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x76, 0x50, 0x70, 0x6c, 0x41, 0x72, 0x74, + 0x65, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, + 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x80, 0x01, 0x0a, + 0x19, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, - 0x10, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x2b, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb8, - 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x44, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, + 0x4c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, + 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x46, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x44, - 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x49, 0x4d, 0x49, - 0x54, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, - 0x52, 0x45, 0x46, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd2, 0x03, 0x0a, 0x0d, 0x41, 0x66, 0x74, 0x65, 0x72, - 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x41, - 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x15, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x16, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x0f, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb8, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x54, 0x0a, 0x0d, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x38, 0x0a, - 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, - 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, - 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, - 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x2d, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x23, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x55, 0x43, 0x4b, 0x10, 0x01, 0x22, 0xaf, 0x01, 0x0a, 0x12, - 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x0c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, + 0x4b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, + 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x58, 0x43, 0x45, + 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x46, 0x55, 0x53, 0x45, + 0x44, 0x10, 0x03, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc2, 0x01, 0x0a, 0x12, + 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x36, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x22, 0xd2, 0x03, 0x0a, 0x0d, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2a, 0x2d, 0x0a, - 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, - 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x45, 0x52, - 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x29, 0x0a, 0x0a, - 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, - 0x41, 0x4e, 0x43, 0x48, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, - 0x06, 0x0a, 0x02, 0x50, 0x52, 0x10, 0x02, 0x32, 0xd7, 0x0d, 0x0a, 0x0f, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, - 0x0c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x28, 0x2e, + 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x54, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, - 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x62, 0x65, 0x72, 0x2e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 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, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x38, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, + 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, + 0x03, 0x22, 0x2d, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x50, + 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, + 0x22, 0x23, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, + 0x55, 0x43, 0x4b, 0x10, 0x01, 0x22, 0xaf, 0x01, 0x0a, 0x12, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x3e, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2a, 0x2d, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, + 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, + 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x29, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x52, 0x10, + 0x02, 0x2a, 0x52, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, + 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x5f, + 0x52, 0x55, 0x4e, 0x10, 0x03, 0x32, 0xd7, 0x0d, 0x0a, 0x0f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x24, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x09, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x54, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5d, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x12, 0x26, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, - 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0b, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x49, 0x6e, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0c, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6f, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x70, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5a, 0x0a, 0x09, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x25, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0c, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x28, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, + 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x04, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x69, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, - 0x52, 0x75, 0x6e, 0x4e, 0x6f, 0x77, 0x12, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x75, 0x6e, - 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x2e, 0x52, 0x75, 0x6e, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x63, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, - 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0b, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0a, 0x4c, + 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x59, 0x61, 0x6d, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0c, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x69, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, - 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x69, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, - 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x07, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x49, 0x6e, + 0x62, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x52, 0x75, + 0x6e, 0x4e, 0x6f, 0x77, 0x12, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x75, 0x6e, 0x4e, 0x6f, + 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, + 0x75, 0x6e, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x28, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x59, 0x61, + 0x6d, 0x6c, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, - 0x2f, 0x70, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, + 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x07, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, + 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, + 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7039,217 +7350,223 @@ func file_plumber_pipeline_proto_rawDescGZIP() []byte { return file_plumber_pipeline_proto_rawDescData } -var file_plumber_pipeline_proto_enumTypes = make([]protoimpl.EnumInfo, 18) -var file_plumber_pipeline_proto_msgTypes = make([]protoimpl.MessageInfo, 54) +var file_plumber_pipeline_proto_enumTypes = make([]protoimpl.EnumInfo, 19) +var file_plumber_pipeline_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_plumber_pipeline_proto_goTypes = []interface{}{ (QueueType)(0), // 0: InternalApi.Plumber.QueueType (GitRefType)(0), // 1: InternalApi.Plumber.GitRefType - (ScheduleRequest_ServiceType)(0), // 2: InternalApi.Plumber.ScheduleRequest.ServiceType - (Block_State)(0), // 3: InternalApi.Plumber.Block.State - (Block_Result)(0), // 4: InternalApi.Plumber.Block.Result - (Block_ResultReason)(0), // 5: InternalApi.Plumber.Block.ResultReason - (ListKeysetRequest_Order)(0), // 6: InternalApi.Plumber.ListKeysetRequest.Order - (ListKeysetRequest_Direction)(0), // 7: InternalApi.Plumber.ListKeysetRequest.Direction - (Pipeline_State)(0), // 8: InternalApi.Plumber.Pipeline.State - (Pipeline_Result)(0), // 9: InternalApi.Plumber.Pipeline.Result - (Pipeline_ResultReason)(0), // 10: InternalApi.Plumber.Pipeline.ResultReason - (ListActivityRequest_Order)(0), // 11: InternalApi.Plumber.ListActivityRequest.Order - (ListActivityRequest_Direction)(0), // 12: InternalApi.Plumber.ListActivityRequest.Direction - (RunNowRequest_Type)(0), // 13: InternalApi.Plumber.RunNowRequest.Type - (ResponseStatus_ResponseCode)(0), // 14: InternalApi.Plumber.ResponseStatus.ResponseCode - (AfterPipeline_State)(0), // 15: InternalApi.Plumber.AfterPipeline.State - (AfterPipeline_Result)(0), // 16: InternalApi.Plumber.AfterPipeline.Result - (AfterPipeline_ResultReason)(0), // 17: InternalApi.Plumber.AfterPipeline.ResultReason - (*ScheduleRequest)(nil), // 18: InternalApi.Plumber.ScheduleRequest - (*ScheduleResponse)(nil), // 19: InternalApi.Plumber.ScheduleResponse - (*DescribeRequest)(nil), // 20: InternalApi.Plumber.DescribeRequest - (*DescribeResponse)(nil), // 21: InternalApi.Plumber.DescribeResponse - (*Block)(nil), // 22: InternalApi.Plumber.Block - (*DescribeManyRequest)(nil), // 23: InternalApi.Plumber.DescribeManyRequest - (*DescribeManyResponse)(nil), // 24: InternalApi.Plumber.DescribeManyResponse - (*DescribeTopologyRequest)(nil), // 25: InternalApi.Plumber.DescribeTopologyRequest - (*DescribeTopologyResponse)(nil), // 26: InternalApi.Plumber.DescribeTopologyResponse - (*TerminateRequest)(nil), // 27: InternalApi.Plumber.TerminateRequest - (*TerminateResponse)(nil), // 28: InternalApi.Plumber.TerminateResponse - (*ListQueuesRequest)(nil), // 29: InternalApi.Plumber.ListQueuesRequest - (*ListQueuesResponse)(nil), // 30: InternalApi.Plumber.ListQueuesResponse - (*ListGroupedRequest)(nil), // 31: InternalApi.Plumber.ListGroupedRequest - (*ListGroupedResponse)(nil), // 32: InternalApi.Plumber.ListGroupedResponse - (*ListKeysetRequest)(nil), // 33: InternalApi.Plumber.ListKeysetRequest - (*ListKeysetResponse)(nil), // 34: InternalApi.Plumber.ListKeysetResponse - (*ListRequest)(nil), // 35: InternalApi.Plumber.ListRequest - (*ListResponse)(nil), // 36: InternalApi.Plumber.ListResponse - (*Queue)(nil), // 37: InternalApi.Plumber.Queue - (*Pipeline)(nil), // 38: InternalApi.Plumber.Pipeline - (*ListActivityRequest)(nil), // 39: InternalApi.Plumber.ListActivityRequest - (*ListActivityResponse)(nil), // 40: InternalApi.Plumber.ListActivityResponse - (*ListRequestersRequest)(nil), // 41: InternalApi.Plumber.ListRequestersRequest - (*ListRequestersResponse)(nil), // 42: InternalApi.Plumber.ListRequestersResponse - (*Requester)(nil), // 43: InternalApi.Plumber.Requester - (*ActivePipeline)(nil), // 44: InternalApi.Plumber.ActivePipeline - (*BlockDetails)(nil), // 45: InternalApi.Plumber.BlockDetails - (*RunNowRequest)(nil), // 46: InternalApi.Plumber.RunNowRequest - (*RunNowResponse)(nil), // 47: InternalApi.Plumber.RunNowResponse - (*GetProjectIdRequest)(nil), // 48: InternalApi.Plumber.GetProjectIdRequest - (*GetProjectIdResponse)(nil), // 49: InternalApi.Plumber.GetProjectIdResponse - (*ValidateYamlRequest)(nil), // 50: InternalApi.Plumber.ValidateYamlRequest - (*ValidateYamlResponse)(nil), // 51: InternalApi.Plumber.ValidateYamlResponse - (*ScheduleExtensionRequest)(nil), // 52: InternalApi.Plumber.ScheduleExtensionRequest - (*EnvVariable)(nil), // 53: InternalApi.Plumber.EnvVariable - (*ScheduleExtensionResponse)(nil), // 54: InternalApi.Plumber.ScheduleExtensionResponse - (*DeleteRequest)(nil), // 55: InternalApi.Plumber.DeleteRequest - (*DeleteResponse)(nil), // 56: InternalApi.Plumber.DeleteResponse - (*PartialRebuildRequest)(nil), // 57: InternalApi.Plumber.PartialRebuildRequest - (*PartialRebuildResponse)(nil), // 58: InternalApi.Plumber.PartialRebuildResponse - (*VersionRequest)(nil), // 59: InternalApi.Plumber.VersionRequest - (*VersionResponse)(nil), // 60: InternalApi.Plumber.VersionResponse - (*ResponseStatus)(nil), // 61: InternalApi.Plumber.ResponseStatus - (*PipelineEvent)(nil), // 62: InternalApi.Plumber.PipelineEvent - (*PipelineBlockEvent)(nil), // 63: InternalApi.Plumber.PipelineBlockEvent - (*AfterPipeline)(nil), // 64: InternalApi.Plumber.AfterPipeline - (*AfterPipelineEvent)(nil), // 65: InternalApi.Plumber.AfterPipelineEvent - (*ScheduleRequest_Repo)(nil), // 66: InternalApi.Plumber.ScheduleRequest.Repo - (*ScheduleRequest_Auth)(nil), // 67: InternalApi.Plumber.ScheduleRequest.Auth - (*Block_Job)(nil), // 68: InternalApi.Plumber.Block.Job - (*DescribeTopologyResponse_Block)(nil), // 69: InternalApi.Plumber.DescribeTopologyResponse.Block - (*DescribeTopologyResponse_AfterPipeline)(nil), // 70: InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline - (*BlockDetails_JobDetails)(nil), // 71: InternalApi.Plumber.BlockDetails.JobDetails - (*timestamp.Timestamp)(nil), // 72: google.protobuf.Timestamp - (user.RepositoryProvider_Type)(0), // 73: InternalApi.User.RepositoryProvider.Type - (plumber_w_f_workflow.TriggeredBy)(0), // 74: InternalApi.PlumberWF.TriggeredBy + (TriggeredBy)(0), // 2: InternalApi.Plumber.TriggeredBy + (ScheduleRequest_ServiceType)(0), // 3: InternalApi.Plumber.ScheduleRequest.ServiceType + (Block_State)(0), // 4: InternalApi.Plumber.Block.State + (Block_Result)(0), // 5: InternalApi.Plumber.Block.Result + (Block_ResultReason)(0), // 6: InternalApi.Plumber.Block.ResultReason + (ListKeysetRequest_Order)(0), // 7: InternalApi.Plumber.ListKeysetRequest.Order + (ListKeysetRequest_Direction)(0), // 8: InternalApi.Plumber.ListKeysetRequest.Direction + (Pipeline_State)(0), // 9: InternalApi.Plumber.Pipeline.State + (Pipeline_Result)(0), // 10: InternalApi.Plumber.Pipeline.Result + (Pipeline_ResultReason)(0), // 11: InternalApi.Plumber.Pipeline.ResultReason + (ListActivityRequest_Order)(0), // 12: InternalApi.Plumber.ListActivityRequest.Order + (ListActivityRequest_Direction)(0), // 13: InternalApi.Plumber.ListActivityRequest.Direction + (RunNowRequest_Type)(0), // 14: InternalApi.Plumber.RunNowRequest.Type + (ResponseStatus_ResponseCode)(0), // 15: InternalApi.Plumber.ResponseStatus.ResponseCode + (AfterPipeline_State)(0), // 16: InternalApi.Plumber.AfterPipeline.State + (AfterPipeline_Result)(0), // 17: InternalApi.Plumber.AfterPipeline.Result + (AfterPipeline_ResultReason)(0), // 18: InternalApi.Plumber.AfterPipeline.ResultReason + (*ScheduleRequest)(nil), // 19: InternalApi.Plumber.ScheduleRequest + (*ScheduleResponse)(nil), // 20: InternalApi.Plumber.ScheduleResponse + (*DescribeRequest)(nil), // 21: InternalApi.Plumber.DescribeRequest + (*DescribeResponse)(nil), // 22: InternalApi.Plumber.DescribeResponse + (*Block)(nil), // 23: InternalApi.Plumber.Block + (*DescribeManyRequest)(nil), // 24: InternalApi.Plumber.DescribeManyRequest + (*DescribeManyResponse)(nil), // 25: InternalApi.Plumber.DescribeManyResponse + (*DescribeTopologyRequest)(nil), // 26: InternalApi.Plumber.DescribeTopologyRequest + (*DescribeTopologyResponse)(nil), // 27: InternalApi.Plumber.DescribeTopologyResponse + (*TerminateRequest)(nil), // 28: InternalApi.Plumber.TerminateRequest + (*TerminateResponse)(nil), // 29: InternalApi.Plumber.TerminateResponse + (*ListQueuesRequest)(nil), // 30: InternalApi.Plumber.ListQueuesRequest + (*ListQueuesResponse)(nil), // 31: InternalApi.Plumber.ListQueuesResponse + (*ListGroupedRequest)(nil), // 32: InternalApi.Plumber.ListGroupedRequest + (*ListGroupedResponse)(nil), // 33: InternalApi.Plumber.ListGroupedResponse + (*ListKeysetRequest)(nil), // 34: InternalApi.Plumber.ListKeysetRequest + (*ListKeysetResponse)(nil), // 35: InternalApi.Plumber.ListKeysetResponse + (*ListRequest)(nil), // 36: InternalApi.Plumber.ListRequest + (*ListResponse)(nil), // 37: InternalApi.Plumber.ListResponse + (*Queue)(nil), // 38: InternalApi.Plumber.Queue + (*Pipeline)(nil), // 39: InternalApi.Plumber.Pipeline + (*Triggerer)(nil), // 40: InternalApi.Plumber.Triggerer + (*ListActivityRequest)(nil), // 41: InternalApi.Plumber.ListActivityRequest + (*ListActivityResponse)(nil), // 42: InternalApi.Plumber.ListActivityResponse + (*ListRequestersRequest)(nil), // 43: InternalApi.Plumber.ListRequestersRequest + (*ListRequestersResponse)(nil), // 44: InternalApi.Plumber.ListRequestersResponse + (*Requester)(nil), // 45: InternalApi.Plumber.Requester + (*ActivePipeline)(nil), // 46: InternalApi.Plumber.ActivePipeline + (*BlockDetails)(nil), // 47: InternalApi.Plumber.BlockDetails + (*RunNowRequest)(nil), // 48: InternalApi.Plumber.RunNowRequest + (*RunNowResponse)(nil), // 49: InternalApi.Plumber.RunNowResponse + (*GetProjectIdRequest)(nil), // 50: InternalApi.Plumber.GetProjectIdRequest + (*GetProjectIdResponse)(nil), // 51: InternalApi.Plumber.GetProjectIdResponse + (*ValidateYamlRequest)(nil), // 52: InternalApi.Plumber.ValidateYamlRequest + (*ValidateYamlResponse)(nil), // 53: InternalApi.Plumber.ValidateYamlResponse + (*ScheduleExtensionRequest)(nil), // 54: InternalApi.Plumber.ScheduleExtensionRequest + (*EnvVariable)(nil), // 55: InternalApi.Plumber.EnvVariable + (*ScheduleExtensionResponse)(nil), // 56: InternalApi.Plumber.ScheduleExtensionResponse + (*DeleteRequest)(nil), // 57: InternalApi.Plumber.DeleteRequest + (*DeleteResponse)(nil), // 58: InternalApi.Plumber.DeleteResponse + (*PartialRebuildRequest)(nil), // 59: InternalApi.Plumber.PartialRebuildRequest + (*PartialRebuildResponse)(nil), // 60: InternalApi.Plumber.PartialRebuildResponse + (*VersionRequest)(nil), // 61: InternalApi.Plumber.VersionRequest + (*VersionResponse)(nil), // 62: InternalApi.Plumber.VersionResponse + (*ResponseStatus)(nil), // 63: InternalApi.Plumber.ResponseStatus + (*PipelineEvent)(nil), // 64: InternalApi.Plumber.PipelineEvent + (*PipelineBlockEvent)(nil), // 65: InternalApi.Plumber.PipelineBlockEvent + (*AfterPipeline)(nil), // 66: InternalApi.Plumber.AfterPipeline + (*AfterPipelineEvent)(nil), // 67: InternalApi.Plumber.AfterPipelineEvent + (*ScheduleRequest_Repo)(nil), // 68: InternalApi.Plumber.ScheduleRequest.Repo + (*ScheduleRequest_Auth)(nil), // 69: InternalApi.Plumber.ScheduleRequest.Auth + (*Block_Job)(nil), // 70: InternalApi.Plumber.Block.Job + (*DescribeTopologyResponse_Block)(nil), // 71: InternalApi.Plumber.DescribeTopologyResponse.Block + (*DescribeTopologyResponse_AfterPipeline)(nil), // 72: InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline + (*BlockDetails_JobDetails)(nil), // 73: InternalApi.Plumber.BlockDetails.JobDetails + (*timestamp.Timestamp)(nil), // 74: google.protobuf.Timestamp + (plumber_w_f_workflow.TriggeredBy)(0), // 75: InternalApi.PlumberWF.TriggeredBy + (user.RepositoryProvider_Type)(0), // 76: InternalApi.User.RepositoryProvider.Type } var file_plumber_pipeline_proto_depIdxs = []int32{ - 2, // 0: InternalApi.Plumber.ScheduleRequest.service:type_name -> InternalApi.Plumber.ScheduleRequest.ServiceType - 66, // 1: InternalApi.Plumber.ScheduleRequest.repo:type_name -> InternalApi.Plumber.ScheduleRequest.Repo - 67, // 2: InternalApi.Plumber.ScheduleRequest.auth:type_name -> InternalApi.Plumber.ScheduleRequest.Auth - 61, // 3: InternalApi.Plumber.ScheduleResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 61, // 4: InternalApi.Plumber.DescribeResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 38, // 5: InternalApi.Plumber.DescribeResponse.pipeline:type_name -> InternalApi.Plumber.Pipeline - 22, // 6: InternalApi.Plumber.DescribeResponse.blocks:type_name -> InternalApi.Plumber.Block - 3, // 7: InternalApi.Plumber.Block.state:type_name -> InternalApi.Plumber.Block.State - 4, // 8: InternalApi.Plumber.Block.result:type_name -> InternalApi.Plumber.Block.Result - 5, // 9: InternalApi.Plumber.Block.result_reason:type_name -> InternalApi.Plumber.Block.ResultReason - 68, // 10: InternalApi.Plumber.Block.jobs:type_name -> InternalApi.Plumber.Block.Job - 61, // 11: InternalApi.Plumber.DescribeManyResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 38, // 12: InternalApi.Plumber.DescribeManyResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline - 61, // 13: InternalApi.Plumber.DescribeTopologyResponse.status:type_name -> InternalApi.Plumber.ResponseStatus - 69, // 14: InternalApi.Plumber.DescribeTopologyResponse.blocks:type_name -> InternalApi.Plumber.DescribeTopologyResponse.Block - 70, // 15: InternalApi.Plumber.DescribeTopologyResponse.after_pipeline:type_name -> InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline - 61, // 16: InternalApi.Plumber.TerminateResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 3, // 0: InternalApi.Plumber.ScheduleRequest.service:type_name -> InternalApi.Plumber.ScheduleRequest.ServiceType + 68, // 1: InternalApi.Plumber.ScheduleRequest.repo:type_name -> InternalApi.Plumber.ScheduleRequest.Repo + 69, // 2: InternalApi.Plumber.ScheduleRequest.auth:type_name -> InternalApi.Plumber.ScheduleRequest.Auth + 63, // 3: InternalApi.Plumber.ScheduleResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 63, // 4: InternalApi.Plumber.DescribeResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 39, // 5: InternalApi.Plumber.DescribeResponse.pipeline:type_name -> InternalApi.Plumber.Pipeline + 23, // 6: InternalApi.Plumber.DescribeResponse.blocks:type_name -> InternalApi.Plumber.Block + 4, // 7: InternalApi.Plumber.Block.state:type_name -> InternalApi.Plumber.Block.State + 5, // 8: InternalApi.Plumber.Block.result:type_name -> InternalApi.Plumber.Block.Result + 6, // 9: InternalApi.Plumber.Block.result_reason:type_name -> InternalApi.Plumber.Block.ResultReason + 70, // 10: InternalApi.Plumber.Block.jobs:type_name -> InternalApi.Plumber.Block.Job + 63, // 11: InternalApi.Plumber.DescribeManyResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 39, // 12: InternalApi.Plumber.DescribeManyResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline + 63, // 13: InternalApi.Plumber.DescribeTopologyResponse.status:type_name -> InternalApi.Plumber.ResponseStatus + 71, // 14: InternalApi.Plumber.DescribeTopologyResponse.blocks:type_name -> InternalApi.Plumber.DescribeTopologyResponse.Block + 72, // 15: InternalApi.Plumber.DescribeTopologyResponse.after_pipeline:type_name -> InternalApi.Plumber.DescribeTopologyResponse.AfterPipeline + 63, // 16: InternalApi.Plumber.TerminateResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus 0, // 17: InternalApi.Plumber.ListQueuesRequest.queue_types:type_name -> InternalApi.Plumber.QueueType - 61, // 18: InternalApi.Plumber.ListQueuesResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 37, // 19: InternalApi.Plumber.ListQueuesResponse.queues:type_name -> InternalApi.Plumber.Queue + 63, // 18: InternalApi.Plumber.ListQueuesResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 38, // 19: InternalApi.Plumber.ListQueuesResponse.queues:type_name -> InternalApi.Plumber.Queue 0, // 20: InternalApi.Plumber.ListGroupedRequest.queue_type:type_name -> InternalApi.Plumber.QueueType - 61, // 21: InternalApi.Plumber.ListGroupedResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 38, // 22: InternalApi.Plumber.ListGroupedResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline - 6, // 23: InternalApi.Plumber.ListKeysetRequest.order:type_name -> InternalApi.Plumber.ListKeysetRequest.Order - 7, // 24: InternalApi.Plumber.ListKeysetRequest.direction:type_name -> InternalApi.Plumber.ListKeysetRequest.Direction - 72, // 25: InternalApi.Plumber.ListKeysetRequest.created_before:type_name -> google.protobuf.Timestamp - 72, // 26: InternalApi.Plumber.ListKeysetRequest.created_after:type_name -> google.protobuf.Timestamp - 72, // 27: InternalApi.Plumber.ListKeysetRequest.done_before:type_name -> google.protobuf.Timestamp - 72, // 28: InternalApi.Plumber.ListKeysetRequest.done_after:type_name -> google.protobuf.Timestamp + 63, // 21: InternalApi.Plumber.ListGroupedResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 39, // 22: InternalApi.Plumber.ListGroupedResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline + 7, // 23: InternalApi.Plumber.ListKeysetRequest.order:type_name -> InternalApi.Plumber.ListKeysetRequest.Order + 8, // 24: InternalApi.Plumber.ListKeysetRequest.direction:type_name -> InternalApi.Plumber.ListKeysetRequest.Direction + 74, // 25: InternalApi.Plumber.ListKeysetRequest.created_before:type_name -> google.protobuf.Timestamp + 74, // 26: InternalApi.Plumber.ListKeysetRequest.created_after:type_name -> google.protobuf.Timestamp + 74, // 27: InternalApi.Plumber.ListKeysetRequest.done_before:type_name -> google.protobuf.Timestamp + 74, // 28: InternalApi.Plumber.ListKeysetRequest.done_after:type_name -> google.protobuf.Timestamp 1, // 29: InternalApi.Plumber.ListKeysetRequest.git_ref_types:type_name -> InternalApi.Plumber.GitRefType - 38, // 30: InternalApi.Plumber.ListKeysetResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline - 72, // 31: InternalApi.Plumber.ListRequest.created_before:type_name -> google.protobuf.Timestamp - 72, // 32: InternalApi.Plumber.ListRequest.created_after:type_name -> google.protobuf.Timestamp - 72, // 33: InternalApi.Plumber.ListRequest.done_before:type_name -> google.protobuf.Timestamp - 72, // 34: InternalApi.Plumber.ListRequest.done_after:type_name -> google.protobuf.Timestamp + 39, // 30: InternalApi.Plumber.ListKeysetResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline + 74, // 31: InternalApi.Plumber.ListRequest.created_before:type_name -> google.protobuf.Timestamp + 74, // 32: InternalApi.Plumber.ListRequest.created_after:type_name -> google.protobuf.Timestamp + 74, // 33: InternalApi.Plumber.ListRequest.done_before:type_name -> google.protobuf.Timestamp + 74, // 34: InternalApi.Plumber.ListRequest.done_after:type_name -> google.protobuf.Timestamp 1, // 35: InternalApi.Plumber.ListRequest.git_ref_types:type_name -> InternalApi.Plumber.GitRefType - 61, // 36: InternalApi.Plumber.ListResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 38, // 37: InternalApi.Plumber.ListResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline + 63, // 36: InternalApi.Plumber.ListResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 39, // 37: InternalApi.Plumber.ListResponse.pipelines:type_name -> InternalApi.Plumber.Pipeline 0, // 38: InternalApi.Plumber.Queue.type:type_name -> InternalApi.Plumber.QueueType - 72, // 39: InternalApi.Plumber.Pipeline.created_at:type_name -> google.protobuf.Timestamp - 72, // 40: InternalApi.Plumber.Pipeline.pending_at:type_name -> google.protobuf.Timestamp - 72, // 41: InternalApi.Plumber.Pipeline.queuing_at:type_name -> google.protobuf.Timestamp - 72, // 42: InternalApi.Plumber.Pipeline.running_at:type_name -> google.protobuf.Timestamp - 72, // 43: InternalApi.Plumber.Pipeline.stopping_at:type_name -> google.protobuf.Timestamp - 72, // 44: InternalApi.Plumber.Pipeline.done_at:type_name -> google.protobuf.Timestamp - 8, // 45: InternalApi.Plumber.Pipeline.state:type_name -> InternalApi.Plumber.Pipeline.State - 9, // 46: InternalApi.Plumber.Pipeline.result:type_name -> InternalApi.Plumber.Pipeline.Result - 10, // 47: InternalApi.Plumber.Pipeline.result_reason:type_name -> InternalApi.Plumber.Pipeline.ResultReason - 37, // 48: InternalApi.Plumber.Pipeline.queue:type_name -> InternalApi.Plumber.Queue - 53, // 49: InternalApi.Plumber.Pipeline.env_vars:type_name -> InternalApi.Plumber.EnvVariable - 11, // 50: InternalApi.Plumber.ListActivityRequest.order:type_name -> InternalApi.Plumber.ListActivityRequest.Order - 12, // 51: InternalApi.Plumber.ListActivityRequest.direction:type_name -> InternalApi.Plumber.ListActivityRequest.Direction - 44, // 52: InternalApi.Plumber.ListActivityResponse.pipelines:type_name -> InternalApi.Plumber.ActivePipeline - 72, // 53: InternalApi.Plumber.ListRequestersRequest.requested_at_gt:type_name -> google.protobuf.Timestamp - 72, // 54: InternalApi.Plumber.ListRequestersRequest.requested_at_lte:type_name -> google.protobuf.Timestamp - 43, // 55: InternalApi.Plumber.ListRequestersResponse.requesters:type_name -> InternalApi.Plumber.Requester - 73, // 56: InternalApi.Plumber.Requester.provider:type_name -> InternalApi.User.RepositoryProvider.Type - 74, // 57: InternalApi.Plumber.Requester.triggerer:type_name -> InternalApi.PlumberWF.TriggeredBy - 72, // 58: InternalApi.Plumber.Requester.requested_at:type_name -> google.protobuf.Timestamp - 74, // 59: InternalApi.Plumber.ActivePipeline.wf_triggered_by:type_name -> InternalApi.PlumberWF.TriggeredBy - 72, // 60: InternalApi.Plumber.ActivePipeline.created_at:type_name -> google.protobuf.Timestamp - 72, // 61: InternalApi.Plumber.ActivePipeline.pending_at:type_name -> google.protobuf.Timestamp - 72, // 62: InternalApi.Plumber.ActivePipeline.queuing_at:type_name -> google.protobuf.Timestamp - 72, // 63: InternalApi.Plumber.ActivePipeline.running_at:type_name -> google.protobuf.Timestamp - 37, // 64: InternalApi.Plumber.ActivePipeline.queue:type_name -> InternalApi.Plumber.Queue - 45, // 65: InternalApi.Plumber.ActivePipeline.blocks:type_name -> InternalApi.Plumber.BlockDetails - 8, // 66: InternalApi.Plumber.ActivePipeline.state:type_name -> InternalApi.Plumber.Pipeline.State - 1, // 67: InternalApi.Plumber.ActivePipeline.git_ref_type:type_name -> InternalApi.Plumber.GitRefType - 3, // 68: InternalApi.Plumber.BlockDetails.state:type_name -> InternalApi.Plumber.Block.State - 4, // 69: InternalApi.Plumber.BlockDetails.result:type_name -> InternalApi.Plumber.Block.Result - 5, // 70: InternalApi.Plumber.BlockDetails.result_reason:type_name -> InternalApi.Plumber.Block.ResultReason - 71, // 71: InternalApi.Plumber.BlockDetails.jobs:type_name -> InternalApi.Plumber.BlockDetails.JobDetails - 13, // 72: InternalApi.Plumber.RunNowRequest.type:type_name -> InternalApi.Plumber.RunNowRequest.Type - 61, // 73: InternalApi.Plumber.GetProjectIdResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 61, // 74: InternalApi.Plumber.ValidateYamlResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 53, // 75: InternalApi.Plumber.ScheduleExtensionRequest.env_variables:type_name -> InternalApi.Plumber.EnvVariable - 61, // 76: InternalApi.Plumber.ScheduleExtensionResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 61, // 77: InternalApi.Plumber.DeleteResponse.status:type_name -> InternalApi.Plumber.ResponseStatus - 61, // 78: InternalApi.Plumber.PartialRebuildResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus - 14, // 79: InternalApi.Plumber.ResponseStatus.code:type_name -> InternalApi.Plumber.ResponseStatus.ResponseCode - 8, // 80: InternalApi.Plumber.PipelineEvent.state:type_name -> InternalApi.Plumber.Pipeline.State - 72, // 81: InternalApi.Plumber.PipelineEvent.timestamp:type_name -> google.protobuf.Timestamp - 3, // 82: InternalApi.Plumber.PipelineBlockEvent.state:type_name -> InternalApi.Plumber.Block.State - 72, // 83: InternalApi.Plumber.PipelineBlockEvent.timestamp:type_name -> google.protobuf.Timestamp - 15, // 84: InternalApi.Plumber.AfterPipeline.state:type_name -> InternalApi.Plumber.AfterPipeline.State - 16, // 85: InternalApi.Plumber.AfterPipeline.result:type_name -> InternalApi.Plumber.AfterPipeline.Result - 17, // 86: InternalApi.Plumber.AfterPipeline.result_reason:type_name -> InternalApi.Plumber.AfterPipeline.ResultReason - 72, // 87: InternalApi.Plumber.AfterPipeline.created_at:type_name -> google.protobuf.Timestamp - 15, // 88: InternalApi.Plumber.AfterPipelineEvent.state:type_name -> InternalApi.Plumber.AfterPipeline.State - 72, // 89: InternalApi.Plumber.AfterPipelineEvent.timestamp:type_name -> google.protobuf.Timestamp - 18, // 90: InternalApi.Plumber.PipelineService.Schedule:input_type -> InternalApi.Plumber.ScheduleRequest - 20, // 91: InternalApi.Plumber.PipelineService.Describe:input_type -> InternalApi.Plumber.DescribeRequest - 23, // 92: InternalApi.Plumber.PipelineService.DescribeMany:input_type -> InternalApi.Plumber.DescribeManyRequest - 25, // 93: InternalApi.Plumber.PipelineService.DescribeTopology:input_type -> InternalApi.Plumber.DescribeTopologyRequest - 27, // 94: InternalApi.Plumber.PipelineService.Terminate:input_type -> InternalApi.Plumber.TerminateRequest - 33, // 95: InternalApi.Plumber.PipelineService.ListKeyset:input_type -> InternalApi.Plumber.ListKeysetRequest - 35, // 96: InternalApi.Plumber.PipelineService.List:input_type -> InternalApi.Plumber.ListRequest - 31, // 97: InternalApi.Plumber.PipelineService.ListGrouped:input_type -> InternalApi.Plumber.ListGroupedRequest - 29, // 98: InternalApi.Plumber.PipelineService.ListQueues:input_type -> InternalApi.Plumber.ListQueuesRequest - 39, // 99: InternalApi.Plumber.PipelineService.ListActivity:input_type -> InternalApi.Plumber.ListActivityRequest - 41, // 100: InternalApi.Plumber.PipelineService.ListRequesters:input_type -> InternalApi.Plumber.ListRequestersRequest - 46, // 101: InternalApi.Plumber.PipelineService.RunNow:input_type -> InternalApi.Plumber.RunNowRequest - 48, // 102: InternalApi.Plumber.PipelineService.GetProjectId:input_type -> InternalApi.Plumber.GetProjectIdRequest - 50, // 103: InternalApi.Plumber.PipelineService.ValidateYaml:input_type -> InternalApi.Plumber.ValidateYamlRequest - 52, // 104: InternalApi.Plumber.PipelineService.ScheduleExtension:input_type -> InternalApi.Plumber.ScheduleExtensionRequest - 55, // 105: InternalApi.Plumber.PipelineService.Delete:input_type -> InternalApi.Plumber.DeleteRequest - 57, // 106: InternalApi.Plumber.PipelineService.PartialRebuild:input_type -> InternalApi.Plumber.PartialRebuildRequest - 59, // 107: InternalApi.Plumber.PipelineService.Version:input_type -> InternalApi.Plumber.VersionRequest - 19, // 108: InternalApi.Plumber.PipelineService.Schedule:output_type -> InternalApi.Plumber.ScheduleResponse - 21, // 109: InternalApi.Plumber.PipelineService.Describe:output_type -> InternalApi.Plumber.DescribeResponse - 24, // 110: InternalApi.Plumber.PipelineService.DescribeMany:output_type -> InternalApi.Plumber.DescribeManyResponse - 26, // 111: InternalApi.Plumber.PipelineService.DescribeTopology:output_type -> InternalApi.Plumber.DescribeTopologyResponse - 28, // 112: InternalApi.Plumber.PipelineService.Terminate:output_type -> InternalApi.Plumber.TerminateResponse - 34, // 113: InternalApi.Plumber.PipelineService.ListKeyset:output_type -> InternalApi.Plumber.ListKeysetResponse - 36, // 114: InternalApi.Plumber.PipelineService.List:output_type -> InternalApi.Plumber.ListResponse - 32, // 115: InternalApi.Plumber.PipelineService.ListGrouped:output_type -> InternalApi.Plumber.ListGroupedResponse - 30, // 116: InternalApi.Plumber.PipelineService.ListQueues:output_type -> InternalApi.Plumber.ListQueuesResponse - 40, // 117: InternalApi.Plumber.PipelineService.ListActivity:output_type -> InternalApi.Plumber.ListActivityResponse - 42, // 118: InternalApi.Plumber.PipelineService.ListRequesters:output_type -> InternalApi.Plumber.ListRequestersResponse - 47, // 119: InternalApi.Plumber.PipelineService.RunNow:output_type -> InternalApi.Plumber.RunNowResponse - 49, // 120: InternalApi.Plumber.PipelineService.GetProjectId:output_type -> InternalApi.Plumber.GetProjectIdResponse - 51, // 121: InternalApi.Plumber.PipelineService.ValidateYaml:output_type -> InternalApi.Plumber.ValidateYamlResponse - 54, // 122: InternalApi.Plumber.PipelineService.ScheduleExtension:output_type -> InternalApi.Plumber.ScheduleExtensionResponse - 56, // 123: InternalApi.Plumber.PipelineService.Delete:output_type -> InternalApi.Plumber.DeleteResponse - 58, // 124: InternalApi.Plumber.PipelineService.PartialRebuild:output_type -> InternalApi.Plumber.PartialRebuildResponse - 60, // 125: InternalApi.Plumber.PipelineService.Version:output_type -> InternalApi.Plumber.VersionResponse - 108, // [108:126] is the sub-list for method output_type - 90, // [90:108] is the sub-list for method input_type - 90, // [90:90] is the sub-list for extension type_name - 90, // [90:90] is the sub-list for extension extendee - 0, // [0:90] is the sub-list for field type_name + 74, // 39: InternalApi.Plumber.Pipeline.created_at:type_name -> google.protobuf.Timestamp + 74, // 40: InternalApi.Plumber.Pipeline.pending_at:type_name -> google.protobuf.Timestamp + 74, // 41: InternalApi.Plumber.Pipeline.queuing_at:type_name -> google.protobuf.Timestamp + 74, // 42: InternalApi.Plumber.Pipeline.running_at:type_name -> google.protobuf.Timestamp + 74, // 43: InternalApi.Plumber.Pipeline.stopping_at:type_name -> google.protobuf.Timestamp + 74, // 44: InternalApi.Plumber.Pipeline.done_at:type_name -> google.protobuf.Timestamp + 9, // 45: InternalApi.Plumber.Pipeline.state:type_name -> InternalApi.Plumber.Pipeline.State + 10, // 46: InternalApi.Plumber.Pipeline.result:type_name -> InternalApi.Plumber.Pipeline.Result + 11, // 47: InternalApi.Plumber.Pipeline.result_reason:type_name -> InternalApi.Plumber.Pipeline.ResultReason + 38, // 48: InternalApi.Plumber.Pipeline.queue:type_name -> InternalApi.Plumber.Queue + 55, // 49: InternalApi.Plumber.Pipeline.env_vars:type_name -> InternalApi.Plumber.EnvVariable + 40, // 50: InternalApi.Plumber.Pipeline.triggerer:type_name -> InternalApi.Plumber.Triggerer + 75, // 51: InternalApi.Plumber.Triggerer.wf_triggered_by:type_name -> InternalApi.PlumberWF.TriggeredBy + 2, // 52: InternalApi.Plumber.Triggerer.ppl_triggered_by:type_name -> InternalApi.Plumber.TriggeredBy + 12, // 53: InternalApi.Plumber.ListActivityRequest.order:type_name -> InternalApi.Plumber.ListActivityRequest.Order + 13, // 54: InternalApi.Plumber.ListActivityRequest.direction:type_name -> InternalApi.Plumber.ListActivityRequest.Direction + 46, // 55: InternalApi.Plumber.ListActivityResponse.pipelines:type_name -> InternalApi.Plumber.ActivePipeline + 74, // 56: InternalApi.Plumber.ListRequestersRequest.requested_at_gt:type_name -> google.protobuf.Timestamp + 74, // 57: InternalApi.Plumber.ListRequestersRequest.requested_at_lte:type_name -> google.protobuf.Timestamp + 45, // 58: InternalApi.Plumber.ListRequestersResponse.requesters:type_name -> InternalApi.Plumber.Requester + 76, // 59: InternalApi.Plumber.Requester.provider:type_name -> InternalApi.User.RepositoryProvider.Type + 75, // 60: InternalApi.Plumber.Requester.triggerer:type_name -> InternalApi.PlumberWF.TriggeredBy + 74, // 61: InternalApi.Plumber.Requester.requested_at:type_name -> google.protobuf.Timestamp + 75, // 62: InternalApi.Plumber.ActivePipeline.wf_triggered_by:type_name -> InternalApi.PlumberWF.TriggeredBy + 74, // 63: InternalApi.Plumber.ActivePipeline.created_at:type_name -> google.protobuf.Timestamp + 74, // 64: InternalApi.Plumber.ActivePipeline.pending_at:type_name -> google.protobuf.Timestamp + 74, // 65: InternalApi.Plumber.ActivePipeline.queuing_at:type_name -> google.protobuf.Timestamp + 74, // 66: InternalApi.Plumber.ActivePipeline.running_at:type_name -> google.protobuf.Timestamp + 38, // 67: InternalApi.Plumber.ActivePipeline.queue:type_name -> InternalApi.Plumber.Queue + 47, // 68: InternalApi.Plumber.ActivePipeline.blocks:type_name -> InternalApi.Plumber.BlockDetails + 9, // 69: InternalApi.Plumber.ActivePipeline.state:type_name -> InternalApi.Plumber.Pipeline.State + 1, // 70: InternalApi.Plumber.ActivePipeline.git_ref_type:type_name -> InternalApi.Plumber.GitRefType + 40, // 71: InternalApi.Plumber.ActivePipeline.triggerer:type_name -> InternalApi.Plumber.Triggerer + 4, // 72: InternalApi.Plumber.BlockDetails.state:type_name -> InternalApi.Plumber.Block.State + 5, // 73: InternalApi.Plumber.BlockDetails.result:type_name -> InternalApi.Plumber.Block.Result + 6, // 74: InternalApi.Plumber.BlockDetails.result_reason:type_name -> InternalApi.Plumber.Block.ResultReason + 73, // 75: InternalApi.Plumber.BlockDetails.jobs:type_name -> InternalApi.Plumber.BlockDetails.JobDetails + 14, // 76: InternalApi.Plumber.RunNowRequest.type:type_name -> InternalApi.Plumber.RunNowRequest.Type + 63, // 77: InternalApi.Plumber.GetProjectIdResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 63, // 78: InternalApi.Plumber.ValidateYamlResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 55, // 79: InternalApi.Plumber.ScheduleExtensionRequest.env_variables:type_name -> InternalApi.Plumber.EnvVariable + 63, // 80: InternalApi.Plumber.ScheduleExtensionResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 63, // 81: InternalApi.Plumber.DeleteResponse.status:type_name -> InternalApi.Plumber.ResponseStatus + 63, // 82: InternalApi.Plumber.PartialRebuildResponse.response_status:type_name -> InternalApi.Plumber.ResponseStatus + 15, // 83: InternalApi.Plumber.ResponseStatus.code:type_name -> InternalApi.Plumber.ResponseStatus.ResponseCode + 9, // 84: InternalApi.Plumber.PipelineEvent.state:type_name -> InternalApi.Plumber.Pipeline.State + 74, // 85: InternalApi.Plumber.PipelineEvent.timestamp:type_name -> google.protobuf.Timestamp + 4, // 86: InternalApi.Plumber.PipelineBlockEvent.state:type_name -> InternalApi.Plumber.Block.State + 74, // 87: InternalApi.Plumber.PipelineBlockEvent.timestamp:type_name -> google.protobuf.Timestamp + 16, // 88: InternalApi.Plumber.AfterPipeline.state:type_name -> InternalApi.Plumber.AfterPipeline.State + 17, // 89: InternalApi.Plumber.AfterPipeline.result:type_name -> InternalApi.Plumber.AfterPipeline.Result + 18, // 90: InternalApi.Plumber.AfterPipeline.result_reason:type_name -> InternalApi.Plumber.AfterPipeline.ResultReason + 74, // 91: InternalApi.Plumber.AfterPipeline.created_at:type_name -> google.protobuf.Timestamp + 16, // 92: InternalApi.Plumber.AfterPipelineEvent.state:type_name -> InternalApi.Plumber.AfterPipeline.State + 74, // 93: InternalApi.Plumber.AfterPipelineEvent.timestamp:type_name -> google.protobuf.Timestamp + 19, // 94: InternalApi.Plumber.PipelineService.Schedule:input_type -> InternalApi.Plumber.ScheduleRequest + 21, // 95: InternalApi.Plumber.PipelineService.Describe:input_type -> InternalApi.Plumber.DescribeRequest + 24, // 96: InternalApi.Plumber.PipelineService.DescribeMany:input_type -> InternalApi.Plumber.DescribeManyRequest + 26, // 97: InternalApi.Plumber.PipelineService.DescribeTopology:input_type -> InternalApi.Plumber.DescribeTopologyRequest + 28, // 98: InternalApi.Plumber.PipelineService.Terminate:input_type -> InternalApi.Plumber.TerminateRequest + 34, // 99: InternalApi.Plumber.PipelineService.ListKeyset:input_type -> InternalApi.Plumber.ListKeysetRequest + 36, // 100: InternalApi.Plumber.PipelineService.List:input_type -> InternalApi.Plumber.ListRequest + 32, // 101: InternalApi.Plumber.PipelineService.ListGrouped:input_type -> InternalApi.Plumber.ListGroupedRequest + 30, // 102: InternalApi.Plumber.PipelineService.ListQueues:input_type -> InternalApi.Plumber.ListQueuesRequest + 41, // 103: InternalApi.Plumber.PipelineService.ListActivity:input_type -> InternalApi.Plumber.ListActivityRequest + 43, // 104: InternalApi.Plumber.PipelineService.ListRequesters:input_type -> InternalApi.Plumber.ListRequestersRequest + 48, // 105: InternalApi.Plumber.PipelineService.RunNow:input_type -> InternalApi.Plumber.RunNowRequest + 50, // 106: InternalApi.Plumber.PipelineService.GetProjectId:input_type -> InternalApi.Plumber.GetProjectIdRequest + 52, // 107: InternalApi.Plumber.PipelineService.ValidateYaml:input_type -> InternalApi.Plumber.ValidateYamlRequest + 54, // 108: InternalApi.Plumber.PipelineService.ScheduleExtension:input_type -> InternalApi.Plumber.ScheduleExtensionRequest + 57, // 109: InternalApi.Plumber.PipelineService.Delete:input_type -> InternalApi.Plumber.DeleteRequest + 59, // 110: InternalApi.Plumber.PipelineService.PartialRebuild:input_type -> InternalApi.Plumber.PartialRebuildRequest + 61, // 111: InternalApi.Plumber.PipelineService.Version:input_type -> InternalApi.Plumber.VersionRequest + 20, // 112: InternalApi.Plumber.PipelineService.Schedule:output_type -> InternalApi.Plumber.ScheduleResponse + 22, // 113: InternalApi.Plumber.PipelineService.Describe:output_type -> InternalApi.Plumber.DescribeResponse + 25, // 114: InternalApi.Plumber.PipelineService.DescribeMany:output_type -> InternalApi.Plumber.DescribeManyResponse + 27, // 115: InternalApi.Plumber.PipelineService.DescribeTopology:output_type -> InternalApi.Plumber.DescribeTopologyResponse + 29, // 116: InternalApi.Plumber.PipelineService.Terminate:output_type -> InternalApi.Plumber.TerminateResponse + 35, // 117: InternalApi.Plumber.PipelineService.ListKeyset:output_type -> InternalApi.Plumber.ListKeysetResponse + 37, // 118: InternalApi.Plumber.PipelineService.List:output_type -> InternalApi.Plumber.ListResponse + 33, // 119: InternalApi.Plumber.PipelineService.ListGrouped:output_type -> InternalApi.Plumber.ListGroupedResponse + 31, // 120: InternalApi.Plumber.PipelineService.ListQueues:output_type -> InternalApi.Plumber.ListQueuesResponse + 42, // 121: InternalApi.Plumber.PipelineService.ListActivity:output_type -> InternalApi.Plumber.ListActivityResponse + 44, // 122: InternalApi.Plumber.PipelineService.ListRequesters:output_type -> InternalApi.Plumber.ListRequestersResponse + 49, // 123: InternalApi.Plumber.PipelineService.RunNow:output_type -> InternalApi.Plumber.RunNowResponse + 51, // 124: InternalApi.Plumber.PipelineService.GetProjectId:output_type -> InternalApi.Plumber.GetProjectIdResponse + 53, // 125: InternalApi.Plumber.PipelineService.ValidateYaml:output_type -> InternalApi.Plumber.ValidateYamlResponse + 56, // 126: InternalApi.Plumber.PipelineService.ScheduleExtension:output_type -> InternalApi.Plumber.ScheduleExtensionResponse + 58, // 127: InternalApi.Plumber.PipelineService.Delete:output_type -> InternalApi.Plumber.DeleteResponse + 60, // 128: InternalApi.Plumber.PipelineService.PartialRebuild:output_type -> InternalApi.Plumber.PartialRebuildResponse + 62, // 129: InternalApi.Plumber.PipelineService.Version:output_type -> InternalApi.Plumber.VersionResponse + 112, // [112:130] is the sub-list for method output_type + 94, // [94:112] is the sub-list for method input_type + 94, // [94:94] is the sub-list for extension type_name + 94, // [94:94] is the sub-list for extension extendee + 0, // [0:94] is the sub-list for field type_name } func init() { file_plumber_pipeline_proto_init() } @@ -7511,7 +7828,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListActivityRequest); i { + switch v := v.(*Triggerer); i { case 0: return &v.state case 1: @@ -7523,7 +7840,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListActivityResponse); i { + switch v := v.(*ListActivityRequest); i { case 0: return &v.state case 1: @@ -7535,7 +7852,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRequestersRequest); i { + switch v := v.(*ListActivityResponse); i { case 0: return &v.state case 1: @@ -7547,7 +7864,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRequestersResponse); i { + switch v := v.(*ListRequestersRequest); i { case 0: return &v.state case 1: @@ -7559,7 +7876,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Requester); i { + switch v := v.(*ListRequestersResponse); i { case 0: return &v.state case 1: @@ -7571,7 +7888,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActivePipeline); i { + switch v := v.(*Requester); i { case 0: return &v.state case 1: @@ -7583,7 +7900,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockDetails); i { + switch v := v.(*ActivePipeline); i { case 0: return &v.state case 1: @@ -7595,7 +7912,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RunNowRequest); i { + switch v := v.(*BlockDetails); i { case 0: return &v.state case 1: @@ -7607,7 +7924,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RunNowResponse); i { + switch v := v.(*RunNowRequest); i { case 0: return &v.state case 1: @@ -7619,7 +7936,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectIdRequest); i { + switch v := v.(*RunNowResponse); i { case 0: return &v.state case 1: @@ -7631,7 +7948,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectIdResponse); i { + switch v := v.(*GetProjectIdRequest); i { case 0: return &v.state case 1: @@ -7643,7 +7960,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateYamlRequest); i { + switch v := v.(*GetProjectIdResponse); i { case 0: return &v.state case 1: @@ -7655,7 +7972,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateYamlResponse); i { + switch v := v.(*ValidateYamlRequest); i { case 0: return &v.state case 1: @@ -7667,7 +7984,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleExtensionRequest); i { + switch v := v.(*ValidateYamlResponse); i { case 0: return &v.state case 1: @@ -7679,7 +7996,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EnvVariable); i { + switch v := v.(*ScheduleExtensionRequest); i { case 0: return &v.state case 1: @@ -7691,7 +8008,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleExtensionResponse); i { + switch v := v.(*EnvVariable); i { case 0: return &v.state case 1: @@ -7703,7 +8020,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRequest); i { + switch v := v.(*ScheduleExtensionResponse); i { case 0: return &v.state case 1: @@ -7715,7 +8032,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteResponse); i { + switch v := v.(*DeleteRequest); i { case 0: return &v.state case 1: @@ -7727,7 +8044,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PartialRebuildRequest); i { + switch v := v.(*DeleteResponse); i { case 0: return &v.state case 1: @@ -7739,7 +8056,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PartialRebuildResponse); i { + switch v := v.(*PartialRebuildRequest); i { case 0: return &v.state case 1: @@ -7751,7 +8068,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VersionRequest); i { + switch v := v.(*PartialRebuildResponse); i { case 0: return &v.state case 1: @@ -7763,7 +8080,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VersionResponse); i { + switch v := v.(*VersionRequest); i { case 0: return &v.state case 1: @@ -7775,7 +8092,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponseStatus); i { + switch v := v.(*VersionResponse); i { case 0: return &v.state case 1: @@ -7787,7 +8104,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipelineEvent); i { + switch v := v.(*ResponseStatus); i { case 0: return &v.state case 1: @@ -7799,7 +8116,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipelineBlockEvent); i { + switch v := v.(*PipelineEvent); i { case 0: return &v.state case 1: @@ -7811,7 +8128,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AfterPipeline); i { + switch v := v.(*PipelineBlockEvent); i { case 0: return &v.state case 1: @@ -7823,7 +8140,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AfterPipelineEvent); i { + switch v := v.(*AfterPipeline); i { case 0: return &v.state case 1: @@ -7835,7 +8152,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleRequest_Repo); i { + switch v := v.(*AfterPipelineEvent); i { case 0: return &v.state case 1: @@ -7847,7 +8164,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleRequest_Auth); i { + switch v := v.(*ScheduleRequest_Repo); i { case 0: return &v.state case 1: @@ -7859,7 +8176,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Block_Job); i { + switch v := v.(*ScheduleRequest_Auth); i { case 0: return &v.state case 1: @@ -7871,7 +8188,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeTopologyResponse_Block); i { + switch v := v.(*Block_Job); i { case 0: return &v.state case 1: @@ -7883,7 +8200,7 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeTopologyResponse_AfterPipeline); i { + switch v := v.(*DescribeTopologyResponse_Block); i { case 0: return &v.state case 1: @@ -7895,6 +8212,18 @@ func file_plumber_pipeline_proto_init() { } } file_plumber_pipeline_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescribeTopologyResponse_AfterPipeline); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plumber_pipeline_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockDetails_JobDetails); i { case 0: return &v.state @@ -7912,8 +8241,8 @@ func file_plumber_pipeline_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_plumber_pipeline_proto_rawDesc, - NumEnums: 18, - NumMessages: 54, + NumEnums: 19, + NumMessages: 55, NumExtensions: 0, NumServices: 1, }, diff --git a/ee/velocity/pkg/protos/plumber_w_f.workflow/plumber_w_f.workflow.pb.go b/ee/velocity/pkg/protos/plumber_w_f.workflow/plumber_w_f.workflow.pb.go index 61d9a1931..257279576 100644 --- a/ee/velocity/pkg/protos/plumber_w_f.workflow/plumber_w_f.workflow.pb.go +++ b/ee/velocity/pkg/protos/plumber_w_f.workflow/plumber_w_f.workflow.pb.go @@ -22,7 +22,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Types of events that can trigger a workflow type TriggeredBy int32 const ( @@ -132,6 +131,8 @@ const ( ScheduleRequest_LOCAL ScheduleRequest_ServiceType = 1 ScheduleRequest_SNAPSHOT ScheduleRequest_ServiceType = 2 ScheduleRequest_BITBUCKET ScheduleRequest_ServiceType = 3 + ScheduleRequest_GITLAB ScheduleRequest_ServiceType = 4 + ScheduleRequest_GIT ScheduleRequest_ServiceType = 5 ) // Enum value maps for ScheduleRequest_ServiceType. @@ -141,12 +142,16 @@ var ( 1: "LOCAL", 2: "SNAPSHOT", 3: "BITBUCKET", + 4: "GITLAB", + 5: "GIT", } ScheduleRequest_ServiceType_value = map[string]int32{ "GIT_HUB": 0, "LOCAL": 1, "SNAPSHOT": 2, "BITBUCKET": 3, + "GITLAB": 4, + "GIT": 5, } ) @@ -3391,7 +3396,7 @@ var file_plumber_w_f_workflow_proto_rawDesc = []byte{ 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x9c, 0x07, 0x0a, 0x0f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0xb1, 0x07, 0x0a, 0x0f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x53, 0x63, 0x68, @@ -3444,491 +3449,493 @@ var file_plumber_w_f_workflow_proto_rawDesc = []byte{ 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x1a, 0x32, 0x0a, 0x06, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x42, 0x0a, 0x0b, 0x53, 0x65, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x49, 0x54, 0x5f, 0x48, 0x55, 0x42, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x02, 0x12, - 0x0d, 0x0a, 0x09, 0x42, 0x49, 0x54, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x03, 0x22, 0x6b, - 0x0a, 0x10, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, - 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x70, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, - 0x70, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x70, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x50, - 0x70, 0x6c, 0x49, 0x64, 0x22, 0xcb, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x3e, 0x0a, - 0x0d, 0x77, 0x66, 0x5f, 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, 0x0b, 0x77, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x46, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x1a, 0x6e, 0x0a, 0x0b, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x10, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0xd4, 0x03, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x37, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x59, 0x0a, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, - 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, - 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, - 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, - 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x22, 0xbb, 0x01, 0x0a, 0x1b, 0x4c, 0x69, + 0x0d, 0x0a, 0x09, 0x42, 0x49, 0x54, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x03, 0x12, 0x0a, + 0x0a, 0x06, 0x47, 0x49, 0x54, 0x4c, 0x41, 0x42, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x49, + 0x54, 0x10, 0x05, 0x22, 0x6b, 0x0a, 0x10, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, + 0x22, 0x67, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x5f, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x50, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6c, 0x61, 0x73, 0x74, 0x50, 0x70, 0x6c, 0x49, 0x64, 0x22, 0xcb, 0x02, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a, + 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, + 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x66, 0x5f, 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, 0x0b, 0x77, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x46, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x6e, 0x0a, 0x0b, 0x50, 0x61, 0x74, 0x68, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd4, 0x03, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xc2, 0x03, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x47, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x53, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x59, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, + 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x69, + 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x22, 0xbb, + 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, + 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xc2, 0x03, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x53, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, + 0x64, 0x4b, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0d, - 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x69, 0x74, 0x52, - 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, - 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, 0x12, 0x0c, - 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x22, 0xb5, 0x01, 0x0a, - 0x15, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, + 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, + 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, + 0x01, 0x22, 0xb5, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, + 0x64, 0x4b, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb5, 0x02, 0x0a, 0x12, 0x4c, 0x69, + 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x53, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x65, 0x64, 0x42, 0x79, 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x0a, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, + 0x41, 0x4e, 0x43, 0x48, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, + 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, - 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb5, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x0a, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x34, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x42, 0x79, - 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, - 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, - 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, - 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, - 0x13, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0xcc, 0x03, 0x0a, 0x0b, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, + 0x22, 0xcc, 0x03, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12, 0x41, + 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, + 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, + 0x85, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, + 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0xa7, 0x06, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x0d, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x57, 0x46, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, - 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x85, 0x02, 0x0a, 0x0c, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, - 0x65, 0x73, 0x22, 0xa7, 0x06, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x52, - 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, - 0x79, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x73, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, - 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, 0x12, 0x0c, - 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x22, 0xdf, 0x01, 0x0a, - 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, - 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xef, - 0x03, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, - 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x5f, 0x73, 0x68, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x72, 0x75, 0x6e, - 0x5f, 0x6f, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x72, 0x75, 0x6e, - 0x4f, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x22, 0x26, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x3f, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x2c, - 0x0a, 0x13, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x66, 0x49, 0x64, 0x73, 0x22, 0x89, 0x01, 0x0a, - 0x14, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x4a, 0x0a, 0x10, 0x54, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x77, 0x66, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x11, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x63, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x12, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0b, 0x67, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, + 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, + 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x22, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x22, 0x23, 0x0a, 0x09, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, + 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, + 0x01, 0x22, 0xdf, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x70, 0x6c, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x57, 0x46, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x52, + 0x0b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x6f, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x72, 0x65, 0x72, 0x75, 0x6e, 0x4f, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x22, 0x83, 0x01, + 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0x70, 0x0a, 0x11, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2a, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xce, 0x01, - 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, + 0x42, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x22, 0x2c, 0x0a, 0x13, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, + 0x61, 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x66, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x66, 0x49, 0x64, + 0x73, 0x22, 0x89, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, + 0x6e, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x57, 0x46, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x4a, 0x0a, + 0x10, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x11, 0x54, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x63, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x22, 0xdd, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, + 0x22, 0x70, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x69, - 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x2a, 0x3e, 0x0a, 0x0b, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4f, 0x4f, 0x4b, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x4e, - 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x03, 0x2a, 0x29, 0x0a, 0x0a, 0x47, 0x69, 0x74, - 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, 0x41, 0x4e, 0x43, - 0x48, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, - 0x50, 0x52, 0x10, 0x02, 0x32, 0xf6, 0x0a, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, + 0x65, 0x6e, 0x22, 0x2a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x22, 0x62, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, + 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x77, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x66, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x70, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x2a, 0x3e, + 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x08, 0x0a, + 0x04, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x43, 0x48, 0x45, 0x44, + 0x55, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x10, 0x02, 0x12, 0x0e, + 0x0a, 0x0a, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x03, 0x2a, 0x29, + 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, + 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, + 0x01, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x52, 0x10, 0x02, 0x32, 0xf6, 0x0a, 0x0a, 0x0f, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, + 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, + 0x46, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x57, 0x46, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x61, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x12, 0x28, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x65, 0x64, 0x12, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, + 0x73, 0x65, 0x74, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x12, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x31, 0x2e, 0x49, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, + 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4b, 0x53, 0x12, + 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x65, 0x64, 0x4b, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, - 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x67, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, - 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, + 0x4b, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x13, 0x4c, 0x69, + 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x12, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, + 0x0a, 0x09, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x57, 0x46, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, + 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x57, 0x46, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x54, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0a, 0x4c, 0x69, 0x73, - 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0a, - 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x57, 0x46, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, - 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x5a, - 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, - 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x6c, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x5f, 0x66, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x46, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x12, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x46, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x57, 0x46, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x4b, 0x5a, 0x49, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, + 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x6c, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x77, 0x5f, 0x66, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ee/velocity/pkg/protos/projecthub/projecthub.pb.go b/ee/velocity/pkg/protos/projecthub/projecthub.pb.go index da8940ec5..d0d63ebcd 100644 --- a/ee/velocity/pkg/protos/projecthub/projecthub.pb.go +++ b/ee/velocity/pkg/protos/projecthub/projecthub.pb.go @@ -183,6 +183,7 @@ const ( Project_Spec_Repository_TAGS Project_Spec_Repository_RunType = 1 Project_Spec_Repository_PULL_REQUESTS Project_Spec_Repository_RunType = 2 Project_Spec_Repository_FORKED_PULL_REQUESTS Project_Spec_Repository_RunType = 3 + Project_Spec_Repository_DRAFT_PULL_REQUESTS Project_Spec_Repository_RunType = 4 ) // Enum value maps for Project_Spec_Repository_RunType. @@ -192,12 +193,14 @@ var ( 1: "TAGS", 2: "PULL_REQUESTS", 3: "FORKED_PULL_REQUESTS", + 4: "DRAFT_PULL_REQUESTS", } Project_Spec_Repository_RunType_value = map[string]int32{ "BRANCHES": 0, "TAGS": 1, "PULL_REQUESTS": 2, "FORKED_PULL_REQUESTS": 3, + "DRAFT_PULL_REQUESTS": 4, } ) @@ -378,6 +381,7 @@ const ( Project_Status_INITIALIZING Project_Status_State = 0 Project_Status_READY Project_Status_State = 1 Project_Status_ERROR Project_Status_State = 2 + Project_Status_ONBOARDING Project_Status_State = 3 ) // Enum value maps for Project_Status_State. @@ -386,11 +390,13 @@ var ( 0: "INITIALIZING", 1: "READY", 2: "ERROR", + 3: "ONBOARDING", } Project_Status_State_value = map[string]int32{ "INITIALIZING": 0, "READY": 1, "ERROR": 2, + "ONBOARDING": 3, } ) @@ -421,6 +427,52 @@ func (Project_Status_State) EnumDescriptor() ([]byte, []int) { return file_projecthub_proto_rawDescGZIP(), []int{4, 2, 0} } +type ListKeysetRequest_Direction int32 + +const ( + ListKeysetRequest_NEXT ListKeysetRequest_Direction = 0 + ListKeysetRequest_PREVIOUS ListKeysetRequest_Direction = 1 +) + +// Enum value maps for ListKeysetRequest_Direction. +var ( + ListKeysetRequest_Direction_name = map[int32]string{ + 0: "NEXT", + 1: "PREVIOUS", + } + ListKeysetRequest_Direction_value = map[string]int32{ + "NEXT": 0, + "PREVIOUS": 1, + } +) + +func (x ListKeysetRequest_Direction) Enum() *ListKeysetRequest_Direction { + p := new(ListKeysetRequest_Direction) + *p = x + return p +} + +func (x ListKeysetRequest_Direction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListKeysetRequest_Direction) Descriptor() protoreflect.EnumDescriptor { + return file_projecthub_proto_enumTypes[8].Descriptor() +} + +func (ListKeysetRequest_Direction) Type() protoreflect.EnumType { + return &file_projecthub_proto_enumTypes[8] +} + +func (x ListKeysetRequest_Direction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListKeysetRequest_Direction.Descriptor instead. +func (ListKeysetRequest_Direction) EnumDescriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{7, 0} +} + type RequestMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -781,15 +833,17 @@ func (x *Project) GetStatus() *Project_Status { // - metadata = [required] Request metadata // - owner_id = [optional] Project Owner ID // - repo_url = [optional] Repository URL +// - soft_deleted = [optional] Return soft deleted projects? Default is false. type ListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Pagination *PaginationRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` - OwnerId string `protobuf:"bytes,3,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` - RepoUrl string `protobuf:"bytes,4,opt,name=repo_url,json=repoUrl,proto3" json:"repo_url,omitempty"` + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Pagination *PaginationRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + OwnerId string `protobuf:"bytes,3,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` + RepoUrl string `protobuf:"bytes,4,opt,name=repo_url,json=repoUrl,proto3" json:"repo_url,omitempty"` + SoftDeleted bool `protobuf:"varint,5,opt,name=soft_deleted,json=softDeleted,proto3" json:"soft_deleted,omitempty"` } func (x *ListRequest) Reset() { @@ -852,6 +906,13 @@ func (x *ListRequest) GetRepoUrl() string { return "" } +func (x *ListRequest) GetSoftDeleted() bool { + if x != nil { + return x.SoftDeleted + } + return false +} + type ListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -915,27 +976,195 @@ func (x *ListResponse) GetProjects() []*Project { return nil } +type ListKeysetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + Direction ListKeysetRequest_Direction `protobuf:"varint,4,opt,name=direction,proto3,enum=InternalApi.Projecthub.ListKeysetRequest_Direction" json:"direction,omitempty"` + OwnerId string `protobuf:"bytes,5,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` + RepoUrl string `protobuf:"bytes,6,opt,name=repo_url,json=repoUrl,proto3" json:"repo_url,omitempty"` + CreatedAfter *timestamp.Timestamp `protobuf:"bytes,7,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"` +} + +func (x *ListKeysetRequest) Reset() { + *x = ListKeysetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListKeysetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListKeysetRequest) ProtoMessage() {} + +func (x *ListKeysetRequest) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_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 ListKeysetRequest.ProtoReflect.Descriptor instead. +func (*ListKeysetRequest) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{7} +} + +func (x *ListKeysetRequest) GetMetadata() *RequestMeta { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ListKeysetRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListKeysetRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListKeysetRequest) GetDirection() ListKeysetRequest_Direction { + if x != nil { + return x.Direction + } + return ListKeysetRequest_NEXT +} + +func (x *ListKeysetRequest) GetOwnerId() string { + if x != nil { + return x.OwnerId + } + return "" +} + +func (x *ListKeysetRequest) GetRepoUrl() string { + if x != nil { + return x.RepoUrl + } + return "" +} + +func (x *ListKeysetRequest) GetCreatedAfter() *timestamp.Timestamp { + if x != nil { + return x.CreatedAfter + } + return nil +} + +type ListKeysetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *ResponseMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Projects []*Project `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` + NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + PreviousPageToken string `protobuf:"bytes,4,opt,name=previous_page_token,json=previousPageToken,proto3" json:"previous_page_token,omitempty"` +} + +func (x *ListKeysetResponse) Reset() { + *x = ListKeysetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListKeysetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListKeysetResponse) ProtoMessage() {} + +func (x *ListKeysetResponse) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListKeysetResponse.ProtoReflect.Descriptor instead. +func (*ListKeysetResponse) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{8} +} + +func (x *ListKeysetResponse) GetMetadata() *ResponseMeta { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ListKeysetResponse) GetProjects() []*Project { + if x != nil { + return x.Projects + } + return nil +} + +func (x *ListKeysetResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListKeysetResponse) GetPreviousPageToken() string { + if x != nil { + return x.PreviousPageToken + } + return "" +} + // Describe call request // // - metadata = [required] Request metadata // - id = [required if no name] Project ID // - name = [required if no id] Project name // - detailed = [optional] Return schedulers spec? Default if false. +// - soft_deleted = [optional] Return soft deleted projects? Default is false. type DescribeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Detailed bool `protobuf:"varint,4,opt,name=detailed,proto3" json:"detailed,omitempty"` + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Detailed bool `protobuf:"varint,4,opt,name=detailed,proto3" json:"detailed,omitempty"` + SoftDeleted bool `protobuf:"varint,5,opt,name=soft_deleted,json=softDeleted,proto3" json:"soft_deleted,omitempty"` } func (x *DescribeRequest) Reset() { *x = DescribeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[7] + mi := &file_projecthub_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -948,7 +1177,7 @@ func (x *DescribeRequest) String() string { func (*DescribeRequest) ProtoMessage() {} func (x *DescribeRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[7] + mi := &file_projecthub_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -961,7 +1190,7 @@ func (x *DescribeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeRequest.ProtoReflect.Descriptor instead. func (*DescribeRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{7} + return file_projecthub_proto_rawDescGZIP(), []int{9} } func (x *DescribeRequest) GetMetadata() *RequestMeta { @@ -992,6 +1221,13 @@ func (x *DescribeRequest) GetDetailed() bool { return false } +func (x *DescribeRequest) GetSoftDeleted() bool { + if x != nil { + return x.SoftDeleted + } + return false +} + type DescribeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1004,7 +1240,7 @@ type DescribeResponse struct { func (x *DescribeResponse) Reset() { *x = DescribeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[8] + mi := &file_projecthub_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1017,7 +1253,7 @@ func (x *DescribeResponse) String() string { func (*DescribeResponse) ProtoMessage() {} func (x *DescribeResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[8] + mi := &file_projecthub_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1030,7 +1266,7 @@ func (x *DescribeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeResponse.ProtoReflect.Descriptor instead. func (*DescribeResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{8} + return file_projecthub_proto_rawDescGZIP(), []int{10} } func (x *DescribeResponse) GetMetadata() *ResponseMeta { @@ -1047,19 +1283,25 @@ func (x *DescribeResponse) GetProject() *Project { return nil } +// DescribeMany call request +// +// - metadata = [required] Request metadata +// - ids = [required] List of project IDs +// - soft_deleted = [optional] Return soft deleted projects? Default is false. type DescribeManyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Ids []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Ids []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` + SoftDeleted bool `protobuf:"varint,3,opt,name=soft_deleted,json=softDeleted,proto3" json:"soft_deleted,omitempty"` } func (x *DescribeManyRequest) Reset() { *x = DescribeManyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[9] + mi := &file_projecthub_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1072,7 +1314,7 @@ func (x *DescribeManyRequest) String() string { func (*DescribeManyRequest) ProtoMessage() {} func (x *DescribeManyRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[9] + mi := &file_projecthub_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1085,7 +1327,7 @@ func (x *DescribeManyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeManyRequest.ProtoReflect.Descriptor instead. func (*DescribeManyRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{9} + return file_projecthub_proto_rawDescGZIP(), []int{11} } func (x *DescribeManyRequest) GetMetadata() *RequestMeta { @@ -1102,6 +1344,13 @@ func (x *DescribeManyRequest) GetIds() []string { return nil } +func (x *DescribeManyRequest) GetSoftDeleted() bool { + if x != nil { + return x.SoftDeleted + } + return false +} + type DescribeManyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1114,7 +1363,7 @@ type DescribeManyResponse struct { func (x *DescribeManyResponse) Reset() { *x = DescribeManyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[10] + mi := &file_projecthub_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1127,7 +1376,7 @@ func (x *DescribeManyResponse) String() string { func (*DescribeManyResponse) ProtoMessage() {} func (x *DescribeManyResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[10] + mi := &file_projecthub_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1140,7 +1389,7 @@ func (x *DescribeManyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeManyResponse.ProtoReflect.Descriptor instead. func (*DescribeManyResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{10} + return file_projecthub_proto_rawDescGZIP(), []int{12} } func (x *DescribeManyResponse) GetMetadata() *ResponseMeta { @@ -1162,14 +1411,15 @@ type CreateRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Project *Project `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Project *Project `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + SkipOnboarding bool `protobuf:"varint,3,opt,name=skip_onboarding,json=skipOnboarding,proto3" json:"skip_onboarding,omitempty"` } func (x *CreateRequest) Reset() { *x = CreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[11] + mi := &file_projecthub_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1182,7 +1432,7 @@ func (x *CreateRequest) String() string { func (*CreateRequest) ProtoMessage() {} func (x *CreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[11] + mi := &file_projecthub_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1195,7 +1445,7 @@ func (x *CreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. func (*CreateRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{11} + return file_projecthub_proto_rawDescGZIP(), []int{13} } func (x *CreateRequest) GetMetadata() *RequestMeta { @@ -1212,6 +1462,13 @@ func (x *CreateRequest) GetProject() *Project { return nil } +func (x *CreateRequest) GetSkipOnboarding() bool { + if x != nil { + return x.SkipOnboarding + } + return false +} + type CreateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1224,7 +1481,7 @@ type CreateResponse struct { func (x *CreateResponse) Reset() { *x = CreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[12] + mi := &file_projecthub_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1237,7 +1494,7 @@ func (x *CreateResponse) String() string { func (*CreateResponse) ProtoMessage() {} func (x *CreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[12] + mi := &file_projecthub_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1250,7 +1507,7 @@ func (x *CreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead. func (*CreateResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{12} + return file_projecthub_proto_rawDescGZIP(), []int{14} } func (x *CreateResponse) GetMetadata() *ResponseMeta { @@ -1272,14 +1529,15 @@ type UpdateRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Project *Project `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Project *Project `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + OmitSchedulersAndTasks bool `protobuf:"varint,3,opt,name=omit_schedulers_and_tasks,json=omitSchedulersAndTasks,proto3" json:"omit_schedulers_and_tasks,omitempty"` } func (x *UpdateRequest) Reset() { *x = UpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[13] + mi := &file_projecthub_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1292,7 +1550,7 @@ func (x *UpdateRequest) String() string { func (*UpdateRequest) ProtoMessage() {} func (x *UpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[13] + mi := &file_projecthub_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1305,7 +1563,7 @@ func (x *UpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead. func (*UpdateRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{13} + return file_projecthub_proto_rawDescGZIP(), []int{15} } func (x *UpdateRequest) GetMetadata() *RequestMeta { @@ -1322,6 +1580,13 @@ func (x *UpdateRequest) GetProject() *Project { return nil } +func (x *UpdateRequest) GetOmitSchedulersAndTasks() bool { + if x != nil { + return x.OmitSchedulersAndTasks + } + return false +} + type UpdateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1334,7 +1599,7 @@ type UpdateResponse struct { func (x *UpdateResponse) Reset() { *x = UpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[14] + mi := &file_projecthub_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1347,7 +1612,7 @@ func (x *UpdateResponse) String() string { func (*UpdateResponse) ProtoMessage() {} func (x *UpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[14] + mi := &file_projecthub_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1360,7 +1625,7 @@ func (x *UpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead. func (*UpdateResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{14} + return file_projecthub_proto_rawDescGZIP(), []int{16} } func (x *UpdateResponse) GetMetadata() *ResponseMeta { @@ -1390,7 +1655,7 @@ type DestroyRequest struct { func (x *DestroyRequest) Reset() { *x = DestroyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[15] + mi := &file_projecthub_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1403,7 +1668,7 @@ func (x *DestroyRequest) String() string { func (*DestroyRequest) ProtoMessage() {} func (x *DestroyRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[15] + mi := &file_projecthub_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1416,7 +1681,7 @@ func (x *DestroyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DestroyRequest.ProtoReflect.Descriptor instead. func (*DestroyRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{15} + return file_projecthub_proto_rawDescGZIP(), []int{17} } func (x *DestroyRequest) GetMetadata() *RequestMeta { @@ -1451,7 +1716,7 @@ type DestroyResponse struct { func (x *DestroyResponse) Reset() { *x = DestroyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[16] + mi := &file_projecthub_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1464,7 +1729,7 @@ func (x *DestroyResponse) String() string { func (*DestroyResponse) ProtoMessage() {} func (x *DestroyResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[16] + mi := &file_projecthub_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1477,7 +1742,7 @@ func (x *DestroyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DestroyResponse.ProtoReflect.Descriptor instead. func (*DestroyResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{16} + return file_projecthub_proto_rawDescGZIP(), []int{18} } func (x *DestroyResponse) GetMetadata() *ResponseMeta { @@ -1487,10 +1752,7 @@ func (x *DestroyResponse) GetMetadata() *ResponseMeta { return nil } -// Users call request -// -// - id = [required] project uuid. -type UsersRequest struct { +type RestoreRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1499,23 +1761,23 @@ type UsersRequest struct { Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *UsersRequest) Reset() { - *x = UsersRequest{} +func (x *RestoreRequest) Reset() { + *x = RestoreRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[17] + mi := &file_projecthub_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UsersRequest) String() string { +func (x *RestoreRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UsersRequest) ProtoMessage() {} +func (*RestoreRequest) ProtoMessage() {} -func (x *UsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[17] +func (x *RestoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1526,9 +1788,114 @@ func (x *UsersRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UsersRequest.ProtoReflect.Descriptor instead. +// Deprecated: Use RestoreRequest.ProtoReflect.Descriptor instead. +func (*RestoreRequest) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{19} +} + +func (x *RestoreRequest) GetMetadata() *RequestMeta { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *RestoreRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type RestoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *ResponseMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *RestoreResponse) Reset() { + *x = RestoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestoreResponse) ProtoMessage() {} + +func (x *RestoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[20] + 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 RestoreResponse.ProtoReflect.Descriptor instead. +func (*RestoreResponse) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{20} +} + +func (x *RestoreResponse) GetMetadata() *ResponseMeta { + if x != nil { + return x.Metadata + } + return nil +} + +// Users call request +// +// - id = [required] project uuid. +type UsersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *UsersRequest) Reset() { + *x = UsersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UsersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UsersRequest) ProtoMessage() {} + +func (x *UsersRequest) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[21] + 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 UsersRequest.ProtoReflect.Descriptor instead. func (*UsersRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{17} + return file_projecthub_proto_rawDescGZIP(), []int{21} } func (x *UsersRequest) GetMetadata() *RequestMeta { @@ -1560,7 +1927,7 @@ type UsersResponse struct { func (x *UsersResponse) Reset() { *x = UsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[18] + mi := &file_projecthub_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1573,7 +1940,7 @@ func (x *UsersResponse) String() string { func (*UsersResponse) ProtoMessage() {} func (x *UsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[18] + mi := &file_projecthub_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1586,7 +1953,7 @@ func (x *UsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UsersResponse.ProtoReflect.Descriptor instead. func (*UsersResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{18} + return file_projecthub_proto_rawDescGZIP(), []int{22} } func (x *UsersResponse) GetMetadata() *ResponseMeta { @@ -1618,7 +1985,7 @@ type CheckDeployKeyRequest struct { func (x *CheckDeployKeyRequest) Reset() { *x = CheckDeployKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[19] + mi := &file_projecthub_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1631,7 +1998,7 @@ func (x *CheckDeployKeyRequest) String() string { func (*CheckDeployKeyRequest) ProtoMessage() {} func (x *CheckDeployKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[19] + mi := &file_projecthub_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1644,7 +2011,7 @@ func (x *CheckDeployKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckDeployKeyRequest.ProtoReflect.Descriptor instead. func (*CheckDeployKeyRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{19} + return file_projecthub_proto_rawDescGZIP(), []int{23} } func (x *CheckDeployKeyRequest) GetMetadata() *RequestMeta { @@ -1674,7 +2041,7 @@ type CheckDeployKeyResponse struct { func (x *CheckDeployKeyResponse) Reset() { *x = CheckDeployKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[20] + mi := &file_projecthub_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1687,7 +2054,7 @@ func (x *CheckDeployKeyResponse) String() string { func (*CheckDeployKeyResponse) ProtoMessage() {} func (x *CheckDeployKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[20] + mi := &file_projecthub_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1700,7 +2067,7 @@ func (x *CheckDeployKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckDeployKeyResponse.ProtoReflect.Descriptor instead. func (*CheckDeployKeyResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{20} + return file_projecthub_proto_rawDescGZIP(), []int{24} } func (x *CheckDeployKeyResponse) GetMetadata() *ResponseMeta { @@ -1732,7 +2099,7 @@ type RegenerateDeployKeyRequest struct { func (x *RegenerateDeployKeyRequest) Reset() { *x = RegenerateDeployKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[21] + mi := &file_projecthub_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1745,7 +2112,7 @@ func (x *RegenerateDeployKeyRequest) String() string { func (*RegenerateDeployKeyRequest) ProtoMessage() {} func (x *RegenerateDeployKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[21] + mi := &file_projecthub_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1758,7 +2125,7 @@ func (x *RegenerateDeployKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegenerateDeployKeyRequest.ProtoReflect.Descriptor instead. func (*RegenerateDeployKeyRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{21} + return file_projecthub_proto_rawDescGZIP(), []int{25} } func (x *RegenerateDeployKeyRequest) GetMetadata() *RequestMeta { @@ -1788,7 +2155,7 @@ type RegenerateDeployKeyResponse struct { func (x *RegenerateDeployKeyResponse) Reset() { *x = RegenerateDeployKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[22] + mi := &file_projecthub_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1801,7 +2168,7 @@ func (x *RegenerateDeployKeyResponse) String() string { func (*RegenerateDeployKeyResponse) ProtoMessage() {} func (x *RegenerateDeployKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[22] + mi := &file_projecthub_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1814,7 +2181,7 @@ func (x *RegenerateDeployKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegenerateDeployKeyResponse.ProtoReflect.Descriptor instead. func (*RegenerateDeployKeyResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{22} + return file_projecthub_proto_rawDescGZIP(), []int{26} } func (x *RegenerateDeployKeyResponse) GetMetadata() *ResponseMeta { @@ -1846,7 +2213,7 @@ type CheckWebhookRequest struct { func (x *CheckWebhookRequest) Reset() { *x = CheckWebhookRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[23] + mi := &file_projecthub_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1859,7 +2226,7 @@ func (x *CheckWebhookRequest) String() string { func (*CheckWebhookRequest) ProtoMessage() {} func (x *CheckWebhookRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[23] + mi := &file_projecthub_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1872,7 +2239,7 @@ func (x *CheckWebhookRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckWebhookRequest.ProtoReflect.Descriptor instead. func (*CheckWebhookRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{23} + return file_projecthub_proto_rawDescGZIP(), []int{27} } func (x *CheckWebhookRequest) GetMetadata() *RequestMeta { @@ -1902,7 +2269,7 @@ type CheckWebhookResponse struct { func (x *CheckWebhookResponse) Reset() { *x = CheckWebhookResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[24] + mi := &file_projecthub_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1915,7 +2282,7 @@ func (x *CheckWebhookResponse) String() string { func (*CheckWebhookResponse) ProtoMessage() {} func (x *CheckWebhookResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[24] + mi := &file_projecthub_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1928,7 +2295,7 @@ func (x *CheckWebhookResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckWebhookResponse.ProtoReflect.Descriptor instead. func (*CheckWebhookResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{24} + return file_projecthub_proto_rawDescGZIP(), []int{28} } func (x *CheckWebhookResponse) GetMetadata() *ResponseMeta { @@ -1960,7 +2327,7 @@ type RegenerateWebhookRequest struct { func (x *RegenerateWebhookRequest) Reset() { *x = RegenerateWebhookRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[25] + mi := &file_projecthub_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1973,7 +2340,7 @@ func (x *RegenerateWebhookRequest) String() string { func (*RegenerateWebhookRequest) ProtoMessage() {} func (x *RegenerateWebhookRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[25] + mi := &file_projecthub_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1986,7 +2353,7 @@ func (x *RegenerateWebhookRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegenerateWebhookRequest.ProtoReflect.Descriptor instead. func (*RegenerateWebhookRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{25} + return file_projecthub_proto_rawDescGZIP(), []int{29} } func (x *RegenerateWebhookRequest) GetMetadata() *RequestMeta { @@ -2016,7 +2383,7 @@ type RegenerateWebhookResponse struct { func (x *RegenerateWebhookResponse) Reset() { *x = RegenerateWebhookResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[26] + mi := &file_projecthub_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2029,7 +2396,7 @@ func (x *RegenerateWebhookResponse) String() string { func (*RegenerateWebhookResponse) ProtoMessage() {} func (x *RegenerateWebhookResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[26] + mi := &file_projecthub_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2042,7 +2409,7 @@ func (x *RegenerateWebhookResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegenerateWebhookResponse.ProtoReflect.Descriptor instead. func (*RegenerateWebhookResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{26} + return file_projecthub_proto_rawDescGZIP(), []int{30} } func (x *RegenerateWebhookResponse) GetMetadata() *ResponseMeta { @@ -2070,7 +2437,7 @@ type Webhook struct { func (x *Webhook) Reset() { *x = Webhook{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[27] + mi := &file_projecthub_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2083,7 +2450,7 @@ func (x *Webhook) String() string { func (*Webhook) ProtoMessage() {} func (x *Webhook) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[27] + mi := &file_projecthub_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2096,7 +2463,7 @@ func (x *Webhook) ProtoReflect() protoreflect.Message { // Deprecated: Use Webhook.ProtoReflect.Descriptor instead. func (*Webhook) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{27} + return file_projecthub_proto_rawDescGZIP(), []int{31} } func (x *Webhook) GetUrl() string { @@ -2123,7 +2490,7 @@ type ChangeProjectOwnerRequest struct { func (x *ChangeProjectOwnerRequest) Reset() { *x = ChangeProjectOwnerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[28] + mi := &file_projecthub_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2136,7 +2503,7 @@ func (x *ChangeProjectOwnerRequest) String() string { func (*ChangeProjectOwnerRequest) ProtoMessage() {} func (x *ChangeProjectOwnerRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[28] + mi := &file_projecthub_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2149,7 +2516,7 @@ func (x *ChangeProjectOwnerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeProjectOwnerRequest.ProtoReflect.Descriptor instead. func (*ChangeProjectOwnerRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{28} + return file_projecthub_proto_rawDescGZIP(), []int{32} } func (x *ChangeProjectOwnerRequest) GetMetadata() *RequestMeta { @@ -2185,7 +2552,7 @@ type ChangeProjectOwnerResponse struct { func (x *ChangeProjectOwnerResponse) Reset() { *x = ChangeProjectOwnerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[29] + mi := &file_projecthub_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2198,7 +2565,7 @@ func (x *ChangeProjectOwnerResponse) String() string { func (*ChangeProjectOwnerResponse) ProtoMessage() {} func (x *ChangeProjectOwnerResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[29] + mi := &file_projecthub_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2211,7 +2578,7 @@ func (x *ChangeProjectOwnerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeProjectOwnerResponse.ProtoReflect.Descriptor instead. func (*ChangeProjectOwnerResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{29} + return file_projecthub_proto_rawDescGZIP(), []int{33} } func (x *ChangeProjectOwnerResponse) GetMetadata() *ResponseMeta { @@ -2234,7 +2601,7 @@ type ForkAndCreateRequest struct { func (x *ForkAndCreateRequest) Reset() { *x = ForkAndCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[30] + mi := &file_projecthub_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2247,7 +2614,7 @@ func (x *ForkAndCreateRequest) String() string { func (*ForkAndCreateRequest) ProtoMessage() {} func (x *ForkAndCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[30] + mi := &file_projecthub_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2260,7 +2627,7 @@ func (x *ForkAndCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ForkAndCreateRequest.ProtoReflect.Descriptor instead. func (*ForkAndCreateRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{30} + return file_projecthub_proto_rawDescGZIP(), []int{34} } func (x *ForkAndCreateRequest) GetMetadata() *RequestMeta { @@ -2290,7 +2657,7 @@ type ForkAndCreateResponse struct { func (x *ForkAndCreateResponse) Reset() { *x = ForkAndCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[31] + mi := &file_projecthub_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2303,7 +2670,7 @@ func (x *ForkAndCreateResponse) String() string { func (*ForkAndCreateResponse) ProtoMessage() {} func (x *ForkAndCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[31] + mi := &file_projecthub_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2316,7 +2683,7 @@ func (x *ForkAndCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ForkAndCreateResponse.ProtoReflect.Descriptor instead. func (*ForkAndCreateResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{31} + return file_projecthub_proto_rawDescGZIP(), []int{35} } func (x *ForkAndCreateResponse) GetMetadata() *ResponseMeta { @@ -2348,7 +2715,7 @@ type GithubAppSwitchRequest struct { func (x *GithubAppSwitchRequest) Reset() { *x = GithubAppSwitchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[32] + mi := &file_projecthub_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2361,7 +2728,7 @@ func (x *GithubAppSwitchRequest) String() string { func (*GithubAppSwitchRequest) ProtoMessage() {} func (x *GithubAppSwitchRequest) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[32] + mi := &file_projecthub_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2374,7 +2741,7 @@ func (x *GithubAppSwitchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GithubAppSwitchRequest.ProtoReflect.Descriptor instead. func (*GithubAppSwitchRequest) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{32} + return file_projecthub_proto_rawDescGZIP(), []int{36} } func (x *GithubAppSwitchRequest) GetMetadata() *RequestMeta { @@ -2403,7 +2770,7 @@ type GithubAppSwitchResponse struct { func (x *GithubAppSwitchResponse) Reset() { *x = GithubAppSwitchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[33] + mi := &file_projecthub_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2416,7 +2783,7 @@ func (x *GithubAppSwitchResponse) String() string { func (*GithubAppSwitchResponse) ProtoMessage() {} func (x *GithubAppSwitchResponse) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[33] + mi := &file_projecthub_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2429,7 +2796,7 @@ func (x *GithubAppSwitchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GithubAppSwitchResponse.ProtoReflect.Descriptor instead. func (*GithubAppSwitchResponse) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{33} + return file_projecthub_proto_rawDescGZIP(), []int{37} } func (x *GithubAppSwitchResponse) GetMetadata() *ResponseMeta { @@ -2439,35 +2806,35 @@ func (x *GithubAppSwitchResponse) GetMetadata() *ResponseMeta { return nil } -// Published with routing key: 'created'. -// All fields are required. -type ProjectCreated struct { +// FinishOnboarding call request +// +// - id = [required] project uuid. +type FinishOnboardingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *ProjectCreated) Reset() { - *x = ProjectCreated{} +func (x *FinishOnboardingRequest) Reset() { + *x = FinishOnboardingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[34] + mi := &file_projecthub_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProjectCreated) String() string { +func (x *FinishOnboardingRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProjectCreated) ProtoMessage() {} +func (*FinishOnboardingRequest) ProtoMessage() {} -func (x *ProjectCreated) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[34] +func (x *FinishOnboardingRequest) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2478,61 +2845,51 @@ func (x *ProjectCreated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProjectCreated.ProtoReflect.Descriptor instead. -func (*ProjectCreated) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{34} -} - -func (x *ProjectCreated) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" +// Deprecated: Use FinishOnboardingRequest.ProtoReflect.Descriptor instead. +func (*FinishOnboardingRequest) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{38} } -func (x *ProjectCreated) GetTimestamp() *timestamp.Timestamp { +func (x *FinishOnboardingRequest) GetMetadata() *RequestMeta { if x != nil { - return x.Timestamp + return x.Metadata } return nil } -func (x *ProjectCreated) GetOrgId() string { +func (x *FinishOnboardingRequest) GetId() string { if x != nil { - return x.OrgId + return x.Id } return "" } -// Published with routing key: 'deleted'. -// All fields are required. -type ProjectDeleted struct { +// FinishOnboarding call response +type FinishOnboardingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Metadata *ResponseMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ProjectDeleted) Reset() { - *x = ProjectDeleted{} +func (x *FinishOnboardingResponse) Reset() { + *x = FinishOnboardingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[35] + mi := &file_projecthub_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProjectDeleted) String() string { +func (x *FinishOnboardingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProjectDeleted) ProtoMessage() {} +func (*FinishOnboardingResponse) ProtoMessage() {} -func (x *ProjectDeleted) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[35] +func (x *FinishOnboardingResponse) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2543,26 +2900,323 @@ func (x *ProjectDeleted) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProjectDeleted.ProtoReflect.Descriptor instead. -func (*ProjectDeleted) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{35} -} - -func (x *ProjectDeleted) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" +// Deprecated: Use FinishOnboardingResponse.ProtoReflect.Descriptor instead. +func (*FinishOnboardingResponse) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{39} } -func (x *ProjectDeleted) GetTimestamp() *timestamp.Timestamp { +func (x *FinishOnboardingResponse) GetMetadata() *ResponseMeta { if x != nil { - return x.Timestamp + return x.Metadata } return nil } -func (x *ProjectDeleted) GetOrgId() string { +// RegenerateWebhook call request +// +// - id = [required] project uuid. +type RegenerateWebhookSecretRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *RequestMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *RegenerateWebhookSecretRequest) Reset() { + *x = RegenerateWebhookSecretRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegenerateWebhookSecretRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegenerateWebhookSecretRequest) ProtoMessage() {} + +func (x *RegenerateWebhookSecretRequest) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[40] + 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 RegenerateWebhookSecretRequest.ProtoReflect.Descriptor instead. +func (*RegenerateWebhookSecretRequest) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{40} +} + +func (x *RegenerateWebhookSecretRequest) GetMetadata() *RequestMeta { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *RegenerateWebhookSecretRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// RegenerateWebhook call response +// +// - secret = [required] new secret token for a project +type RegenerateWebhookSecretResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *ResponseMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"` +} + +func (x *RegenerateWebhookSecretResponse) Reset() { + *x = RegenerateWebhookSecretResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegenerateWebhookSecretResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegenerateWebhookSecretResponse) ProtoMessage() {} + +func (x *RegenerateWebhookSecretResponse) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[41] + 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 RegenerateWebhookSecretResponse.ProtoReflect.Descriptor instead. +func (*RegenerateWebhookSecretResponse) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{41} +} + +func (x *RegenerateWebhookSecretResponse) GetMetadata() *ResponseMeta { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *RegenerateWebhookSecretResponse) GetSecret() string { + if x != nil { + return x.Secret + } + return "" +} + +// Published with routing key: 'created'. +// All fields are required. +type ProjectCreated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` +} + +func (x *ProjectCreated) Reset() { + *x = ProjectCreated{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectCreated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectCreated) ProtoMessage() {} + +func (x *ProjectCreated) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[42] + 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 ProjectCreated.ProtoReflect.Descriptor instead. +func (*ProjectCreated) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{42} +} + +func (x *ProjectCreated) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *ProjectCreated) GetTimestamp() *timestamp.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ProjectCreated) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +// Published with routing key: 'deleted'. +// All fields are required. +type ProjectDeleted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` +} + +func (x *ProjectDeleted) Reset() { + *x = ProjectDeleted{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectDeleted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectDeleted) ProtoMessage() {} + +func (x *ProjectDeleted) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectDeleted.ProtoReflect.Descriptor instead. +func (*ProjectDeleted) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{43} +} + +func (x *ProjectDeleted) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *ProjectDeleted) GetTimestamp() *timestamp.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ProjectDeleted) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +// Published with routing key: 'restored'. +// All fields are required. +type ProjectRestored struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` +} + +func (x *ProjectRestored) Reset() { + *x = ProjectRestored{} + if protoimpl.UnsafeEnabled { + mi := &file_projecthub_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRestored) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRestored) ProtoMessage() {} + +func (x *ProjectRestored) ProtoReflect() protoreflect.Message { + mi := &file_projecthub_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRestored.ProtoReflect.Descriptor instead. +func (*ProjectRestored) Descriptor() ([]byte, []int) { + return file_projecthub_proto_rawDescGZIP(), []int{44} +} + +func (x *ProjectRestored) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *ProjectRestored) GetTimestamp() *timestamp.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ProjectRestored) GetOrgId() string { if x != nil { return x.OrgId } @@ -2584,7 +3238,7 @@ type ProjectUpdated struct { func (x *ProjectUpdated) Reset() { *x = ProjectUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[36] + mi := &file_projecthub_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2597,7 +3251,7 @@ func (x *ProjectUpdated) String() string { func (*ProjectUpdated) ProtoMessage() {} func (x *ProjectUpdated) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[36] + mi := &file_projecthub_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2610,7 +3264,7 @@ func (x *ProjectUpdated) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectUpdated.ProtoReflect.Descriptor instead. func (*ProjectUpdated) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{36} + return file_projecthub_proto_rawDescGZIP(), []int{45} } func (x *ProjectUpdated) GetProjectId() string { @@ -2648,7 +3302,7 @@ type CollaboratorsChanged struct { func (x *CollaboratorsChanged) Reset() { *x = CollaboratorsChanged{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[37] + mi := &file_projecthub_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2661,7 +3315,7 @@ func (x *CollaboratorsChanged) String() string { func (*CollaboratorsChanged) ProtoMessage() {} func (x *CollaboratorsChanged) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[37] + mi := &file_projecthub_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2674,7 +3328,7 @@ func (x *CollaboratorsChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use CollaboratorsChanged.ProtoReflect.Descriptor instead. func (*CollaboratorsChanged) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{37} + return file_projecthub_proto_rawDescGZIP(), []int{46} } func (x *CollaboratorsChanged) GetProjectId() string { @@ -2703,7 +3357,7 @@ type ResponseMeta_Status struct { func (x *ResponseMeta_Status) Reset() { *x = ResponseMeta_Status{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[38] + mi := &file_projecthub_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2716,7 +3370,7 @@ func (x *ResponseMeta_Status) String() string { func (*ResponseMeta_Status) ProtoMessage() {} func (x *ResponseMeta_Status) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[38] + mi := &file_projecthub_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2762,7 +3416,7 @@ type Project_Metadata struct { func (x *Project_Metadata) Reset() { *x = Project_Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[39] + mi := &file_projecthub_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2775,7 +3429,7 @@ func (x *Project_Metadata) String() string { func (*Project_Metadata) ProtoMessage() {} func (x *Project_Metadata) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[39] + mi := &file_projecthub_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2840,8 +3494,8 @@ func (x *Project_Metadata) GetCreatedAt() *timestamp.Timestamp { // - public = [optional, default = false, deprecated] Public project will be visible for everyone, even anonymous users. // - visibility = [optional, default = PRIVATE] Public project will be visible for everyone, even anonymous users. // - custom_permissions = [required if restricted organization] True if project do not follow organization defaults for debug/attach permissions. -// - debug_permissions = [required if restricted organization] List of types for witch debug sessions are allowed. Used only if custom_permissions is set to true. -// - attach_permissions = [required if restricted organization] List of types for witch attached sessions are allowed. Used only if custom_permissions is set to true. +// - debug_permissions = [required if restricted organization] List of types for which debug sessions are allowed. Used only if custom_permissions is set to true. +// - attach_permissions = [required if restricted organization] List of types for which attached sessions are allowed. Used only if custom_permissions is set to true. type Project_Spec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2864,7 +3518,7 @@ type Project_Spec struct { func (x *Project_Spec) Reset() { *x = Project_Spec{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[40] + mi := &file_projecthub_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2877,7 +3531,7 @@ func (x *Project_Spec) String() string { func (*Project_Spec) ProtoMessage() {} func (x *Project_Spec) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[40] + mi := &file_projecthub_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2995,7 +3649,7 @@ type Project_Status struct { func (x *Project_Status) Reset() { *x = Project_Status{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[41] + mi := &file_projecthub_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3008,7 +3662,7 @@ func (x *Project_Status) String() string { func (*Project_Status) ProtoMessage() {} func (x *Project_Status) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[41] + mi := &file_projecthub_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3107,7 +3761,7 @@ type Project_Spec_Repository struct { func (x *Project_Spec_Repository) Reset() { *x = Project_Spec_Repository{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[42] + mi := &file_projecthub_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3120,7 +3774,7 @@ func (x *Project_Spec_Repository) String() string { func (*Project_Spec_Repository) ProtoMessage() {} func (x *Project_Spec_Repository) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[42] + mi := &file_projecthub_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3267,7 +3921,7 @@ type Project_Spec_Scheduler struct { func (x *Project_Spec_Scheduler) Reset() { *x = Project_Spec_Scheduler{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[43] + mi := &file_projecthub_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3280,7 +3934,7 @@ func (x *Project_Spec_Scheduler) String() string { func (*Project_Spec_Scheduler) ProtoMessage() {} func (x *Project_Spec_Scheduler) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[43] + mi := &file_projecthub_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3357,7 +4011,7 @@ type Project_Spec_Task struct { func (x *Project_Spec_Task) Reset() { *x = Project_Spec_Task{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[44] + mi := &file_projecthub_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3370,7 +4024,7 @@ func (x *Project_Spec_Task) String() string { func (*Project_Spec_Task) ProtoMessage() {} func (x *Project_Spec_Task) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[44] + mi := &file_projecthub_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3467,7 +4121,7 @@ type Project_Spec_Repository_ForkedPullRequests struct { func (x *Project_Spec_Repository_ForkedPullRequests) Reset() { *x = Project_Spec_Repository_ForkedPullRequests{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[45] + mi := &file_projecthub_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3480,7 +4134,7 @@ func (x *Project_Spec_Repository_ForkedPullRequests) String() string { func (*Project_Spec_Repository_ForkedPullRequests) ProtoMessage() {} func (x *Project_Spec_Repository_ForkedPullRequests) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[45] + mi := &file_projecthub_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3521,7 +4175,7 @@ type Project_Spec_Repository_Status struct { func (x *Project_Spec_Repository_Status) Reset() { *x = Project_Spec_Repository_Status{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[46] + mi := &file_projecthub_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3534,7 +4188,7 @@ func (x *Project_Spec_Repository_Status) String() string { func (*Project_Spec_Repository_Status) ProtoMessage() {} func (x *Project_Spec_Repository_Status) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[46] + mi := &file_projecthub_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3571,7 +4225,7 @@ type Project_Spec_Repository_Whitelist struct { func (x *Project_Spec_Repository_Whitelist) Reset() { *x = Project_Spec_Repository_Whitelist{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[47] + mi := &file_projecthub_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3584,7 +4238,7 @@ func (x *Project_Spec_Repository_Whitelist) String() string { func (*Project_Spec_Repository_Whitelist) ProtoMessage() {} func (x *Project_Spec_Repository_Whitelist) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[47] + mi := &file_projecthub_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3630,7 +4284,7 @@ type Project_Spec_Repository_Status_PipelineFile struct { func (x *Project_Spec_Repository_Status_PipelineFile) Reset() { *x = Project_Spec_Repository_Status_PipelineFile{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[48] + mi := &file_projecthub_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3643,7 +4297,7 @@ func (x *Project_Spec_Repository_Status_PipelineFile) String() string { func (*Project_Spec_Repository_Status_PipelineFile) ProtoMessage() {} func (x *Project_Spec_Repository_Status_PipelineFile) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[48] + mi := &file_projecthub_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3688,7 +4342,7 @@ type Project_Spec_Task_Parameter struct { func (x *Project_Spec_Task_Parameter) Reset() { *x = Project_Spec_Task_Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[49] + mi := &file_projecthub_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3701,7 +4355,7 @@ func (x *Project_Spec_Task_Parameter) String() string { func (*Project_Spec_Task_Parameter) ProtoMessage() {} func (x *Project_Spec_Task_Parameter) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[49] + mi := &file_projecthub_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3763,7 +4417,7 @@ type Project_Status_Cache struct { func (x *Project_Status_Cache) Reset() { *x = Project_Status_Cache{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[50] + mi := &file_projecthub_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3776,7 +4430,7 @@ func (x *Project_Status_Cache) String() string { func (*Project_Status_Cache) ProtoMessage() {} func (x *Project_Status_Cache) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[50] + mi := &file_projecthub_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3810,7 +4464,7 @@ type Project_Status_ArtifactStore struct { func (x *Project_Status_ArtifactStore) Reset() { *x = Project_Status_ArtifactStore{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[51] + mi := &file_projecthub_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3823,7 +4477,7 @@ func (x *Project_Status_ArtifactStore) String() string { func (*Project_Status_ArtifactStore) ProtoMessage() {} func (x *Project_Status_ArtifactStore) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[51] + mi := &file_projecthub_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3857,7 +4511,7 @@ type Project_Status_Repository struct { func (x *Project_Status_Repository) Reset() { *x = Project_Status_Repository{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[52] + mi := &file_projecthub_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3870,7 +4524,7 @@ func (x *Project_Status_Repository) String() string { func (*Project_Status_Repository) ProtoMessage() {} func (x *Project_Status_Repository) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[52] + mi := &file_projecthub_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3904,7 +4558,7 @@ type Project_Status_Analysis struct { func (x *Project_Status_Analysis) Reset() { *x = Project_Status_Analysis{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[53] + mi := &file_projecthub_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3917,7 +4571,7 @@ func (x *Project_Status_Analysis) String() string { func (*Project_Status_Analysis) ProtoMessage() {} func (x *Project_Status_Analysis) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[53] + mi := &file_projecthub_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3951,7 +4605,7 @@ type Project_Status_Permissions struct { func (x *Project_Status_Permissions) Reset() { *x = Project_Status_Permissions{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[54] + mi := &file_projecthub_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3964,7 +4618,7 @@ func (x *Project_Status_Permissions) String() string { func (*Project_Status_Permissions) ProtoMessage() {} func (x *Project_Status_Permissions) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[54] + mi := &file_projecthub_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3995,12 +4649,13 @@ type CheckDeployKeyResponse_DeployKey struct { Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` Fingerprint string `protobuf:"bytes,2,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"` CreatedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + PublicKey string `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` } func (x *CheckDeployKeyResponse_DeployKey) Reset() { *x = CheckDeployKeyResponse_DeployKey{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[55] + mi := &file_projecthub_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4013,7 +4668,7 @@ func (x *CheckDeployKeyResponse_DeployKey) String() string { func (*CheckDeployKeyResponse_DeployKey) ProtoMessage() {} func (x *CheckDeployKeyResponse_DeployKey) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[55] + mi := &file_projecthub_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4026,7 +4681,7 @@ func (x *CheckDeployKeyResponse_DeployKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckDeployKeyResponse_DeployKey.ProtoReflect.Descriptor instead. func (*CheckDeployKeyResponse_DeployKey) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{20, 0} + return file_projecthub_proto_rawDescGZIP(), []int{24, 0} } func (x *CheckDeployKeyResponse_DeployKey) GetTitle() string { @@ -4050,6 +4705,13 @@ func (x *CheckDeployKeyResponse_DeployKey) GetCreatedAt() *timestamp.Timestamp { return nil } +func (x *CheckDeployKeyResponse_DeployKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + type RegenerateDeployKeyResponse_DeployKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4058,12 +4720,13 @@ type RegenerateDeployKeyResponse_DeployKey struct { Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` Fingerprint string `protobuf:"bytes,2,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"` CreatedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + PublicKey string `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` } func (x *RegenerateDeployKeyResponse_DeployKey) Reset() { *x = RegenerateDeployKeyResponse_DeployKey{} if protoimpl.UnsafeEnabled { - mi := &file_projecthub_proto_msgTypes[56] + mi := &file_projecthub_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4076,7 +4739,7 @@ func (x *RegenerateDeployKeyResponse_DeployKey) String() string { func (*RegenerateDeployKeyResponse_DeployKey) ProtoMessage() {} func (x *RegenerateDeployKeyResponse_DeployKey) ProtoReflect() protoreflect.Message { - mi := &file_projecthub_proto_msgTypes[56] + mi := &file_projecthub_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4089,7 +4752,7 @@ func (x *RegenerateDeployKeyResponse_DeployKey) ProtoReflect() protoreflect.Mess // Deprecated: Use RegenerateDeployKeyResponse_DeployKey.ProtoReflect.Descriptor instead. func (*RegenerateDeployKeyResponse_DeployKey) Descriptor() ([]byte, []int) { - return file_projecthub_proto_rawDescGZIP(), []int{22, 0} + return file_projecthub_proto_rawDescGZIP(), []int{26, 0} } func (x *RegenerateDeployKeyResponse_DeployKey) GetTitle() string { @@ -4113,6 +4776,13 @@ func (x *RegenerateDeployKeyResponse_DeployKey) GetCreatedAt() *timestamp.Timest return nil } +func (x *RegenerateDeployKeyResponse_DeployKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + var File_projecthub_proto protoreflect.FileDescriptor var file_projecthub_proto_rawDesc = []byte{ @@ -4168,7 +4838,7 @@ var file_projecthub_proto_rawDesc = []byte{ 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0x9b, + 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x22, 0xc4, 0x22, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, @@ -4193,7 +4863,7 @@ var file_projecthub_proto_rawDesc = []byte{ 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x1a, 0xbe, 0x17, 0x0a, 0x04, 0x53, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x1a, 0xd7, 0x17, 0x0a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, @@ -4239,7 +4909,7 @@ var file_projecthub_proto_rawDesc = []byte{ 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x1a, 0xe8, 0x09, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x6b, 0x73, 0x1a, 0x81, 0x0a, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, @@ -4311,280 +4981,346 @@ var file_projecthub_proto_rawDesc = []byte{ 0x01, 0x1a, 0x3b, 0x0a, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x4e, + 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x67, 0x0a, 0x07, 0x52, 0x75, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x45, 0x53, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x41, 0x47, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x4f, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, - 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x03, 0x42, 0x0d, - 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x1a, 0x95, 0x02, - 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, - 0x65, 0x63, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, - 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x56, 0x45, 0x10, 0x02, 0x1a, 0xbf, 0x04, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, - 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, - 0x75, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, - 0x63, 0x75, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x53, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x49, 0x6e, + 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x03, 0x12, 0x17, + 0x0a, 0x13, 0x44, 0x52, 0x41, 0x46, 0x54, 0x5f, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, + 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x04, 0x42, 0x0d, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x5f, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x1a, 0x95, 0x02, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, + 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x61, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, + 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x1a, 0xbf, + 0x04, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x53, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9c, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, + 0x0d, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, + 0x22, 0x25, 0x0a, 0x0a, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0b, + 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, + 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x22, 0x7b, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, + 0x54, 0x59, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 0x4e, 0x5f, + 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, 0x02, + 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, + 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x4f, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x55, 0x4c, + 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x54, + 0x41, 0x47, 0x10, 0x05, 0x1a, 0xde, 0x07, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x05, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x05, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9c, - 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, - 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x22, 0x25, 0x0a, 0x0a, 0x56, 0x69, 0x73, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x22, 0x7b, - 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, - 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, 0x01, 0x12, - 0x16, 0x0a, 0x12, 0x4e, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x42, - 0x52, 0x41, 0x4e, 0x43, 0x48, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x4c, 0x4c, 0x5f, - 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x4f, 0x52, - 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, - 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x05, 0x1a, 0xce, 0x07, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x08, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x08, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4b, 0x0a, + 0x05, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x0a, - 0x05, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x49, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x53, 0x0a, 0x0d, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, + 0x50, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x42, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x05, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, - 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x51, - 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x12, 0x4b, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x52, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x54, - 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4b, 0x0a, 0x05, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x42, 0x0a, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x1a, 0x4e, 0x0a, 0x08, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x1a, 0x53, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x50, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4e, 0x0a, 0x08, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x51, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2f, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, - 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, - 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x22, 0xcf, 0x01, 0x0a, - 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, + 0x65, 0x1a, 0x51, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x3f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, + 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x22, 0xf2, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x72, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x5f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, + 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0xd9, 0x01, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0xff, 0x02, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4b, + 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x22, 0xd9, - 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, + 0x72, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x66, + 0x74, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, + 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x22, 0xeb, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x0f, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, - 0x8f, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, + 0x75, 0x73, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x6f, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x8f, + 0x01, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x68, 0x0a, 0x13, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x14, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x6f, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x95, + 0x01, 0x0a, 0x14, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6f, 0x6e, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, + 0x6b, 0x69, 0x70, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x8d, 0x01, + 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xc6, 0x01, + 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x6f, + 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x73, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x6f, 0x6d, 0x69, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x73, 0x41, 0x6e, + 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x75, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, + 0x0f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x61, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x53, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x0c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x0d, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, + 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a, 0x15, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xd3, 0x02, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x57, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, - 0x8d, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, - 0x75, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x0c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x0d, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x2c, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a, - 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb3, 0x02, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x57, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, - 0x65, 0x79, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x1a, 0x7e, 0x0a, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, + 0x79, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x1a, 0x9d, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, @@ -4592,26 +5328,28 @@ var file_projecthub_proto_rawDesc = []byte{ 0x6e, 0x74, 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, 0x22, 0x6d, 0x0a, - 0x1a, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x1a, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xdd, 0x02, 0x0a, 0x1b, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xbd, 0x02, 0x0a, - 0x1b, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5c, - 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, - 0x79, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x1a, 0x7e, 0x0a, 0x09, + 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, + 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x1a, 0x9d, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x02, @@ -4619,88 +5357,134 @@ var file_projecthub_proto_rawDesc = []byte{ 0x74, 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, 0x22, 0x66, 0x0a, 0x13, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x39, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x22, 0x6b, 0x0a, 0x18, 0x52, 0x65, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x66, 0x0a, 0x13, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, + 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x22, 0x6b, 0x0a, 0x18, 0x52, 0x65, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x22, 0x1b, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x85, + 0x01, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6b, 0x41, + 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x15, + 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x22, 0x1b, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, - 0x85, 0x01, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x69, 0x0a, 0x16, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5b, 0x0a, + 0x17, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6a, 0x0a, 0x17, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6b, - 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x94, 0x01, 0x0a, - 0x15, 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x71, 0x0a, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x69, 0x0a, 0x16, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5b, - 0x0a, 0x17, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x80, 0x01, 0x0a, 0x0e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, + 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7b, 0x0a, 0x1f, 0x52, 0x65, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, @@ -4708,126 +5492,147 @@ var file_projecthub_proto_rawDesc = []byte{ 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x80, - 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, - 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6f, 0x0a, 0x14, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc6, 0x0b, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, - 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x6f, 0x0a, 0x14, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x32, 0x8b, 0x0f, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, + 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, - 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, + 0x65, 0x79, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x2b, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, + 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x44, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, + 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x57, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x49, + 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, - 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, - 0x79, 0x12, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, - 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, - 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, + 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x54, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x30, 0x2e, 0x49, 0x6e, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x12, + 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7b, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, + 0x0a, 0x17, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x37, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x12, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x6b, 0x41, + 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, - 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2e, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x62, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x46, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, + 0x70, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x38, - 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, - 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, + 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x68, 0x75, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4842,8 +5647,8 @@ func file_projecthub_proto_rawDescGZIP() []byte { return file_projecthub_proto_rawDescData } -var file_projecthub_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_projecthub_proto_msgTypes = make([]protoimpl.MessageInfo, 57) +var file_projecthub_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_projecthub_proto_msgTypes = make([]protoimpl.MessageInfo, 66) var file_projecthub_proto_goTypes = []interface{}{ (ResponseMeta_Code)(0), // 0: InternalApi.Projecthub.ResponseMeta.Code (Project_Spec_Visibility)(0), // 1: InternalApi.Projecthub.Project.Spec.Visibility @@ -4853,184 +5658,214 @@ var file_projecthub_proto_goTypes = []interface{}{ (Project_Spec_Scheduler_Status)(0), // 5: InternalApi.Projecthub.Project.Spec.Scheduler.Status (Project_Spec_Task_Status)(0), // 6: InternalApi.Projecthub.Project.Spec.Task.Status (Project_Status_State)(0), // 7: InternalApi.Projecthub.Project.Status.State - (*RequestMeta)(nil), // 8: InternalApi.Projecthub.RequestMeta - (*ResponseMeta)(nil), // 9: InternalApi.Projecthub.ResponseMeta - (*PaginationRequest)(nil), // 10: InternalApi.Projecthub.PaginationRequest - (*PaginationResponse)(nil), // 11: InternalApi.Projecthub.PaginationResponse - (*Project)(nil), // 12: InternalApi.Projecthub.Project - (*ListRequest)(nil), // 13: InternalApi.Projecthub.ListRequest - (*ListResponse)(nil), // 14: InternalApi.Projecthub.ListResponse - (*DescribeRequest)(nil), // 15: InternalApi.Projecthub.DescribeRequest - (*DescribeResponse)(nil), // 16: InternalApi.Projecthub.DescribeResponse - (*DescribeManyRequest)(nil), // 17: InternalApi.Projecthub.DescribeManyRequest - (*DescribeManyResponse)(nil), // 18: InternalApi.Projecthub.DescribeManyResponse - (*CreateRequest)(nil), // 19: InternalApi.Projecthub.CreateRequest - (*CreateResponse)(nil), // 20: InternalApi.Projecthub.CreateResponse - (*UpdateRequest)(nil), // 21: InternalApi.Projecthub.UpdateRequest - (*UpdateResponse)(nil), // 22: InternalApi.Projecthub.UpdateResponse - (*DestroyRequest)(nil), // 23: InternalApi.Projecthub.DestroyRequest - (*DestroyResponse)(nil), // 24: InternalApi.Projecthub.DestroyResponse - (*UsersRequest)(nil), // 25: InternalApi.Projecthub.UsersRequest - (*UsersResponse)(nil), // 26: InternalApi.Projecthub.UsersResponse - (*CheckDeployKeyRequest)(nil), // 27: InternalApi.Projecthub.CheckDeployKeyRequest - (*CheckDeployKeyResponse)(nil), // 28: InternalApi.Projecthub.CheckDeployKeyResponse - (*RegenerateDeployKeyRequest)(nil), // 29: InternalApi.Projecthub.RegenerateDeployKeyRequest - (*RegenerateDeployKeyResponse)(nil), // 30: InternalApi.Projecthub.RegenerateDeployKeyResponse - (*CheckWebhookRequest)(nil), // 31: InternalApi.Projecthub.CheckWebhookRequest - (*CheckWebhookResponse)(nil), // 32: InternalApi.Projecthub.CheckWebhookResponse - (*RegenerateWebhookRequest)(nil), // 33: InternalApi.Projecthub.RegenerateWebhookRequest - (*RegenerateWebhookResponse)(nil), // 34: InternalApi.Projecthub.RegenerateWebhookResponse - (*Webhook)(nil), // 35: InternalApi.Projecthub.Webhook - (*ChangeProjectOwnerRequest)(nil), // 36: InternalApi.Projecthub.ChangeProjectOwnerRequest - (*ChangeProjectOwnerResponse)(nil), // 37: InternalApi.Projecthub.ChangeProjectOwnerResponse - (*ForkAndCreateRequest)(nil), // 38: InternalApi.Projecthub.ForkAndCreateRequest - (*ForkAndCreateResponse)(nil), // 39: InternalApi.Projecthub.ForkAndCreateResponse - (*GithubAppSwitchRequest)(nil), // 40: InternalApi.Projecthub.GithubAppSwitchRequest - (*GithubAppSwitchResponse)(nil), // 41: InternalApi.Projecthub.GithubAppSwitchResponse - (*ProjectCreated)(nil), // 42: InternalApi.Projecthub.ProjectCreated - (*ProjectDeleted)(nil), // 43: InternalApi.Projecthub.ProjectDeleted - (*ProjectUpdated)(nil), // 44: InternalApi.Projecthub.ProjectUpdated - (*CollaboratorsChanged)(nil), // 45: InternalApi.Projecthub.CollaboratorsChanged - (*ResponseMeta_Status)(nil), // 46: InternalApi.Projecthub.ResponseMeta.Status - (*Project_Metadata)(nil), // 47: InternalApi.Projecthub.Project.Metadata - (*Project_Spec)(nil), // 48: InternalApi.Projecthub.Project.Spec - (*Project_Status)(nil), // 49: InternalApi.Projecthub.Project.Status - (*Project_Spec_Repository)(nil), // 50: InternalApi.Projecthub.Project.Spec.Repository - (*Project_Spec_Scheduler)(nil), // 51: InternalApi.Projecthub.Project.Spec.Scheduler - (*Project_Spec_Task)(nil), // 52: InternalApi.Projecthub.Project.Spec.Task - (*Project_Spec_Repository_ForkedPullRequests)(nil), // 53: InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests - (*Project_Spec_Repository_Status)(nil), // 54: InternalApi.Projecthub.Project.Spec.Repository.Status - (*Project_Spec_Repository_Whitelist)(nil), // 55: InternalApi.Projecthub.Project.Spec.Repository.Whitelist - (*Project_Spec_Repository_Status_PipelineFile)(nil), // 56: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile - (*Project_Spec_Task_Parameter)(nil), // 57: InternalApi.Projecthub.Project.Spec.Task.Parameter - (*Project_Status_Cache)(nil), // 58: InternalApi.Projecthub.Project.Status.Cache - (*Project_Status_ArtifactStore)(nil), // 59: InternalApi.Projecthub.Project.Status.ArtifactStore - (*Project_Status_Repository)(nil), // 60: InternalApi.Projecthub.Project.Status.Repository - (*Project_Status_Analysis)(nil), // 61: InternalApi.Projecthub.Project.Status.Analysis - (*Project_Status_Permissions)(nil), // 62: InternalApi.Projecthub.Project.Status.Permissions - (*CheckDeployKeyResponse_DeployKey)(nil), // 63: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey - (*RegenerateDeployKeyResponse_DeployKey)(nil), // 64: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey - (*user.User)(nil), // 65: InternalApi.User.User - (*timestamp.Timestamp)(nil), // 66: google.protobuf.Timestamp - (repository_integrator.IntegrationType)(0), // 67: InternalApi.RepositoryIntegrator.IntegrationType + (ListKeysetRequest_Direction)(0), // 8: InternalApi.Projecthub.ListKeysetRequest.Direction + (*RequestMeta)(nil), // 9: InternalApi.Projecthub.RequestMeta + (*ResponseMeta)(nil), // 10: InternalApi.Projecthub.ResponseMeta + (*PaginationRequest)(nil), // 11: InternalApi.Projecthub.PaginationRequest + (*PaginationResponse)(nil), // 12: InternalApi.Projecthub.PaginationResponse + (*Project)(nil), // 13: InternalApi.Projecthub.Project + (*ListRequest)(nil), // 14: InternalApi.Projecthub.ListRequest + (*ListResponse)(nil), // 15: InternalApi.Projecthub.ListResponse + (*ListKeysetRequest)(nil), // 16: InternalApi.Projecthub.ListKeysetRequest + (*ListKeysetResponse)(nil), // 17: InternalApi.Projecthub.ListKeysetResponse + (*DescribeRequest)(nil), // 18: InternalApi.Projecthub.DescribeRequest + (*DescribeResponse)(nil), // 19: InternalApi.Projecthub.DescribeResponse + (*DescribeManyRequest)(nil), // 20: InternalApi.Projecthub.DescribeManyRequest + (*DescribeManyResponse)(nil), // 21: InternalApi.Projecthub.DescribeManyResponse + (*CreateRequest)(nil), // 22: InternalApi.Projecthub.CreateRequest + (*CreateResponse)(nil), // 23: InternalApi.Projecthub.CreateResponse + (*UpdateRequest)(nil), // 24: InternalApi.Projecthub.UpdateRequest + (*UpdateResponse)(nil), // 25: InternalApi.Projecthub.UpdateResponse + (*DestroyRequest)(nil), // 26: InternalApi.Projecthub.DestroyRequest + (*DestroyResponse)(nil), // 27: InternalApi.Projecthub.DestroyResponse + (*RestoreRequest)(nil), // 28: InternalApi.Projecthub.RestoreRequest + (*RestoreResponse)(nil), // 29: InternalApi.Projecthub.RestoreResponse + (*UsersRequest)(nil), // 30: InternalApi.Projecthub.UsersRequest + (*UsersResponse)(nil), // 31: InternalApi.Projecthub.UsersResponse + (*CheckDeployKeyRequest)(nil), // 32: InternalApi.Projecthub.CheckDeployKeyRequest + (*CheckDeployKeyResponse)(nil), // 33: InternalApi.Projecthub.CheckDeployKeyResponse + (*RegenerateDeployKeyRequest)(nil), // 34: InternalApi.Projecthub.RegenerateDeployKeyRequest + (*RegenerateDeployKeyResponse)(nil), // 35: InternalApi.Projecthub.RegenerateDeployKeyResponse + (*CheckWebhookRequest)(nil), // 36: InternalApi.Projecthub.CheckWebhookRequest + (*CheckWebhookResponse)(nil), // 37: InternalApi.Projecthub.CheckWebhookResponse + (*RegenerateWebhookRequest)(nil), // 38: InternalApi.Projecthub.RegenerateWebhookRequest + (*RegenerateWebhookResponse)(nil), // 39: InternalApi.Projecthub.RegenerateWebhookResponse + (*Webhook)(nil), // 40: InternalApi.Projecthub.Webhook + (*ChangeProjectOwnerRequest)(nil), // 41: InternalApi.Projecthub.ChangeProjectOwnerRequest + (*ChangeProjectOwnerResponse)(nil), // 42: InternalApi.Projecthub.ChangeProjectOwnerResponse + (*ForkAndCreateRequest)(nil), // 43: InternalApi.Projecthub.ForkAndCreateRequest + (*ForkAndCreateResponse)(nil), // 44: InternalApi.Projecthub.ForkAndCreateResponse + (*GithubAppSwitchRequest)(nil), // 45: InternalApi.Projecthub.GithubAppSwitchRequest + (*GithubAppSwitchResponse)(nil), // 46: InternalApi.Projecthub.GithubAppSwitchResponse + (*FinishOnboardingRequest)(nil), // 47: InternalApi.Projecthub.FinishOnboardingRequest + (*FinishOnboardingResponse)(nil), // 48: InternalApi.Projecthub.FinishOnboardingResponse + (*RegenerateWebhookSecretRequest)(nil), // 49: InternalApi.Projecthub.RegenerateWebhookSecretRequest + (*RegenerateWebhookSecretResponse)(nil), // 50: InternalApi.Projecthub.RegenerateWebhookSecretResponse + (*ProjectCreated)(nil), // 51: InternalApi.Projecthub.ProjectCreated + (*ProjectDeleted)(nil), // 52: InternalApi.Projecthub.ProjectDeleted + (*ProjectRestored)(nil), // 53: InternalApi.Projecthub.ProjectRestored + (*ProjectUpdated)(nil), // 54: InternalApi.Projecthub.ProjectUpdated + (*CollaboratorsChanged)(nil), // 55: InternalApi.Projecthub.CollaboratorsChanged + (*ResponseMeta_Status)(nil), // 56: InternalApi.Projecthub.ResponseMeta.Status + (*Project_Metadata)(nil), // 57: InternalApi.Projecthub.Project.Metadata + (*Project_Spec)(nil), // 58: InternalApi.Projecthub.Project.Spec + (*Project_Status)(nil), // 59: InternalApi.Projecthub.Project.Status + (*Project_Spec_Repository)(nil), // 60: InternalApi.Projecthub.Project.Spec.Repository + (*Project_Spec_Scheduler)(nil), // 61: InternalApi.Projecthub.Project.Spec.Scheduler + (*Project_Spec_Task)(nil), // 62: InternalApi.Projecthub.Project.Spec.Task + (*Project_Spec_Repository_ForkedPullRequests)(nil), // 63: InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests + (*Project_Spec_Repository_Status)(nil), // 64: InternalApi.Projecthub.Project.Spec.Repository.Status + (*Project_Spec_Repository_Whitelist)(nil), // 65: InternalApi.Projecthub.Project.Spec.Repository.Whitelist + (*Project_Spec_Repository_Status_PipelineFile)(nil), // 66: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile + (*Project_Spec_Task_Parameter)(nil), // 67: InternalApi.Projecthub.Project.Spec.Task.Parameter + (*Project_Status_Cache)(nil), // 68: InternalApi.Projecthub.Project.Status.Cache + (*Project_Status_ArtifactStore)(nil), // 69: InternalApi.Projecthub.Project.Status.ArtifactStore + (*Project_Status_Repository)(nil), // 70: InternalApi.Projecthub.Project.Status.Repository + (*Project_Status_Analysis)(nil), // 71: InternalApi.Projecthub.Project.Status.Analysis + (*Project_Status_Permissions)(nil), // 72: InternalApi.Projecthub.Project.Status.Permissions + (*CheckDeployKeyResponse_DeployKey)(nil), // 73: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey + (*RegenerateDeployKeyResponse_DeployKey)(nil), // 74: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey + (*timestamp.Timestamp)(nil), // 75: google.protobuf.Timestamp + (*user.User)(nil), // 76: InternalApi.User.User + (repository_integrator.IntegrationType)(0), // 77: InternalApi.RepositoryIntegrator.IntegrationType } var file_projecthub_proto_depIdxs = []int32{ - 46, // 0: InternalApi.Projecthub.ResponseMeta.status:type_name -> InternalApi.Projecthub.ResponseMeta.Status - 47, // 1: InternalApi.Projecthub.Project.metadata:type_name -> InternalApi.Projecthub.Project.Metadata - 48, // 2: InternalApi.Projecthub.Project.spec:type_name -> InternalApi.Projecthub.Project.Spec - 49, // 3: InternalApi.Projecthub.Project.status:type_name -> InternalApi.Projecthub.Project.Status - 8, // 4: InternalApi.Projecthub.ListRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 10, // 5: InternalApi.Projecthub.ListRequest.pagination:type_name -> InternalApi.Projecthub.PaginationRequest - 9, // 6: InternalApi.Projecthub.ListResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 11, // 7: InternalApi.Projecthub.ListResponse.pagination:type_name -> InternalApi.Projecthub.PaginationResponse - 12, // 8: InternalApi.Projecthub.ListResponse.projects:type_name -> InternalApi.Projecthub.Project - 8, // 9: InternalApi.Projecthub.DescribeRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 10: InternalApi.Projecthub.DescribeResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 12, // 11: InternalApi.Projecthub.DescribeResponse.project:type_name -> InternalApi.Projecthub.Project - 8, // 12: InternalApi.Projecthub.DescribeManyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 13: InternalApi.Projecthub.DescribeManyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 12, // 14: InternalApi.Projecthub.DescribeManyResponse.projects:type_name -> InternalApi.Projecthub.Project - 8, // 15: InternalApi.Projecthub.CreateRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 12, // 16: InternalApi.Projecthub.CreateRequest.project:type_name -> InternalApi.Projecthub.Project - 9, // 17: InternalApi.Projecthub.CreateResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 12, // 18: InternalApi.Projecthub.CreateResponse.project:type_name -> InternalApi.Projecthub.Project - 8, // 19: InternalApi.Projecthub.UpdateRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 12, // 20: InternalApi.Projecthub.UpdateRequest.project:type_name -> InternalApi.Projecthub.Project - 9, // 21: InternalApi.Projecthub.UpdateResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 12, // 22: InternalApi.Projecthub.UpdateResponse.project:type_name -> InternalApi.Projecthub.Project - 8, // 23: InternalApi.Projecthub.DestroyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 24: InternalApi.Projecthub.DestroyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 8, // 25: InternalApi.Projecthub.UsersRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 26: InternalApi.Projecthub.UsersResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 65, // 27: InternalApi.Projecthub.UsersResponse.users:type_name -> InternalApi.User.User - 8, // 28: InternalApi.Projecthub.CheckDeployKeyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 29: InternalApi.Projecthub.CheckDeployKeyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 63, // 30: InternalApi.Projecthub.CheckDeployKeyResponse.deploy_key:type_name -> InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey - 8, // 31: InternalApi.Projecthub.RegenerateDeployKeyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 32: InternalApi.Projecthub.RegenerateDeployKeyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 64, // 33: InternalApi.Projecthub.RegenerateDeployKeyResponse.deploy_key:type_name -> InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey - 8, // 34: InternalApi.Projecthub.CheckWebhookRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 35: InternalApi.Projecthub.CheckWebhookResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 35, // 36: InternalApi.Projecthub.CheckWebhookResponse.webhook:type_name -> InternalApi.Projecthub.Webhook - 8, // 37: InternalApi.Projecthub.RegenerateWebhookRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 38: InternalApi.Projecthub.RegenerateWebhookResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 35, // 39: InternalApi.Projecthub.RegenerateWebhookResponse.webhook:type_name -> InternalApi.Projecthub.Webhook - 8, // 40: InternalApi.Projecthub.ChangeProjectOwnerRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 41: InternalApi.Projecthub.ChangeProjectOwnerResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 8, // 42: InternalApi.Projecthub.ForkAndCreateRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 12, // 43: InternalApi.Projecthub.ForkAndCreateRequest.project:type_name -> InternalApi.Projecthub.Project - 9, // 44: InternalApi.Projecthub.ForkAndCreateResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 12, // 45: InternalApi.Projecthub.ForkAndCreateResponse.project:type_name -> InternalApi.Projecthub.Project - 8, // 46: InternalApi.Projecthub.GithubAppSwitchRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta - 9, // 47: InternalApi.Projecthub.GithubAppSwitchResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta - 66, // 48: InternalApi.Projecthub.ProjectCreated.timestamp:type_name -> google.protobuf.Timestamp - 66, // 49: InternalApi.Projecthub.ProjectDeleted.timestamp:type_name -> google.protobuf.Timestamp - 66, // 50: InternalApi.Projecthub.ProjectUpdated.timestamp:type_name -> google.protobuf.Timestamp - 66, // 51: InternalApi.Projecthub.CollaboratorsChanged.timestamp:type_name -> google.protobuf.Timestamp - 0, // 52: InternalApi.Projecthub.ResponseMeta.Status.code:type_name -> InternalApi.Projecthub.ResponseMeta.Code - 66, // 53: InternalApi.Projecthub.Project.Metadata.created_at:type_name -> google.protobuf.Timestamp - 50, // 54: InternalApi.Projecthub.Project.Spec.repository:type_name -> InternalApi.Projecthub.Project.Spec.Repository - 51, // 55: InternalApi.Projecthub.Project.Spec.schedulers:type_name -> InternalApi.Projecthub.Project.Spec.Scheduler - 1, // 56: InternalApi.Projecthub.Project.Spec.visibility:type_name -> InternalApi.Projecthub.Project.Spec.Visibility - 2, // 57: InternalApi.Projecthub.Project.Spec.debug_permissions:type_name -> InternalApi.Projecthub.Project.Spec.PermissionType - 2, // 58: InternalApi.Projecthub.Project.Spec.attach_permissions:type_name -> InternalApi.Projecthub.Project.Spec.PermissionType - 52, // 59: InternalApi.Projecthub.Project.Spec.tasks:type_name -> InternalApi.Projecthub.Project.Spec.Task - 7, // 60: InternalApi.Projecthub.Project.Status.state:type_name -> InternalApi.Projecthub.Project.Status.State - 58, // 61: InternalApi.Projecthub.Project.Status.cache:type_name -> InternalApi.Projecthub.Project.Status.Cache - 59, // 62: InternalApi.Projecthub.Project.Status.artifact_store:type_name -> InternalApi.Projecthub.Project.Status.ArtifactStore - 60, // 63: InternalApi.Projecthub.Project.Status.repository:type_name -> InternalApi.Projecthub.Project.Status.Repository - 61, // 64: InternalApi.Projecthub.Project.Status.analysis:type_name -> InternalApi.Projecthub.Project.Status.Analysis - 62, // 65: InternalApi.Projecthub.Project.Status.permissions:type_name -> InternalApi.Projecthub.Project.Status.Permissions - 3, // 66: InternalApi.Projecthub.Project.Spec.Repository.run_on:type_name -> InternalApi.Projecthub.Project.Spec.Repository.RunType - 53, // 67: InternalApi.Projecthub.Project.Spec.Repository.forked_pull_requests:type_name -> InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests - 54, // 68: InternalApi.Projecthub.Project.Spec.Repository.status:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Status - 55, // 69: InternalApi.Projecthub.Project.Spec.Repository.whitelist:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Whitelist - 67, // 70: InternalApi.Projecthub.Project.Spec.Repository.integration_type:type_name -> InternalApi.RepositoryIntegrator.IntegrationType - 5, // 71: InternalApi.Projecthub.Project.Spec.Scheduler.status:type_name -> InternalApi.Projecthub.Project.Spec.Scheduler.Status - 6, // 72: InternalApi.Projecthub.Project.Spec.Task.status:type_name -> InternalApi.Projecthub.Project.Spec.Task.Status - 57, // 73: InternalApi.Projecthub.Project.Spec.Task.parameters:type_name -> InternalApi.Projecthub.Project.Spec.Task.Parameter - 56, // 74: InternalApi.Projecthub.Project.Spec.Repository.Status.pipeline_files:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile - 4, // 75: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.level:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level - 7, // 76: InternalApi.Projecthub.Project.Status.Cache.state:type_name -> InternalApi.Projecthub.Project.Status.State - 7, // 77: InternalApi.Projecthub.Project.Status.ArtifactStore.state:type_name -> InternalApi.Projecthub.Project.Status.State - 7, // 78: InternalApi.Projecthub.Project.Status.Repository.state:type_name -> InternalApi.Projecthub.Project.Status.State - 7, // 79: InternalApi.Projecthub.Project.Status.Analysis.state:type_name -> InternalApi.Projecthub.Project.Status.State - 7, // 80: InternalApi.Projecthub.Project.Status.Permissions.state:type_name -> InternalApi.Projecthub.Project.Status.State - 66, // 81: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey.created_at:type_name -> google.protobuf.Timestamp - 66, // 82: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey.created_at:type_name -> google.protobuf.Timestamp - 13, // 83: InternalApi.Projecthub.ProjectService.List:input_type -> InternalApi.Projecthub.ListRequest - 15, // 84: InternalApi.Projecthub.ProjectService.Describe:input_type -> InternalApi.Projecthub.DescribeRequest - 17, // 85: InternalApi.Projecthub.ProjectService.DescribeMany:input_type -> InternalApi.Projecthub.DescribeManyRequest - 19, // 86: InternalApi.Projecthub.ProjectService.Create:input_type -> InternalApi.Projecthub.CreateRequest - 21, // 87: InternalApi.Projecthub.ProjectService.Update:input_type -> InternalApi.Projecthub.UpdateRequest - 23, // 88: InternalApi.Projecthub.ProjectService.Destroy:input_type -> InternalApi.Projecthub.DestroyRequest - 25, // 89: InternalApi.Projecthub.ProjectService.Users:input_type -> InternalApi.Projecthub.UsersRequest - 27, // 90: InternalApi.Projecthub.ProjectService.CheckDeployKey:input_type -> InternalApi.Projecthub.CheckDeployKeyRequest - 29, // 91: InternalApi.Projecthub.ProjectService.RegenerateDeployKey:input_type -> InternalApi.Projecthub.RegenerateDeployKeyRequest - 31, // 92: InternalApi.Projecthub.ProjectService.CheckWebhook:input_type -> InternalApi.Projecthub.CheckWebhookRequest - 33, // 93: InternalApi.Projecthub.ProjectService.RegenerateWebhook:input_type -> InternalApi.Projecthub.RegenerateWebhookRequest - 36, // 94: InternalApi.Projecthub.ProjectService.ChangeProjectOwner:input_type -> InternalApi.Projecthub.ChangeProjectOwnerRequest - 38, // 95: InternalApi.Projecthub.ProjectService.ForkAndCreate:input_type -> InternalApi.Projecthub.ForkAndCreateRequest - 40, // 96: InternalApi.Projecthub.ProjectService.GithubAppSwitch:input_type -> InternalApi.Projecthub.GithubAppSwitchRequest - 14, // 97: InternalApi.Projecthub.ProjectService.List:output_type -> InternalApi.Projecthub.ListResponse - 16, // 98: InternalApi.Projecthub.ProjectService.Describe:output_type -> InternalApi.Projecthub.DescribeResponse - 18, // 99: InternalApi.Projecthub.ProjectService.DescribeMany:output_type -> InternalApi.Projecthub.DescribeManyResponse - 20, // 100: InternalApi.Projecthub.ProjectService.Create:output_type -> InternalApi.Projecthub.CreateResponse - 22, // 101: InternalApi.Projecthub.ProjectService.Update:output_type -> InternalApi.Projecthub.UpdateResponse - 24, // 102: InternalApi.Projecthub.ProjectService.Destroy:output_type -> InternalApi.Projecthub.DestroyResponse - 26, // 103: InternalApi.Projecthub.ProjectService.Users:output_type -> InternalApi.Projecthub.UsersResponse - 28, // 104: InternalApi.Projecthub.ProjectService.CheckDeployKey:output_type -> InternalApi.Projecthub.CheckDeployKeyResponse - 30, // 105: InternalApi.Projecthub.ProjectService.RegenerateDeployKey:output_type -> InternalApi.Projecthub.RegenerateDeployKeyResponse - 32, // 106: InternalApi.Projecthub.ProjectService.CheckWebhook:output_type -> InternalApi.Projecthub.CheckWebhookResponse - 34, // 107: InternalApi.Projecthub.ProjectService.RegenerateWebhook:output_type -> InternalApi.Projecthub.RegenerateWebhookResponse - 37, // 108: InternalApi.Projecthub.ProjectService.ChangeProjectOwner:output_type -> InternalApi.Projecthub.ChangeProjectOwnerResponse - 39, // 109: InternalApi.Projecthub.ProjectService.ForkAndCreate:output_type -> InternalApi.Projecthub.ForkAndCreateResponse - 41, // 110: InternalApi.Projecthub.ProjectService.GithubAppSwitch:output_type -> InternalApi.Projecthub.GithubAppSwitchResponse - 97, // [97:111] is the sub-list for method output_type - 83, // [83:97] is the sub-list for method input_type - 83, // [83:83] is the sub-list for extension type_name - 83, // [83:83] is the sub-list for extension extendee - 0, // [0:83] is the sub-list for field type_name + 56, // 0: InternalApi.Projecthub.ResponseMeta.status:type_name -> InternalApi.Projecthub.ResponseMeta.Status + 57, // 1: InternalApi.Projecthub.Project.metadata:type_name -> InternalApi.Projecthub.Project.Metadata + 58, // 2: InternalApi.Projecthub.Project.spec:type_name -> InternalApi.Projecthub.Project.Spec + 59, // 3: InternalApi.Projecthub.Project.status:type_name -> InternalApi.Projecthub.Project.Status + 9, // 4: InternalApi.Projecthub.ListRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 11, // 5: InternalApi.Projecthub.ListRequest.pagination:type_name -> InternalApi.Projecthub.PaginationRequest + 10, // 6: InternalApi.Projecthub.ListResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 12, // 7: InternalApi.Projecthub.ListResponse.pagination:type_name -> InternalApi.Projecthub.PaginationResponse + 13, // 8: InternalApi.Projecthub.ListResponse.projects:type_name -> InternalApi.Projecthub.Project + 9, // 9: InternalApi.Projecthub.ListKeysetRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 8, // 10: InternalApi.Projecthub.ListKeysetRequest.direction:type_name -> InternalApi.Projecthub.ListKeysetRequest.Direction + 75, // 11: InternalApi.Projecthub.ListKeysetRequest.created_after:type_name -> google.protobuf.Timestamp + 10, // 12: InternalApi.Projecthub.ListKeysetResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 13, // 13: InternalApi.Projecthub.ListKeysetResponse.projects:type_name -> InternalApi.Projecthub.Project + 9, // 14: InternalApi.Projecthub.DescribeRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 15: InternalApi.Projecthub.DescribeResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 13, // 16: InternalApi.Projecthub.DescribeResponse.project:type_name -> InternalApi.Projecthub.Project + 9, // 17: InternalApi.Projecthub.DescribeManyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 18: InternalApi.Projecthub.DescribeManyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 13, // 19: InternalApi.Projecthub.DescribeManyResponse.projects:type_name -> InternalApi.Projecthub.Project + 9, // 20: InternalApi.Projecthub.CreateRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 13, // 21: InternalApi.Projecthub.CreateRequest.project:type_name -> InternalApi.Projecthub.Project + 10, // 22: InternalApi.Projecthub.CreateResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 13, // 23: InternalApi.Projecthub.CreateResponse.project:type_name -> InternalApi.Projecthub.Project + 9, // 24: InternalApi.Projecthub.UpdateRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 13, // 25: InternalApi.Projecthub.UpdateRequest.project:type_name -> InternalApi.Projecthub.Project + 10, // 26: InternalApi.Projecthub.UpdateResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 13, // 27: InternalApi.Projecthub.UpdateResponse.project:type_name -> InternalApi.Projecthub.Project + 9, // 28: InternalApi.Projecthub.DestroyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 29: InternalApi.Projecthub.DestroyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 9, // 30: InternalApi.Projecthub.RestoreRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 31: InternalApi.Projecthub.RestoreResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 9, // 32: InternalApi.Projecthub.UsersRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 33: InternalApi.Projecthub.UsersResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 76, // 34: InternalApi.Projecthub.UsersResponse.users:type_name -> InternalApi.User.User + 9, // 35: InternalApi.Projecthub.CheckDeployKeyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 36: InternalApi.Projecthub.CheckDeployKeyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 73, // 37: InternalApi.Projecthub.CheckDeployKeyResponse.deploy_key:type_name -> InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey + 9, // 38: InternalApi.Projecthub.RegenerateDeployKeyRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 39: InternalApi.Projecthub.RegenerateDeployKeyResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 74, // 40: InternalApi.Projecthub.RegenerateDeployKeyResponse.deploy_key:type_name -> InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey + 9, // 41: InternalApi.Projecthub.CheckWebhookRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 42: InternalApi.Projecthub.CheckWebhookResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 40, // 43: InternalApi.Projecthub.CheckWebhookResponse.webhook:type_name -> InternalApi.Projecthub.Webhook + 9, // 44: InternalApi.Projecthub.RegenerateWebhookRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 45: InternalApi.Projecthub.RegenerateWebhookResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 40, // 46: InternalApi.Projecthub.RegenerateWebhookResponse.webhook:type_name -> InternalApi.Projecthub.Webhook + 9, // 47: InternalApi.Projecthub.ChangeProjectOwnerRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 48: InternalApi.Projecthub.ChangeProjectOwnerResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 9, // 49: InternalApi.Projecthub.ForkAndCreateRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 13, // 50: InternalApi.Projecthub.ForkAndCreateRequest.project:type_name -> InternalApi.Projecthub.Project + 10, // 51: InternalApi.Projecthub.ForkAndCreateResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 13, // 52: InternalApi.Projecthub.ForkAndCreateResponse.project:type_name -> InternalApi.Projecthub.Project + 9, // 53: InternalApi.Projecthub.GithubAppSwitchRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 54: InternalApi.Projecthub.GithubAppSwitchResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 9, // 55: InternalApi.Projecthub.FinishOnboardingRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 56: InternalApi.Projecthub.FinishOnboardingResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 9, // 57: InternalApi.Projecthub.RegenerateWebhookSecretRequest.metadata:type_name -> InternalApi.Projecthub.RequestMeta + 10, // 58: InternalApi.Projecthub.RegenerateWebhookSecretResponse.metadata:type_name -> InternalApi.Projecthub.ResponseMeta + 75, // 59: InternalApi.Projecthub.ProjectCreated.timestamp:type_name -> google.protobuf.Timestamp + 75, // 60: InternalApi.Projecthub.ProjectDeleted.timestamp:type_name -> google.protobuf.Timestamp + 75, // 61: InternalApi.Projecthub.ProjectRestored.timestamp:type_name -> google.protobuf.Timestamp + 75, // 62: InternalApi.Projecthub.ProjectUpdated.timestamp:type_name -> google.protobuf.Timestamp + 75, // 63: InternalApi.Projecthub.CollaboratorsChanged.timestamp:type_name -> google.protobuf.Timestamp + 0, // 64: InternalApi.Projecthub.ResponseMeta.Status.code:type_name -> InternalApi.Projecthub.ResponseMeta.Code + 75, // 65: InternalApi.Projecthub.Project.Metadata.created_at:type_name -> google.protobuf.Timestamp + 60, // 66: InternalApi.Projecthub.Project.Spec.repository:type_name -> InternalApi.Projecthub.Project.Spec.Repository + 61, // 67: InternalApi.Projecthub.Project.Spec.schedulers:type_name -> InternalApi.Projecthub.Project.Spec.Scheduler + 1, // 68: InternalApi.Projecthub.Project.Spec.visibility:type_name -> InternalApi.Projecthub.Project.Spec.Visibility + 2, // 69: InternalApi.Projecthub.Project.Spec.debug_permissions:type_name -> InternalApi.Projecthub.Project.Spec.PermissionType + 2, // 70: InternalApi.Projecthub.Project.Spec.attach_permissions:type_name -> InternalApi.Projecthub.Project.Spec.PermissionType + 62, // 71: InternalApi.Projecthub.Project.Spec.tasks:type_name -> InternalApi.Projecthub.Project.Spec.Task + 7, // 72: InternalApi.Projecthub.Project.Status.state:type_name -> InternalApi.Projecthub.Project.Status.State + 68, // 73: InternalApi.Projecthub.Project.Status.cache:type_name -> InternalApi.Projecthub.Project.Status.Cache + 69, // 74: InternalApi.Projecthub.Project.Status.artifact_store:type_name -> InternalApi.Projecthub.Project.Status.ArtifactStore + 70, // 75: InternalApi.Projecthub.Project.Status.repository:type_name -> InternalApi.Projecthub.Project.Status.Repository + 71, // 76: InternalApi.Projecthub.Project.Status.analysis:type_name -> InternalApi.Projecthub.Project.Status.Analysis + 72, // 77: InternalApi.Projecthub.Project.Status.permissions:type_name -> InternalApi.Projecthub.Project.Status.Permissions + 3, // 78: InternalApi.Projecthub.Project.Spec.Repository.run_on:type_name -> InternalApi.Projecthub.Project.Spec.Repository.RunType + 63, // 79: InternalApi.Projecthub.Project.Spec.Repository.forked_pull_requests:type_name -> InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests + 64, // 80: InternalApi.Projecthub.Project.Spec.Repository.status:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Status + 65, // 81: InternalApi.Projecthub.Project.Spec.Repository.whitelist:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Whitelist + 77, // 82: InternalApi.Projecthub.Project.Spec.Repository.integration_type:type_name -> InternalApi.RepositoryIntegrator.IntegrationType + 5, // 83: InternalApi.Projecthub.Project.Spec.Scheduler.status:type_name -> InternalApi.Projecthub.Project.Spec.Scheduler.Status + 6, // 84: InternalApi.Projecthub.Project.Spec.Task.status:type_name -> InternalApi.Projecthub.Project.Spec.Task.Status + 67, // 85: InternalApi.Projecthub.Project.Spec.Task.parameters:type_name -> InternalApi.Projecthub.Project.Spec.Task.Parameter + 66, // 86: InternalApi.Projecthub.Project.Spec.Repository.Status.pipeline_files:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile + 4, // 87: InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.level:type_name -> InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level + 7, // 88: InternalApi.Projecthub.Project.Status.Cache.state:type_name -> InternalApi.Projecthub.Project.Status.State + 7, // 89: InternalApi.Projecthub.Project.Status.ArtifactStore.state:type_name -> InternalApi.Projecthub.Project.Status.State + 7, // 90: InternalApi.Projecthub.Project.Status.Repository.state:type_name -> InternalApi.Projecthub.Project.Status.State + 7, // 91: InternalApi.Projecthub.Project.Status.Analysis.state:type_name -> InternalApi.Projecthub.Project.Status.State + 7, // 92: InternalApi.Projecthub.Project.Status.Permissions.state:type_name -> InternalApi.Projecthub.Project.Status.State + 75, // 93: InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey.created_at:type_name -> google.protobuf.Timestamp + 75, // 94: InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey.created_at:type_name -> google.protobuf.Timestamp + 14, // 95: InternalApi.Projecthub.ProjectService.List:input_type -> InternalApi.Projecthub.ListRequest + 16, // 96: InternalApi.Projecthub.ProjectService.ListKeyset:input_type -> InternalApi.Projecthub.ListKeysetRequest + 18, // 97: InternalApi.Projecthub.ProjectService.Describe:input_type -> InternalApi.Projecthub.DescribeRequest + 20, // 98: InternalApi.Projecthub.ProjectService.DescribeMany:input_type -> InternalApi.Projecthub.DescribeManyRequest + 22, // 99: InternalApi.Projecthub.ProjectService.Create:input_type -> InternalApi.Projecthub.CreateRequest + 24, // 100: InternalApi.Projecthub.ProjectService.Update:input_type -> InternalApi.Projecthub.UpdateRequest + 26, // 101: InternalApi.Projecthub.ProjectService.Destroy:input_type -> InternalApi.Projecthub.DestroyRequest + 28, // 102: InternalApi.Projecthub.ProjectService.Restore:input_type -> InternalApi.Projecthub.RestoreRequest + 30, // 103: InternalApi.Projecthub.ProjectService.Users:input_type -> InternalApi.Projecthub.UsersRequest + 32, // 104: InternalApi.Projecthub.ProjectService.CheckDeployKey:input_type -> InternalApi.Projecthub.CheckDeployKeyRequest + 34, // 105: InternalApi.Projecthub.ProjectService.RegenerateDeployKey:input_type -> InternalApi.Projecthub.RegenerateDeployKeyRequest + 36, // 106: InternalApi.Projecthub.ProjectService.CheckWebhook:input_type -> InternalApi.Projecthub.CheckWebhookRequest + 38, // 107: InternalApi.Projecthub.ProjectService.RegenerateWebhook:input_type -> InternalApi.Projecthub.RegenerateWebhookRequest + 49, // 108: InternalApi.Projecthub.ProjectService.RegenerateWebhookSecret:input_type -> InternalApi.Projecthub.RegenerateWebhookSecretRequest + 41, // 109: InternalApi.Projecthub.ProjectService.ChangeProjectOwner:input_type -> InternalApi.Projecthub.ChangeProjectOwnerRequest + 43, // 110: InternalApi.Projecthub.ProjectService.ForkAndCreate:input_type -> InternalApi.Projecthub.ForkAndCreateRequest + 45, // 111: InternalApi.Projecthub.ProjectService.GithubAppSwitch:input_type -> InternalApi.Projecthub.GithubAppSwitchRequest + 47, // 112: InternalApi.Projecthub.ProjectService.FinishOnboarding:input_type -> InternalApi.Projecthub.FinishOnboardingRequest + 15, // 113: InternalApi.Projecthub.ProjectService.List:output_type -> InternalApi.Projecthub.ListResponse + 17, // 114: InternalApi.Projecthub.ProjectService.ListKeyset:output_type -> InternalApi.Projecthub.ListKeysetResponse + 19, // 115: InternalApi.Projecthub.ProjectService.Describe:output_type -> InternalApi.Projecthub.DescribeResponse + 21, // 116: InternalApi.Projecthub.ProjectService.DescribeMany:output_type -> InternalApi.Projecthub.DescribeManyResponse + 23, // 117: InternalApi.Projecthub.ProjectService.Create:output_type -> InternalApi.Projecthub.CreateResponse + 25, // 118: InternalApi.Projecthub.ProjectService.Update:output_type -> InternalApi.Projecthub.UpdateResponse + 27, // 119: InternalApi.Projecthub.ProjectService.Destroy:output_type -> InternalApi.Projecthub.DestroyResponse + 29, // 120: InternalApi.Projecthub.ProjectService.Restore:output_type -> InternalApi.Projecthub.RestoreResponse + 31, // 121: InternalApi.Projecthub.ProjectService.Users:output_type -> InternalApi.Projecthub.UsersResponse + 33, // 122: InternalApi.Projecthub.ProjectService.CheckDeployKey:output_type -> InternalApi.Projecthub.CheckDeployKeyResponse + 35, // 123: InternalApi.Projecthub.ProjectService.RegenerateDeployKey:output_type -> InternalApi.Projecthub.RegenerateDeployKeyResponse + 37, // 124: InternalApi.Projecthub.ProjectService.CheckWebhook:output_type -> InternalApi.Projecthub.CheckWebhookResponse + 39, // 125: InternalApi.Projecthub.ProjectService.RegenerateWebhook:output_type -> InternalApi.Projecthub.RegenerateWebhookResponse + 50, // 126: InternalApi.Projecthub.ProjectService.RegenerateWebhookSecret:output_type -> InternalApi.Projecthub.RegenerateWebhookSecretResponse + 42, // 127: InternalApi.Projecthub.ProjectService.ChangeProjectOwner:output_type -> InternalApi.Projecthub.ChangeProjectOwnerResponse + 44, // 128: InternalApi.Projecthub.ProjectService.ForkAndCreate:output_type -> InternalApi.Projecthub.ForkAndCreateResponse + 46, // 129: InternalApi.Projecthub.ProjectService.GithubAppSwitch:output_type -> InternalApi.Projecthub.GithubAppSwitchResponse + 48, // 130: InternalApi.Projecthub.ProjectService.FinishOnboarding:output_type -> InternalApi.Projecthub.FinishOnboardingResponse + 113, // [113:131] is the sub-list for method output_type + 95, // [95:113] is the sub-list for method input_type + 95, // [95:95] is the sub-list for extension type_name + 95, // [95:95] is the sub-list for extension extendee + 0, // [0:95] is the sub-list for field type_name } func init() { file_projecthub_proto_init() } @@ -5124,7 +5959,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeRequest); i { + switch v := v.(*ListKeysetRequest); i { case 0: return &v.state case 1: @@ -5136,7 +5971,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeResponse); i { + switch v := v.(*ListKeysetResponse); i { case 0: return &v.state case 1: @@ -5148,7 +5983,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeManyRequest); i { + switch v := v.(*DescribeRequest); i { case 0: return &v.state case 1: @@ -5160,7 +5995,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeManyResponse); i { + switch v := v.(*DescribeResponse); i { case 0: return &v.state case 1: @@ -5172,7 +6007,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRequest); i { + switch v := v.(*DescribeManyRequest); i { case 0: return &v.state case 1: @@ -5184,7 +6019,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateResponse); i { + switch v := v.(*DescribeManyResponse); i { case 0: return &v.state case 1: @@ -5196,7 +6031,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateRequest); i { + switch v := v.(*CreateRequest); i { case 0: return &v.state case 1: @@ -5208,7 +6043,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateResponse); i { + switch v := v.(*CreateResponse); i { case 0: return &v.state case 1: @@ -5220,7 +6055,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DestroyRequest); i { + switch v := v.(*UpdateRequest); i { case 0: return &v.state case 1: @@ -5232,7 +6067,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DestroyResponse); i { + switch v := v.(*UpdateResponse); i { case 0: return &v.state case 1: @@ -5244,7 +6079,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsersRequest); i { + switch v := v.(*DestroyRequest); i { case 0: return &v.state case 1: @@ -5256,7 +6091,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsersResponse); i { + switch v := v.(*DestroyResponse); i { case 0: return &v.state case 1: @@ -5268,7 +6103,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckDeployKeyRequest); i { + switch v := v.(*RestoreRequest); i { case 0: return &v.state case 1: @@ -5280,7 +6115,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckDeployKeyResponse); i { + switch v := v.(*RestoreResponse); i { case 0: return &v.state case 1: @@ -5292,7 +6127,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegenerateDeployKeyRequest); i { + switch v := v.(*UsersRequest); i { case 0: return &v.state case 1: @@ -5304,7 +6139,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegenerateDeployKeyResponse); i { + switch v := v.(*UsersResponse); i { case 0: return &v.state case 1: @@ -5316,7 +6151,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckWebhookRequest); i { + switch v := v.(*CheckDeployKeyRequest); i { case 0: return &v.state case 1: @@ -5328,7 +6163,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckWebhookResponse); i { + switch v := v.(*CheckDeployKeyResponse); i { case 0: return &v.state case 1: @@ -5340,7 +6175,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegenerateWebhookRequest); i { + switch v := v.(*RegenerateDeployKeyRequest); i { case 0: return &v.state case 1: @@ -5352,7 +6187,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegenerateWebhookResponse); i { + switch v := v.(*RegenerateDeployKeyResponse); i { case 0: return &v.state case 1: @@ -5364,7 +6199,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Webhook); i { + switch v := v.(*CheckWebhookRequest); i { case 0: return &v.state case 1: @@ -5376,7 +6211,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeProjectOwnerRequest); i { + switch v := v.(*CheckWebhookResponse); i { case 0: return &v.state case 1: @@ -5388,7 +6223,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeProjectOwnerResponse); i { + switch v := v.(*RegenerateWebhookRequest); i { case 0: return &v.state case 1: @@ -5400,7 +6235,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForkAndCreateRequest); i { + switch v := v.(*RegenerateWebhookResponse); i { case 0: return &v.state case 1: @@ -5412,7 +6247,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForkAndCreateResponse); i { + switch v := v.(*Webhook); i { case 0: return &v.state case 1: @@ -5424,7 +6259,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GithubAppSwitchRequest); i { + switch v := v.(*ChangeProjectOwnerRequest); i { case 0: return &v.state case 1: @@ -5436,7 +6271,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GithubAppSwitchResponse); i { + switch v := v.(*ChangeProjectOwnerResponse); i { case 0: return &v.state case 1: @@ -5448,7 +6283,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProjectCreated); i { + switch v := v.(*ForkAndCreateRequest); i { case 0: return &v.state case 1: @@ -5460,7 +6295,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProjectDeleted); i { + switch v := v.(*ForkAndCreateResponse); i { case 0: return &v.state case 1: @@ -5472,7 +6307,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProjectUpdated); i { + switch v := v.(*GithubAppSwitchRequest); i { case 0: return &v.state case 1: @@ -5484,7 +6319,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CollaboratorsChanged); i { + switch v := v.(*GithubAppSwitchResponse); i { case 0: return &v.state case 1: @@ -5496,7 +6331,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponseMeta_Status); i { + switch v := v.(*FinishOnboardingRequest); i { case 0: return &v.state case 1: @@ -5508,7 +6343,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Metadata); i { + switch v := v.(*FinishOnboardingResponse); i { case 0: return &v.state case 1: @@ -5520,7 +6355,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec); i { + switch v := v.(*RegenerateWebhookSecretRequest); i { case 0: return &v.state case 1: @@ -5532,7 +6367,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Status); i { + switch v := v.(*RegenerateWebhookSecretResponse); i { case 0: return &v.state case 1: @@ -5544,7 +6379,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Repository); i { + switch v := v.(*ProjectCreated); i { case 0: return &v.state case 1: @@ -5556,7 +6391,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Scheduler); i { + switch v := v.(*ProjectDeleted); i { case 0: return &v.state case 1: @@ -5568,7 +6403,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Task); i { + switch v := v.(*ProjectRestored); i { case 0: return &v.state case 1: @@ -5580,7 +6415,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Repository_ForkedPullRequests); i { + switch v := v.(*ProjectUpdated); i { case 0: return &v.state case 1: @@ -5592,7 +6427,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Repository_Status); i { + switch v := v.(*CollaboratorsChanged); i { case 0: return &v.state case 1: @@ -5604,7 +6439,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Repository_Whitelist); i { + switch v := v.(*ResponseMeta_Status); i { case 0: return &v.state case 1: @@ -5616,7 +6451,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Repository_Status_PipelineFile); i { + switch v := v.(*Project_Metadata); i { case 0: return &v.state case 1: @@ -5628,7 +6463,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Spec_Task_Parameter); i { + switch v := v.(*Project_Spec); i { case 0: return &v.state case 1: @@ -5640,7 +6475,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Status_Cache); i { + switch v := v.(*Project_Status); i { case 0: return &v.state case 1: @@ -5652,7 +6487,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Status_ArtifactStore); i { + switch v := v.(*Project_Spec_Repository); i { case 0: return &v.state case 1: @@ -5664,7 +6499,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Status_Repository); i { + switch v := v.(*Project_Spec_Scheduler); i { case 0: return &v.state case 1: @@ -5676,7 +6511,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Status_Analysis); i { + switch v := v.(*Project_Spec_Task); i { case 0: return &v.state case 1: @@ -5688,7 +6523,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Project_Status_Permissions); i { + switch v := v.(*Project_Spec_Repository_ForkedPullRequests); i { case 0: return &v.state case 1: @@ -5700,7 +6535,7 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckDeployKeyResponse_DeployKey); i { + switch v := v.(*Project_Spec_Repository_Status); i { case 0: return &v.state case 1: @@ -5712,6 +6547,114 @@ func file_projecthub_proto_init() { } } file_projecthub_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Spec_Repository_Whitelist); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Spec_Repository_Status_PipelineFile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Spec_Task_Parameter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Status_Cache); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Status_ArtifactStore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Status_Repository); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Status_Analysis); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project_Status_Permissions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckDeployKeyResponse_DeployKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_projecthub_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegenerateDeployKeyResponse_DeployKey); i { case 0: return &v.state @@ -5724,7 +6667,7 @@ func file_projecthub_proto_init() { } } } - file_projecthub_proto_msgTypes[42].OneofWrappers = []interface{}{ + file_projecthub_proto_msgTypes[51].OneofWrappers = []interface{}{ (*Project_Spec_Repository_Run)(nil), } type x struct{} @@ -5732,8 +6675,8 @@ func file_projecthub_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_projecthub_proto_rawDesc, - NumEnums: 8, - NumMessages: 57, + NumEnums: 9, + NumMessages: 66, NumExtensions: 0, NumServices: 1, }, diff --git a/ee/velocity/pkg/protos/projecthub/projecthub_grpc.pb.go b/ee/velocity/pkg/protos/projecthub/projecthub_grpc.pb.go index 818415137..bebce0b12 100644 --- a/ee/velocity/pkg/protos/projecthub/projecthub_grpc.pb.go +++ b/ee/velocity/pkg/protos/projecthub/projecthub_grpc.pb.go @@ -19,20 +19,24 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - ProjectService_List_FullMethodName = "/InternalApi.Projecthub.ProjectService/List" - ProjectService_Describe_FullMethodName = "/InternalApi.Projecthub.ProjectService/Describe" - ProjectService_DescribeMany_FullMethodName = "/InternalApi.Projecthub.ProjectService/DescribeMany" - ProjectService_Create_FullMethodName = "/InternalApi.Projecthub.ProjectService/Create" - ProjectService_Update_FullMethodName = "/InternalApi.Projecthub.ProjectService/Update" - ProjectService_Destroy_FullMethodName = "/InternalApi.Projecthub.ProjectService/Destroy" - ProjectService_Users_FullMethodName = "/InternalApi.Projecthub.ProjectService/Users" - ProjectService_CheckDeployKey_FullMethodName = "/InternalApi.Projecthub.ProjectService/CheckDeployKey" - ProjectService_RegenerateDeployKey_FullMethodName = "/InternalApi.Projecthub.ProjectService/RegenerateDeployKey" - ProjectService_CheckWebhook_FullMethodName = "/InternalApi.Projecthub.ProjectService/CheckWebhook" - ProjectService_RegenerateWebhook_FullMethodName = "/InternalApi.Projecthub.ProjectService/RegenerateWebhook" - ProjectService_ChangeProjectOwner_FullMethodName = "/InternalApi.Projecthub.ProjectService/ChangeProjectOwner" - ProjectService_ForkAndCreate_FullMethodName = "/InternalApi.Projecthub.ProjectService/ForkAndCreate" - ProjectService_GithubAppSwitch_FullMethodName = "/InternalApi.Projecthub.ProjectService/GithubAppSwitch" + ProjectService_List_FullMethodName = "/InternalApi.Projecthub.ProjectService/List" + ProjectService_ListKeyset_FullMethodName = "/InternalApi.Projecthub.ProjectService/ListKeyset" + ProjectService_Describe_FullMethodName = "/InternalApi.Projecthub.ProjectService/Describe" + ProjectService_DescribeMany_FullMethodName = "/InternalApi.Projecthub.ProjectService/DescribeMany" + ProjectService_Create_FullMethodName = "/InternalApi.Projecthub.ProjectService/Create" + ProjectService_Update_FullMethodName = "/InternalApi.Projecthub.ProjectService/Update" + ProjectService_Destroy_FullMethodName = "/InternalApi.Projecthub.ProjectService/Destroy" + ProjectService_Restore_FullMethodName = "/InternalApi.Projecthub.ProjectService/Restore" + ProjectService_Users_FullMethodName = "/InternalApi.Projecthub.ProjectService/Users" + ProjectService_CheckDeployKey_FullMethodName = "/InternalApi.Projecthub.ProjectService/CheckDeployKey" + ProjectService_RegenerateDeployKey_FullMethodName = "/InternalApi.Projecthub.ProjectService/RegenerateDeployKey" + ProjectService_CheckWebhook_FullMethodName = "/InternalApi.Projecthub.ProjectService/CheckWebhook" + ProjectService_RegenerateWebhook_FullMethodName = "/InternalApi.Projecthub.ProjectService/RegenerateWebhook" + ProjectService_RegenerateWebhookSecret_FullMethodName = "/InternalApi.Projecthub.ProjectService/RegenerateWebhookSecret" + ProjectService_ChangeProjectOwner_FullMethodName = "/InternalApi.Projecthub.ProjectService/ChangeProjectOwner" + ProjectService_ForkAndCreate_FullMethodName = "/InternalApi.Projecthub.ProjectService/ForkAndCreate" + ProjectService_GithubAppSwitch_FullMethodName = "/InternalApi.Projecthub.ProjectService/GithubAppSwitch" + ProjectService_FinishOnboarding_FullMethodName = "/InternalApi.Projecthub.ProjectService/FinishOnboarding" ) // ProjectServiceClient is the client API for ProjectService service. @@ -40,11 +44,13 @@ const ( // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ProjectServiceClient interface { List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) + ListKeyset(ctx context.Context, in *ListKeysetRequest, opts ...grpc.CallOption) (*ListKeysetResponse, error) Describe(ctx context.Context, in *DescribeRequest, opts ...grpc.CallOption) (*DescribeResponse, error) DescribeMany(ctx context.Context, in *DescribeManyRequest, opts ...grpc.CallOption) (*DescribeManyResponse, error) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*UpdateResponse, error) Destroy(ctx context.Context, in *DestroyRequest, opts ...grpc.CallOption) (*DestroyResponse, error) + Restore(ctx context.Context, in *RestoreRequest, opts ...grpc.CallOption) (*RestoreResponse, error) // Operation is called to list Semaphore users on the project. // Operation is synchronous. Users(ctx context.Context, in *UsersRequest, opts ...grpc.CallOption) (*UsersResponse, error) @@ -60,6 +66,10 @@ type ProjectServiceClient interface { // Operation is called to regenerate a webhook. // Operation is synchronous. RegenerateWebhook(ctx context.Context, in *RegenerateWebhookRequest, opts ...grpc.CallOption) (*RegenerateWebhookResponse, error) + // Operation is called to regenerate a webhook secret token. + // Operation is synchronous. + // Operation is only available for git agnostic projects. + RegenerateWebhookSecret(ctx context.Context, in *RegenerateWebhookSecretRequest, opts ...grpc.CallOption) (*RegenerateWebhookSecretResponse, error) // Operation is called to change a project owner within the same organization. // Operation is synchronous. ChangeProjectOwner(ctx context.Context, in *ChangeProjectOwnerRequest, opts ...grpc.CallOption) (*ChangeProjectOwnerResponse, error) @@ -69,6 +79,9 @@ type ProjectServiceClient interface { // Operation is called to switch project from github_oauth_token to github_app integration // Operation is synchronous. GithubAppSwitch(ctx context.Context, in *GithubAppSwitchRequest, opts ...grpc.CallOption) (*GithubAppSwitchResponse, error) + // Operation is called to transition project from onboarding to ready state. + // Operation is synchronous. + FinishOnboarding(ctx context.Context, in *FinishOnboardingRequest, opts ...grpc.CallOption) (*FinishOnboardingResponse, error) } type projectServiceClient struct { @@ -88,6 +101,15 @@ func (c *projectServiceClient) List(ctx context.Context, in *ListRequest, opts . return out, nil } +func (c *projectServiceClient) ListKeyset(ctx context.Context, in *ListKeysetRequest, opts ...grpc.CallOption) (*ListKeysetResponse, error) { + out := new(ListKeysetResponse) + err := c.cc.Invoke(ctx, ProjectService_ListKeyset_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *projectServiceClient) Describe(ctx context.Context, in *DescribeRequest, opts ...grpc.CallOption) (*DescribeResponse, error) { out := new(DescribeResponse) err := c.cc.Invoke(ctx, ProjectService_Describe_FullMethodName, in, out, opts...) @@ -133,6 +155,15 @@ func (c *projectServiceClient) Destroy(ctx context.Context, in *DestroyRequest, return out, nil } +func (c *projectServiceClient) Restore(ctx context.Context, in *RestoreRequest, opts ...grpc.CallOption) (*RestoreResponse, error) { + out := new(RestoreResponse) + err := c.cc.Invoke(ctx, ProjectService_Restore_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *projectServiceClient) Users(ctx context.Context, in *UsersRequest, opts ...grpc.CallOption) (*UsersResponse, error) { out := new(UsersResponse) err := c.cc.Invoke(ctx, ProjectService_Users_FullMethodName, in, out, opts...) @@ -178,6 +209,15 @@ func (c *projectServiceClient) RegenerateWebhook(ctx context.Context, in *Regene return out, nil } +func (c *projectServiceClient) RegenerateWebhookSecret(ctx context.Context, in *RegenerateWebhookSecretRequest, opts ...grpc.CallOption) (*RegenerateWebhookSecretResponse, error) { + out := new(RegenerateWebhookSecretResponse) + err := c.cc.Invoke(ctx, ProjectService_RegenerateWebhookSecret_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *projectServiceClient) ChangeProjectOwner(ctx context.Context, in *ChangeProjectOwnerRequest, opts ...grpc.CallOption) (*ChangeProjectOwnerResponse, error) { out := new(ChangeProjectOwnerResponse) err := c.cc.Invoke(ctx, ProjectService_ChangeProjectOwner_FullMethodName, in, out, opts...) @@ -205,16 +245,27 @@ func (c *projectServiceClient) GithubAppSwitch(ctx context.Context, in *GithubAp return out, nil } +func (c *projectServiceClient) FinishOnboarding(ctx context.Context, in *FinishOnboardingRequest, opts ...grpc.CallOption) (*FinishOnboardingResponse, error) { + out := new(FinishOnboardingResponse) + err := c.cc.Invoke(ctx, ProjectService_FinishOnboarding_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ProjectServiceServer is the server API for ProjectService service. // All implementations should embed UnimplementedProjectServiceServer // for forward compatibility type ProjectServiceServer interface { List(context.Context, *ListRequest) (*ListResponse, error) + ListKeyset(context.Context, *ListKeysetRequest) (*ListKeysetResponse, error) Describe(context.Context, *DescribeRequest) (*DescribeResponse, error) DescribeMany(context.Context, *DescribeManyRequest) (*DescribeManyResponse, error) Create(context.Context, *CreateRequest) (*CreateResponse, error) Update(context.Context, *UpdateRequest) (*UpdateResponse, error) Destroy(context.Context, *DestroyRequest) (*DestroyResponse, error) + Restore(context.Context, *RestoreRequest) (*RestoreResponse, error) // Operation is called to list Semaphore users on the project. // Operation is synchronous. Users(context.Context, *UsersRequest) (*UsersResponse, error) @@ -230,6 +281,10 @@ type ProjectServiceServer interface { // Operation is called to regenerate a webhook. // Operation is synchronous. RegenerateWebhook(context.Context, *RegenerateWebhookRequest) (*RegenerateWebhookResponse, error) + // Operation is called to regenerate a webhook secret token. + // Operation is synchronous. + // Operation is only available for git agnostic projects. + RegenerateWebhookSecret(context.Context, *RegenerateWebhookSecretRequest) (*RegenerateWebhookSecretResponse, error) // Operation is called to change a project owner within the same organization. // Operation is synchronous. ChangeProjectOwner(context.Context, *ChangeProjectOwnerRequest) (*ChangeProjectOwnerResponse, error) @@ -239,6 +294,9 @@ type ProjectServiceServer interface { // Operation is called to switch project from github_oauth_token to github_app integration // Operation is synchronous. GithubAppSwitch(context.Context, *GithubAppSwitchRequest) (*GithubAppSwitchResponse, error) + // Operation is called to transition project from onboarding to ready state. + // Operation is synchronous. + FinishOnboarding(context.Context, *FinishOnboardingRequest) (*FinishOnboardingResponse, error) } // UnimplementedProjectServiceServer should be embedded to have forward compatible implementations. @@ -248,6 +306,9 @@ type UnimplementedProjectServiceServer struct { func (UnimplementedProjectServiceServer) List(context.Context, *ListRequest) (*ListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method List not implemented") } +func (UnimplementedProjectServiceServer) ListKeyset(context.Context, *ListKeysetRequest) (*ListKeysetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListKeyset not implemented") +} func (UnimplementedProjectServiceServer) Describe(context.Context, *DescribeRequest) (*DescribeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Describe not implemented") } @@ -263,6 +324,9 @@ func (UnimplementedProjectServiceServer) Update(context.Context, *UpdateRequest) func (UnimplementedProjectServiceServer) Destroy(context.Context, *DestroyRequest) (*DestroyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Destroy not implemented") } +func (UnimplementedProjectServiceServer) Restore(context.Context, *RestoreRequest) (*RestoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Restore not implemented") +} func (UnimplementedProjectServiceServer) Users(context.Context, *UsersRequest) (*UsersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Users not implemented") } @@ -278,6 +342,9 @@ func (UnimplementedProjectServiceServer) CheckWebhook(context.Context, *CheckWeb func (UnimplementedProjectServiceServer) RegenerateWebhook(context.Context, *RegenerateWebhookRequest) (*RegenerateWebhookResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RegenerateWebhook not implemented") } +func (UnimplementedProjectServiceServer) RegenerateWebhookSecret(context.Context, *RegenerateWebhookSecretRequest) (*RegenerateWebhookSecretResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegenerateWebhookSecret not implemented") +} func (UnimplementedProjectServiceServer) ChangeProjectOwner(context.Context, *ChangeProjectOwnerRequest) (*ChangeProjectOwnerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeProjectOwner not implemented") } @@ -287,6 +354,9 @@ func (UnimplementedProjectServiceServer) ForkAndCreate(context.Context, *ForkAnd func (UnimplementedProjectServiceServer) GithubAppSwitch(context.Context, *GithubAppSwitchRequest) (*GithubAppSwitchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GithubAppSwitch not implemented") } +func (UnimplementedProjectServiceServer) FinishOnboarding(context.Context, *FinishOnboardingRequest) (*FinishOnboardingResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinishOnboarding not implemented") +} // UnsafeProjectServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ProjectServiceServer will @@ -317,6 +387,24 @@ func _ProjectService_List_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _ProjectService_ListKeyset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListKeysetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProjectServiceServer).ListKeyset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProjectService_ListKeyset_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProjectServiceServer).ListKeyset(ctx, req.(*ListKeysetRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ProjectService_Describe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DescribeRequest) if err := dec(in); err != nil { @@ -407,6 +495,24 @@ func _ProjectService_Destroy_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _ProjectService_Restore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RestoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProjectServiceServer).Restore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProjectService_Restore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProjectServiceServer).Restore(ctx, req.(*RestoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ProjectService_Users_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UsersRequest) if err := dec(in); err != nil { @@ -497,6 +603,24 @@ func _ProjectService_RegenerateWebhook_Handler(srv interface{}, ctx context.Cont return interceptor(ctx, in, info, handler) } +func _ProjectService_RegenerateWebhookSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegenerateWebhookSecretRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProjectServiceServer).RegenerateWebhookSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProjectService_RegenerateWebhookSecret_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProjectServiceServer).RegenerateWebhookSecret(ctx, req.(*RegenerateWebhookSecretRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ProjectService_ChangeProjectOwner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ChangeProjectOwnerRequest) if err := dec(in); err != nil { @@ -551,6 +675,24 @@ func _ProjectService_GithubAppSwitch_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _ProjectService_FinishOnboarding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FinishOnboardingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProjectServiceServer).FinishOnboarding(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProjectService_FinishOnboarding_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProjectServiceServer).FinishOnboarding(ctx, req.(*FinishOnboardingRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ProjectService_ServiceDesc is the grpc.ServiceDesc for ProjectService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -562,6 +704,10 @@ var ProjectService_ServiceDesc = grpc.ServiceDesc{ MethodName: "List", Handler: _ProjectService_List_Handler, }, + { + MethodName: "ListKeyset", + Handler: _ProjectService_ListKeyset_Handler, + }, { MethodName: "Describe", Handler: _ProjectService_Describe_Handler, @@ -582,6 +728,10 @@ var ProjectService_ServiceDesc = grpc.ServiceDesc{ MethodName: "Destroy", Handler: _ProjectService_Destroy_Handler, }, + { + MethodName: "Restore", + Handler: _ProjectService_Restore_Handler, + }, { MethodName: "Users", Handler: _ProjectService_Users_Handler, @@ -602,6 +752,10 @@ var ProjectService_ServiceDesc = grpc.ServiceDesc{ MethodName: "RegenerateWebhook", Handler: _ProjectService_RegenerateWebhook_Handler, }, + { + MethodName: "RegenerateWebhookSecret", + Handler: _ProjectService_RegenerateWebhookSecret_Handler, + }, { MethodName: "ChangeProjectOwner", Handler: _ProjectService_ChangeProjectOwner_Handler, @@ -614,6 +768,10 @@ var ProjectService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GithubAppSwitch", Handler: _ProjectService_GithubAppSwitch_Handler, }, + { + MethodName: "FinishOnboarding", + Handler: _ProjectService_FinishOnboarding_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "projecthub.proto", diff --git a/ee/velocity/pkg/protos/repository_integrator/repository_integrator.pb.go b/ee/velocity/pkg/protos/repository_integrator/repository_integrator.pb.go index 9839ee217..3160c023e 100644 --- a/ee/velocity/pkg/protos/repository_integrator/repository_integrator.pb.go +++ b/ee/velocity/pkg/protos/repository_integrator/repository_integrator.pb.go @@ -28,6 +28,8 @@ const ( IntegrationType_GITHUB_OAUTH_TOKEN IntegrationType = 0 IntegrationType_GITHUB_APP IntegrationType = 1 IntegrationType_BITBUCKET IntegrationType = 2 + IntegrationType_GITLAB IntegrationType = 3 + IntegrationType_GIT IntegrationType = 4 ) // Enum value maps for IntegrationType. @@ -36,11 +38,15 @@ var ( 0: "GITHUB_OAUTH_TOKEN", 1: "GITHUB_APP", 2: "BITBUCKET", + 3: "GITLAB", + 4: "GIT", } IntegrationType_value = map[string]int32{ "GITHUB_OAUTH_TOKEN": 0, "GITHUB_APP": 1, "BITBUCKET": 2, + "GITLAB": 3, + "GIT": 4, } ) @@ -671,6 +677,84 @@ func (x *GithubInstallationInfoResponse) GetInstallationUrl() string { return "" } +// InitGithubInstallation call request +// Used by bootstrapper to initialize github app installations +type InitGithubInstallationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InitGithubInstallationRequest) Reset() { + *x = InitGithubInstallationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_repository_integrator_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InitGithubInstallationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitGithubInstallationRequest) ProtoMessage() {} + +func (x *InitGithubInstallationRequest) ProtoReflect() protoreflect.Message { + mi := &file_repository_integrator_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InitGithubInstallationRequest.ProtoReflect.Descriptor instead. +func (*InitGithubInstallationRequest) Descriptor() ([]byte, []int) { + return file_repository_integrator_proto_rawDescGZIP(), []int{9} +} + +type InitGithubInstallationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InitGithubInstallationResponse) Reset() { + *x = InitGithubInstallationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_repository_integrator_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InitGithubInstallationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitGithubInstallationResponse) ProtoMessage() {} + +func (x *InitGithubInstallationResponse) ProtoReflect() protoreflect.Message { + mi := &file_repository_integrator_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InitGithubInstallationResponse.ProtoReflect.Descriptor instead. +func (*InitGithubInstallationResponse) Descriptor() ([]byte, []int) { + return file_repository_integrator_proto_rawDescGZIP(), []int{10} +} + // Get Repositories call request // // - user_id = [required] UUID of the user. @@ -687,7 +771,7 @@ type GetRepositoriesRequest struct { func (x *GetRepositoriesRequest) Reset() { *x = GetRepositoriesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_repository_integrator_proto_msgTypes[9] + mi := &file_repository_integrator_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -700,7 +784,7 @@ func (x *GetRepositoriesRequest) String() string { func (*GetRepositoriesRequest) ProtoMessage() {} func (x *GetRepositoriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_repository_integrator_proto_msgTypes[9] + mi := &file_repository_integrator_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -713,7 +797,7 @@ func (x *GetRepositoriesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoriesRequest.ProtoReflect.Descriptor instead. func (*GetRepositoriesRequest) Descriptor() ([]byte, []int) { - return file_repository_integrator_proto_rawDescGZIP(), []int{9} + return file_repository_integrator_proto_rawDescGZIP(), []int{11} } func (x *GetRepositoriesRequest) GetUserId() string { @@ -744,7 +828,7 @@ type GetRepositoriesResponse struct { func (x *GetRepositoriesResponse) Reset() { *x = GetRepositoriesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_repository_integrator_proto_msgTypes[10] + mi := &file_repository_integrator_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -757,7 +841,7 @@ func (x *GetRepositoriesResponse) String() string { func (*GetRepositoriesResponse) ProtoMessage() {} func (x *GetRepositoriesResponse) ProtoReflect() protoreflect.Message { - mi := &file_repository_integrator_proto_msgTypes[10] + mi := &file_repository_integrator_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -770,7 +854,7 @@ func (x *GetRepositoriesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoriesResponse.ProtoReflect.Descriptor instead. func (*GetRepositoriesResponse) Descriptor() ([]byte, []int) { - return file_repository_integrator_proto_rawDescGZIP(), []int{10} + return file_repository_integrator_proto_rawDescGZIP(), []int{12} } func (x *GetRepositoriesResponse) GetRepositories() []*Repository { @@ -795,7 +879,7 @@ type Repository struct { func (x *Repository) Reset() { *x = Repository{} if protoimpl.UnsafeEnabled { - mi := &file_repository_integrator_proto_msgTypes[11] + mi := &file_repository_integrator_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -808,7 +892,7 @@ func (x *Repository) String() string { func (*Repository) ProtoMessage() {} func (x *Repository) ProtoReflect() protoreflect.Message { - mi := &file_repository_integrator_proto_msgTypes[11] + mi := &file_repository_integrator_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -821,7 +905,7 @@ func (x *Repository) ProtoReflect() protoreflect.Message { // Deprecated: Use Repository.ProtoReflect.Descriptor instead. func (*Repository) Descriptor() ([]byte, []int) { - return file_repository_integrator_proto_rawDescGZIP(), []int{11} + return file_repository_integrator_proto_rawDescGZIP(), []int{13} } func (x *Repository) GetAddable() bool { @@ -929,95 +1013,111 @@ var file_repository_integrator_proto_rawDesc = []byte{ 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x8f, 0x01, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x5c, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6b, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0a, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x64, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x48, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, - 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x47, - 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x4f, 0x4b, 0x45, - 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x41, 0x50, - 0x50, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x49, 0x54, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54, - 0x10, 0x02, 0x2a, 0x4b, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, - 0x4e, 0x4c, 0x59, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, - 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x32, - 0x87, 0x06, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x31, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x10, 0x50, - 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, - 0x39, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x6e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x1f, 0x0a, 0x1d, 0x49, + 0x6e, 0x69, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x1e, + 0x49, 0x6e, 0x69, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x6b, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x8b, 0x01, + 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, + 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x5d, 0x0a, 0x0f, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x12, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, + 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, + 0x5f, 0x41, 0x50, 0x50, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x49, 0x54, 0x42, 0x55, 0x43, + 0x4b, 0x45, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x49, 0x54, 0x4c, 0x41, 0x42, 0x10, + 0x03, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x49, 0x54, 0x10, 0x04, 0x2a, 0x4b, 0x0a, 0x10, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x13, + 0x0a, 0x0f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x50, 0x55, 0x42, 0x4c, + 0x49, 0x43, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x32, 0xa5, 0x07, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x39, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, + 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6e, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x47, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x69, + 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, + 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x47, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x4c, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, + 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, + 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1033,7 +1133,7 @@ func file_repository_integrator_proto_rawDescGZIP() []byte { } var file_repository_integrator_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_repository_integrator_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_repository_integrator_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_repository_integrator_proto_goTypes = []interface{}{ (IntegrationType)(0), // 0: InternalApi.RepositoryIntegrator.IntegrationType (IntegrationScope)(0), // 1: InternalApi.RepositoryIntegrator.IntegrationScope @@ -1046,32 +1146,36 @@ var file_repository_integrator_proto_goTypes = []interface{}{ (*GetFileResponse)(nil), // 8: InternalApi.RepositoryIntegrator.GetFileResponse (*GithubInstallationInfoRequest)(nil), // 9: InternalApi.RepositoryIntegrator.GithubInstallationInfoRequest (*GithubInstallationInfoResponse)(nil), // 10: InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse - (*GetRepositoriesRequest)(nil), // 11: InternalApi.RepositoryIntegrator.GetRepositoriesRequest - (*GetRepositoriesResponse)(nil), // 12: InternalApi.RepositoryIntegrator.GetRepositoriesResponse - (*Repository)(nil), // 13: InternalApi.RepositoryIntegrator.Repository - (*timestamp.Timestamp)(nil), // 14: google.protobuf.Timestamp - (*empty.Empty)(nil), // 15: google.protobuf.Empty + (*InitGithubInstallationRequest)(nil), // 11: InternalApi.RepositoryIntegrator.InitGithubInstallationRequest + (*InitGithubInstallationResponse)(nil), // 12: InternalApi.RepositoryIntegrator.InitGithubInstallationResponse + (*GetRepositoriesRequest)(nil), // 13: InternalApi.RepositoryIntegrator.GetRepositoriesRequest + (*GetRepositoriesResponse)(nil), // 14: InternalApi.RepositoryIntegrator.GetRepositoriesResponse + (*Repository)(nil), // 15: InternalApi.RepositoryIntegrator.Repository + (*timestamp.Timestamp)(nil), // 16: google.protobuf.Timestamp + (*empty.Empty)(nil), // 17: google.protobuf.Empty } var file_repository_integrator_proto_depIdxs = []int32{ 0, // 0: InternalApi.RepositoryIntegrator.GetTokenRequest.integration_type:type_name -> InternalApi.RepositoryIntegrator.IntegrationType - 14, // 1: InternalApi.RepositoryIntegrator.GetTokenResponse.expires_at:type_name -> google.protobuf.Timestamp + 16, // 1: InternalApi.RepositoryIntegrator.GetTokenResponse.expires_at:type_name -> google.protobuf.Timestamp 1, // 2: InternalApi.RepositoryIntegrator.CheckTokenResponse.integration_scope:type_name -> InternalApi.RepositoryIntegrator.IntegrationScope 0, // 3: InternalApi.RepositoryIntegrator.GetRepositoriesRequest.integration_type:type_name -> InternalApi.RepositoryIntegrator.IntegrationType - 13, // 4: InternalApi.RepositoryIntegrator.GetRepositoriesResponse.repositories:type_name -> InternalApi.RepositoryIntegrator.Repository + 15, // 4: InternalApi.RepositoryIntegrator.GetRepositoriesResponse.repositories:type_name -> InternalApi.RepositoryIntegrator.Repository 2, // 5: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetToken:input_type -> InternalApi.RepositoryIntegrator.GetTokenRequest 4, // 6: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.CheckToken:input_type -> InternalApi.RepositoryIntegrator.CheckTokenRequest 6, // 7: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.PreheatFileCache:input_type -> InternalApi.RepositoryIntegrator.PreheatFileCacheRequest 7, // 8: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetFile:input_type -> InternalApi.RepositoryIntegrator.GetFileRequest 9, // 9: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GithubInstallationInfo:input_type -> InternalApi.RepositoryIntegrator.GithubInstallationInfoRequest - 11, // 10: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetRepositories:input_type -> InternalApi.RepositoryIntegrator.GetRepositoriesRequest - 3, // 11: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetToken:output_type -> InternalApi.RepositoryIntegrator.GetTokenResponse - 5, // 12: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.CheckToken:output_type -> InternalApi.RepositoryIntegrator.CheckTokenResponse - 15, // 13: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.PreheatFileCache:output_type -> google.protobuf.Empty - 8, // 14: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetFile:output_type -> InternalApi.RepositoryIntegrator.GetFileResponse - 10, // 15: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GithubInstallationInfo:output_type -> InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse - 12, // 16: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetRepositories:output_type -> InternalApi.RepositoryIntegrator.GetRepositoriesResponse - 11, // [11:17] is the sub-list for method output_type - 5, // [5:11] is the sub-list for method input_type + 11, // 10: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.InitGithubInstallation:input_type -> InternalApi.RepositoryIntegrator.InitGithubInstallationRequest + 13, // 11: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetRepositories:input_type -> InternalApi.RepositoryIntegrator.GetRepositoriesRequest + 3, // 12: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetToken:output_type -> InternalApi.RepositoryIntegrator.GetTokenResponse + 5, // 13: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.CheckToken:output_type -> InternalApi.RepositoryIntegrator.CheckTokenResponse + 17, // 14: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.PreheatFileCache:output_type -> google.protobuf.Empty + 8, // 15: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetFile:output_type -> InternalApi.RepositoryIntegrator.GetFileResponse + 10, // 16: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GithubInstallationInfo:output_type -> InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse + 12, // 17: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.InitGithubInstallation:output_type -> InternalApi.RepositoryIntegrator.InitGithubInstallationResponse + 14, // 18: InternalApi.RepositoryIntegrator.RepositoryIntegratorService.GetRepositories:output_type -> InternalApi.RepositoryIntegrator.GetRepositoriesResponse + 12, // [12:19] is the sub-list for method output_type + 5, // [5:12] is the sub-list for method input_type 5, // [5:5] is the sub-list for extension type_name 5, // [5:5] is the sub-list for extension extendee 0, // [0:5] is the sub-list for field type_name @@ -1192,7 +1296,7 @@ func file_repository_integrator_proto_init() { } } file_repository_integrator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoriesRequest); i { + switch v := v.(*InitGithubInstallationRequest); i { case 0: return &v.state case 1: @@ -1204,7 +1308,7 @@ func file_repository_integrator_proto_init() { } } file_repository_integrator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoriesResponse); i { + switch v := v.(*InitGithubInstallationResponse); i { case 0: return &v.state case 1: @@ -1216,6 +1320,30 @@ func file_repository_integrator_proto_init() { } } file_repository_integrator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRepositoriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_repository_integrator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRepositoriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_repository_integrator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Repository); i { case 0: return &v.state @@ -1234,7 +1362,7 @@ func file_repository_integrator_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_repository_integrator_proto_rawDesc, NumEnums: 2, - NumMessages: 12, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, diff --git a/ee/velocity/pkg/protos/repository_integrator/repository_integrator_grpc.pb.go b/ee/velocity/pkg/protos/repository_integrator/repository_integrator_grpc.pb.go index a48af0f82..793f25dbc 100644 --- a/ee/velocity/pkg/protos/repository_integrator/repository_integrator_grpc.pb.go +++ b/ee/velocity/pkg/protos/repository_integrator/repository_integrator_grpc.pb.go @@ -20,11 +20,12 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - RepositoryIntegratorService_GetToken_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/GetToken" // #nosec - RepositoryIntegratorService_CheckToken_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/CheckToken" // #nosec + RepositoryIntegratorService_GetToken_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/GetToken" + RepositoryIntegratorService_CheckToken_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/CheckToken" RepositoryIntegratorService_PreheatFileCache_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/PreheatFileCache" RepositoryIntegratorService_GetFile_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/GetFile" RepositoryIntegratorService_GithubInstallationInfo_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/GithubInstallationInfo" + RepositoryIntegratorService_InitGithubInstallation_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/InitGithubInstallation" RepositoryIntegratorService_GetRepositories_FullMethodName = "/InternalApi.RepositoryIntegrator.RepositoryIntegratorService/GetRepositories" ) @@ -37,6 +38,7 @@ type RepositoryIntegratorServiceClient interface { PreheatFileCache(ctx context.Context, in *PreheatFileCacheRequest, opts ...grpc.CallOption) (*empty.Empty, error) GetFile(ctx context.Context, in *GetFileRequest, opts ...grpc.CallOption) (*GetFileResponse, error) GithubInstallationInfo(ctx context.Context, in *GithubInstallationInfoRequest, opts ...grpc.CallOption) (*GithubInstallationInfoResponse, error) + InitGithubInstallation(ctx context.Context, in *InitGithubInstallationRequest, opts ...grpc.CallOption) (*InitGithubInstallationResponse, error) GetRepositories(ctx context.Context, in *GetRepositoriesRequest, opts ...grpc.CallOption) (*GetRepositoriesResponse, error) } @@ -93,6 +95,15 @@ func (c *repositoryIntegratorServiceClient) GithubInstallationInfo(ctx context.C return out, nil } +func (c *repositoryIntegratorServiceClient) InitGithubInstallation(ctx context.Context, in *InitGithubInstallationRequest, opts ...grpc.CallOption) (*InitGithubInstallationResponse, error) { + out := new(InitGithubInstallationResponse) + err := c.cc.Invoke(ctx, RepositoryIntegratorService_InitGithubInstallation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *repositoryIntegratorServiceClient) GetRepositories(ctx context.Context, in *GetRepositoriesRequest, opts ...grpc.CallOption) (*GetRepositoriesResponse, error) { out := new(GetRepositoriesResponse) err := c.cc.Invoke(ctx, RepositoryIntegratorService_GetRepositories_FullMethodName, in, out, opts...) @@ -111,6 +122,7 @@ type RepositoryIntegratorServiceServer interface { PreheatFileCache(context.Context, *PreheatFileCacheRequest) (*empty.Empty, error) GetFile(context.Context, *GetFileRequest) (*GetFileResponse, error) GithubInstallationInfo(context.Context, *GithubInstallationInfoRequest) (*GithubInstallationInfoResponse, error) + InitGithubInstallation(context.Context, *InitGithubInstallationRequest) (*InitGithubInstallationResponse, error) GetRepositories(context.Context, *GetRepositoriesRequest) (*GetRepositoriesResponse, error) } @@ -133,6 +145,9 @@ func (UnimplementedRepositoryIntegratorServiceServer) GetFile(context.Context, * func (UnimplementedRepositoryIntegratorServiceServer) GithubInstallationInfo(context.Context, *GithubInstallationInfoRequest) (*GithubInstallationInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GithubInstallationInfo not implemented") } +func (UnimplementedRepositoryIntegratorServiceServer) InitGithubInstallation(context.Context, *InitGithubInstallationRequest) (*InitGithubInstallationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method InitGithubInstallation not implemented") +} func (UnimplementedRepositoryIntegratorServiceServer) GetRepositories(context.Context, *GetRepositoriesRequest) (*GetRepositoriesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetRepositories not implemented") } @@ -238,6 +253,24 @@ func _RepositoryIntegratorService_GithubInstallationInfo_Handler(srv interface{} return interceptor(ctx, in, info, handler) } +func _RepositoryIntegratorService_InitGithubInstallation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InitGithubInstallationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RepositoryIntegratorServiceServer).InitGithubInstallation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RepositoryIntegratorService_InitGithubInstallation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RepositoryIntegratorServiceServer).InitGithubInstallation(ctx, req.(*InitGithubInstallationRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _RepositoryIntegratorService_GetRepositories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetRepositoriesRequest) if err := dec(in); err != nil { @@ -283,6 +316,10 @@ var RepositoryIntegratorService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GithubInstallationInfo", Handler: _RepositoryIntegratorService_GithubInstallationInfo_Handler, }, + { + MethodName: "InitGithubInstallation", + Handler: _RepositoryIntegratorService_InitGithubInstallation_Handler, + }, { MethodName: "GetRepositories", Handler: _RepositoryIntegratorService_GetRepositories_Handler, diff --git a/ee/velocity/pkg/protos/response_status/response_status.pb.go b/ee/velocity/pkg/protos/response_status/response_status.pb.go index 0c6d86a3e..101cac80c 100644 --- a/ee/velocity/pkg/protos/response_status/response_status.pb.go +++ b/ee/velocity/pkg/protos/response_status/response_status.pb.go @@ -148,12 +148,12 @@ var file_include_internal_api_response_status_proto_rawDesc = []byte{ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1d, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, - 0x41, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0x01, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, - 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x41, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0x01, 0x42, 0x46, 0x5a, 0x44, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, + 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, + 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ee/velocity/pkg/protos/server_farm.job/server_farm.job.pb.go b/ee/velocity/pkg/protos/server_farm.job/server_farm.job.pb.go index a49841e22..a7968e4b5 100644 --- a/ee/velocity/pkg/protos/server_farm.job/server_farm.job.pb.go +++ b/ee/velocity/pkg/protos/server_farm.job/server_farm.job.pb.go @@ -384,6 +384,7 @@ func (x *DescribeRequest) GetJobId() string { // - self_hosted = [required] True if job is running in a self-hosted agent // - build_req_id = [required] ID from plumber used to tie job to the block // - agent_name = [required] Name of the self-hosted agent, empty for hosted jobs +// - agent_id = [required] ID of the agent type Job struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -414,6 +415,7 @@ type Job struct { OrganizationId string `protobuf:"bytes,23,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` BuildReqId string `protobuf:"bytes,24,opt,name=build_req_id,json=buildReqId,proto3" json:"build_req_id,omitempty"` AgentName string `protobuf:"bytes,25,opt,name=agent_name,json=agentName,proto3" json:"agent_name,omitempty"` + AgentId string `protobuf:"bytes,27,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` } func (x *Job) Reset() { @@ -623,6 +625,13 @@ func (x *Job) GetAgentName() string { return "" } +func (x *Job) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + // - status = [required] Status of the reponse. // - job = [required if status is OK] Description of job. type DescribeResponse struct { @@ -715,7 +724,13 @@ type ListRequest struct { // [required] If true, only debug jobs will be listed OnlyDebugJobs bool `protobuf:"varint,8,opt,name=only_debug_jobs,json=onlyDebugJobs,proto3" json:"only_debug_jobs,omitempty"` // [optional] List of IDs of pipelines which jobs should be listed - PplIds []string `protobuf:"bytes,9,rep,name=ppl_ids,json=pplIds,proto3" json:"ppl_ids,omitempty"` + PplIds []string `protobuf:"bytes,9,rep,name=ppl_ids,json=pplIds,proto3" json:"ppl_ids,omitempty"` + CreatedAtGte *timestamp.Timestamp `protobuf:"bytes,10,opt,name=created_at_gte,json=createdAtGte,proto3" json:"created_at_gte,omitempty"` + CreatedAtLte *timestamp.Timestamp `protobuf:"bytes,11,opt,name=created_at_lte,json=createdAtLte,proto3" json:"created_at_lte,omitempty"` + // [optional] List of ids of projects which jobs should be listed + ProjectIds []string `protobuf:"bytes,13,rep,name=project_ids,json=projectIds,proto3" json:"project_ids,omitempty"` + // [optional] List of machine_types which jobs should be listed + MachineTypes []string `protobuf:"bytes,14,rep,name=machine_types,json=machineTypes,proto3" json:"machine_types,omitempty"` } func (x *ListRequest) Reset() { @@ -813,6 +828,34 @@ func (x *ListRequest) GetPplIds() []string { return nil } +func (x *ListRequest) GetCreatedAtGte() *timestamp.Timestamp { + if x != nil { + return x.CreatedAtGte + } + return nil +} + +func (x *ListRequest) GetCreatedAtLte() *timestamp.Timestamp { + if x != nil { + return x.CreatedAtLte + } + return nil +} + +func (x *ListRequest) GetProjectIds() []string { + if x != nil { + return x.ProjectIds + } + return nil +} + +func (x *ListRequest) GetMachineTypes() []string { + if x != nil { + return x.MachineTypes + } + return nil +} + type ListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1934,6 +1977,309 @@ func (x *CanAttachResponse) GetMessage() string { return "" } +// Create job request +// +// - requester_id = [required] ID of the user that requested job to be created +// - organization_id = [required] UUID of the organization +// - project_id = [required] UUID of project +// - branch_name = [optional, default=master] git branch on which the job should start +// - commit_sha = [optional, default=HEAD] git commit SHA on which the job should start +// - job_spec = [required] detailed job specification +type CreateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequesterId string `protobuf:"bytes,1,opt,name=requester_id,json=requesterId,proto3" json:"requester_id,omitempty"` + OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + BranchName string `protobuf:"bytes,4,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"` + CommitSha string `protobuf:"bytes,5,opt,name=commit_sha,json=commitSha,proto3" json:"commit_sha,omitempty"` + JobSpec *JobSpec `protobuf:"bytes,6,opt,name=job_spec,json=jobSpec,proto3" json:"job_spec,omitempty"` + RestrictedJob bool `protobuf:"varint,7,opt,name=restricted_job,json=restrictedJob,proto3" json:"restricted_job,omitempty"` +} + +func (x *CreateRequest) Reset() { + *x = CreateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRequest) ProtoMessage() {} + +func (x *CreateRequest) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[22] + 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 CreateRequest.ProtoReflect.Descriptor instead. +func (*CreateRequest) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{22} +} + +func (x *CreateRequest) GetRequesterId() string { + if x != nil { + return x.RequesterId + } + return "" +} + +func (x *CreateRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *CreateRequest) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *CreateRequest) GetBranchName() string { + if x != nil { + return x.BranchName + } + return "" +} + +func (x *CreateRequest) GetCommitSha() string { + if x != nil { + return x.CommitSha + } + return "" +} + +func (x *CreateRequest) GetJobSpec() *JobSpec { + if x != nil { + return x.JobSpec + } + return nil +} + +func (x *CreateRequest) GetRestrictedJob() bool { + if x != nil { + return x.RestrictedJob + } + return false +} + +// Create job response +// +// Response: +// - status = [required] contains ResponseCode: +// OK = Job was created successfully +// BAD_PARAM = One of the provided parameters is invalid +// - job = [required] The new job that was created based on request +type CreateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *response_status.ResponseStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Job *Job `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"` +} + +func (x *CreateResponse) Reset() { + *x = CreateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateResponse) ProtoMessage() {} + +func (x *CreateResponse) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[23] + 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 CreateResponse.ProtoReflect.Descriptor instead. +func (*CreateResponse) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{23} +} + +func (x *CreateResponse) GetStatus() *response_status.ResponseStatus { + if x != nil { + return x.Status + } + return nil +} + +func (x *CreateResponse) GetJob() *Job { + if x != nil { + return x.Job + } + return nil +} + +// Job specification detials +// +// - job_name = [required] the name of the job +// - agent = [required] the agent being used to run the job +// - secrets = [optional] list of secrets to be available within the job +// - env_vars = [optional] list of env vars to be available within the job +// - files = [optional] files to inject into the job +// - commands = [required] list of commands that job will execute +// - epilogue_always_commands = [optional] commands to be run after regular ones regardles of execution result +// - epilogue_on_pass_commands = [optional] commands to be run after regular ones only if they passed +// - epilogue_on_fail_commands = [optional] commands to be run after regular ones only if they failed +type JobSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobName string `protobuf:"bytes,1,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` + Agent *JobSpec_Agent `protobuf:"bytes,2,opt,name=agent,proto3" json:"agent,omitempty"` + Secrets []*JobSpec_Secret `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty"` + EnvVars []*JobSpec_EnvVar `protobuf:"bytes,4,rep,name=env_vars,json=envVars,proto3" json:"env_vars,omitempty"` + Files []*JobSpec_File `protobuf:"bytes,5,rep,name=files,proto3" json:"files,omitempty"` + Commands []string `protobuf:"bytes,6,rep,name=commands,proto3" json:"commands,omitempty"` + EpilogueAlwaysCommands []string `protobuf:"bytes,7,rep,name=epilogue_always_commands,json=epilogueAlwaysCommands,proto3" json:"epilogue_always_commands,omitempty"` + EpilogueOnPassCommands []string `protobuf:"bytes,8,rep,name=epilogue_on_pass_commands,json=epilogueOnPassCommands,proto3" json:"epilogue_on_pass_commands,omitempty"` + EpilogueOnFailCommands []string `protobuf:"bytes,9,rep,name=epilogue_on_fail_commands,json=epilogueOnFailCommands,proto3" json:"epilogue_on_fail_commands,omitempty"` + Priority int32 `protobuf:"varint,10,opt,name=priority,proto3" json:"priority,omitempty"` + ExecutionTimeLimit int32 `protobuf:"varint,11,opt,name=execution_time_limit,json=executionTimeLimit,proto3" json:"execution_time_limit,omitempty"` +} + +func (x *JobSpec) Reset() { + *x = JobSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec) ProtoMessage() {} + +func (x *JobSpec) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[24] + 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 JobSpec.ProtoReflect.Descriptor instead. +func (*JobSpec) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24} +} + +func (x *JobSpec) GetJobName() string { + if x != nil { + return x.JobName + } + return "" +} + +func (x *JobSpec) GetAgent() *JobSpec_Agent { + if x != nil { + return x.Agent + } + return nil +} + +func (x *JobSpec) GetSecrets() []*JobSpec_Secret { + if x != nil { + return x.Secrets + } + return nil +} + +func (x *JobSpec) GetEnvVars() []*JobSpec_EnvVar { + if x != nil { + return x.EnvVars + } + return nil +} + +func (x *JobSpec) GetFiles() []*JobSpec_File { + if x != nil { + return x.Files + } + return nil +} + +func (x *JobSpec) GetCommands() []string { + if x != nil { + return x.Commands + } + return nil +} + +func (x *JobSpec) GetEpilogueAlwaysCommands() []string { + if x != nil { + return x.EpilogueAlwaysCommands + } + return nil +} + +func (x *JobSpec) GetEpilogueOnPassCommands() []string { + if x != nil { + return x.EpilogueOnPassCommands + } + return nil +} + +func (x *JobSpec) GetEpilogueOnFailCommands() []string { + if x != nil { + return x.EpilogueOnFailCommands + } + return nil +} + +func (x *JobSpec) GetPriority() int32 { + if x != nil { + return x.Priority + } + return 0 +} + +func (x *JobSpec) GetExecutionTimeLimit() int32 { + if x != nil { + return x.ExecutionTimeLimit + } + return 0 +} + type Job_Timeline struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1967,7 +2313,7 @@ type Job_Timeline struct { func (x *Job_Timeline) Reset() { *x = Job_Timeline{} if protoimpl.UnsafeEnabled { - mi := &file_server_farm_job_proto_msgTypes[22] + mi := &file_server_farm_job_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1980,7 +2326,7 @@ func (x *Job_Timeline) String() string { func (*Job_Timeline) ProtoMessage() {} func (x *Job_Timeline) ProtoReflect() protoreflect.Message { - mi := &file_server_farm_job_proto_msgTypes[22] + mi := &file_server_farm_job_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2050,7 +2396,7 @@ type CountByStateResponse_CountByState struct { func (x *CountByStateResponse_CountByState) Reset() { *x = CountByStateResponse_CountByState{} if protoimpl.UnsafeEnabled { - mi := &file_server_farm_job_proto_msgTypes[23] + mi := &file_server_farm_job_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2063,7 +2409,7 @@ func (x *CountByStateResponse_CountByState) String() string { func (*CountByStateResponse_CountByState) ProtoMessage() {} func (x *CountByStateResponse_CountByState) ProtoReflect() protoreflect.Message { - mi := &file_server_farm_job_proto_msgTypes[23] + mi := &file_server_farm_job_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2093,33 +2439,434 @@ func (x *CountByStateResponse_CountByState) GetCount() int32 { return 0 } -var File_server_farm_job_proto protoreflect.FileDescriptor +type JobSpec_Agent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var file_server_farm_job_proto_rawDesc = []byte{ - 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x2e, 0x6a, 0x6f, - 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, - 0x4a, 0x6f, 0x62, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, - 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 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, 0xb6, 0x0b, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, - 0x44, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, - 0x6f, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, + Machine *JobSpec_Agent_Machine `protobuf:"bytes,1,opt,name=machine,proto3" json:"machine,omitempty"` + Containers []*JobSpec_Agent_Container `protobuf:"bytes,2,rep,name=containers,proto3" json:"containers,omitempty"` + ImagePullSecrets []*JobSpec_Agent_ImagePullSecret `protobuf:"bytes,3,rep,name=image_pull_secrets,json=imagePullSecrets,proto3" json:"image_pull_secrets,omitempty"` +} + +func (x *JobSpec_Agent) Reset() { + *x = JobSpec_Agent{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_Agent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_Agent) ProtoMessage() {} + +func (x *JobSpec_Agent) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[27] + 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 JobSpec_Agent.ProtoReflect.Descriptor instead. +func (*JobSpec_Agent) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 0} +} + +func (x *JobSpec_Agent) GetMachine() *JobSpec_Agent_Machine { + if x != nil { + return x.Machine + } + return nil +} + +func (x *JobSpec_Agent) GetContainers() []*JobSpec_Agent_Container { + if x != nil { + return x.Containers + } + return nil +} + +func (x *JobSpec_Agent) GetImagePullSecrets() []*JobSpec_Agent_ImagePullSecret { + if x != nil { + return x.ImagePullSecrets + } + return nil +} + +type JobSpec_Secret struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *JobSpec_Secret) Reset() { + *x = JobSpec_Secret{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_Secret) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_Secret) ProtoMessage() {} + +func (x *JobSpec_Secret) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[28] + 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 JobSpec_Secret.ProtoReflect.Descriptor instead. +func (*JobSpec_Secret) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 1} +} + +func (x *JobSpec_Secret) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type JobSpec_EnvVar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *JobSpec_EnvVar) Reset() { + *x = JobSpec_EnvVar{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_EnvVar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_EnvVar) ProtoMessage() {} + +func (x *JobSpec_EnvVar) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[29] + 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 JobSpec_EnvVar.ProtoReflect.Descriptor instead. +func (*JobSpec_EnvVar) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 2} +} + +func (x *JobSpec_EnvVar) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *JobSpec_EnvVar) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type JobSpec_File struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *JobSpec_File) Reset() { + *x = JobSpec_File{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_File) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_File) ProtoMessage() {} + +func (x *JobSpec_File) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[30] + 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 JobSpec_File.ProtoReflect.Descriptor instead. +func (*JobSpec_File) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 3} +} + +func (x *JobSpec_File) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *JobSpec_File) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +type JobSpec_Agent_Machine struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + OsImage string `protobuf:"bytes,2,opt,name=os_image,json=osImage,proto3" json:"os_image,omitempty"` +} + +func (x *JobSpec_Agent_Machine) Reset() { + *x = JobSpec_Agent_Machine{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_Agent_Machine) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_Agent_Machine) ProtoMessage() {} + +func (x *JobSpec_Agent_Machine) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[31] + 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 JobSpec_Agent_Machine.ProtoReflect.Descriptor instead. +func (*JobSpec_Agent_Machine) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 0, 0} +} + +func (x *JobSpec_Agent_Machine) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *JobSpec_Agent_Machine) GetOsImage() string { + if x != nil { + return x.OsImage + } + return "" +} + +type JobSpec_Agent_Container struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` + Command string `protobuf:"bytes,3,opt,name=command,proto3" json:"command,omitempty"` + EnvVars []*JobSpec_EnvVar `protobuf:"bytes,4,rep,name=env_vars,json=envVars,proto3" json:"env_vars,omitempty"` + Secrets []*JobSpec_Secret `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty"` +} + +func (x *JobSpec_Agent_Container) Reset() { + *x = JobSpec_Agent_Container{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_Agent_Container) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_Agent_Container) ProtoMessage() {} + +func (x *JobSpec_Agent_Container) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[32] + 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 JobSpec_Agent_Container.ProtoReflect.Descriptor instead. +func (*JobSpec_Agent_Container) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 0, 1} +} + +func (x *JobSpec_Agent_Container) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *JobSpec_Agent_Container) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *JobSpec_Agent_Container) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *JobSpec_Agent_Container) GetEnvVars() []*JobSpec_EnvVar { + if x != nil { + return x.EnvVars + } + return nil +} + +func (x *JobSpec_Agent_Container) GetSecrets() []*JobSpec_Secret { + if x != nil { + return x.Secrets + } + return nil +} + +type JobSpec_Agent_ImagePullSecret struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *JobSpec_Agent_ImagePullSecret) Reset() { + *x = JobSpec_Agent_ImagePullSecret{} + if protoimpl.UnsafeEnabled { + mi := &file_server_farm_job_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobSpec_Agent_ImagePullSecret) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobSpec_Agent_ImagePullSecret) ProtoMessage() {} + +func (x *JobSpec_Agent_ImagePullSecret) ProtoReflect() protoreflect.Message { + mi := &file_server_farm_job_proto_msgTypes[33] + 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 JobSpec_Agent_ImagePullSecret.ProtoReflect.Descriptor instead. +func (*JobSpec_Agent_ImagePullSecret) Descriptor() ([]byte, []int) { + return file_server_farm_job_proto_rawDescGZIP(), []int{24, 0, 2} +} + +func (x *JobSpec_Agent_ImagePullSecret) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +var File_server_farm_job_proto protoreflect.FileDescriptor + +var file_server_farm_job_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x2e, 0x6a, 0x6f, + 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, + 0x4a, 0x6f, 0x62, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, + 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 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, 0xd1, 0x0b, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, + 0x44, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, + 0x6f, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, + 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, @@ -2163,320 +2910,450 @@ var file_server_farm_job_proto_rawDesc = []byte{ 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x98, 0x03, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, + 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x1a, 0x98, + 0x03, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 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, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, + 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4c, 0x0a, 0x14, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 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, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4e, 0x0a, 0x15, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 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, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, + 0x44, 0x49, 0x53, 0x50, 0x41, 0x54, 0x43, 0x48, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, + 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x04, 0x22, 0x2d, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, + 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, + 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x22, 0x7a, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x31, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, + 0x6f, 0x62, 0x22, 0xe0, 0x05, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x43, + 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, + 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, + 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x67, 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, 0x0c, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x47, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x65, - 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x6e, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, - 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, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x72, 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, 0x12, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4e, - 0x0a, 0x15, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 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, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, - 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, - 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, - 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, - 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x49, 0x53, 0x50, 0x41, 0x54, 0x43, 0x48, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0c, - 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x04, 0x22, 0x2d, 0x0a, 0x06, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x22, 0x7a, 0x0a, 0x10, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x47, 0x74, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x6c, 0x79, + 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x6f, 0x6e, 0x6c, 0x79, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4a, 0x6f, 0x62, 0x73, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x67, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x47, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4c, 0x74, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12, 0x23, + 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x12, + 0x42, 0x59, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x41, + 0x53, 0x43, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x42, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x44, + 0x45, 0x53, 0x43, 0x10, 0x02, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x6a, + 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, + 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x04, 0x0a, 0x18, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x50, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, - 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x96, 0x04, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x43, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x40, - 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x67, 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, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x47, 0x74, - 0x12, 0x42, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, - 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, - 0x74, 0x47, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x26, 0x0a, - 0x0f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6e, 0x6c, 0x79, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x70, 0x6c, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x70, 0x70, 0x6c, 0x49, 0x64, 0x73, 0x22, 0x50, - 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x59, 0x5f, 0x46, 0x49, - 0x4e, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x00, 0x12, - 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x59, - 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, - 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, - 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x04, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x50, 0x0a, 0x05, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x62, - 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x57, - 0x0a, 0x14, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x12, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, - 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x65, - 0x62, 0x75, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3a, - 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x59, 0x5f, 0x43, 0x52, - 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, - 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x59, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x5f, - 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4f, 0x0a, - 0x0e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, - 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, - 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, + 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x12, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x05, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, + 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x64, 0x5f, - 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, - 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, - 0x67, 0x67, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x22, 0xdc, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x42, - 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x67, 0x74, - 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, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x47, - 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x41, 0x74, 0x4c, 0x74, 0x65, 0x22, 0x5a, 0x0a, 0x0d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x15, + 0x42, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x59, 0x5f, 0x46, 0x49, + 0x4e, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x22, + 0xc9, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, + 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xfe, 0x01, 0x0a, 0x0c, + 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0d, + 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, + 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x62, + 0x75, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, + 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, + 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x22, 0xdc, 0x01, 0x0a, + 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, + 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, + 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x5f, 0x67, 0x74, 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, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x41, 0x74, 0x47, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x6c, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x4c, 0x74, 0x65, 0x22, 0x5a, 0x0a, 0x0d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, + 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, + 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x61, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, + 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x19, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x08, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x18, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x44, 0x41, 0x59, + 0x10, 0x00, 0x22, 0x51, 0x0a, 0x1a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x33, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x53, 0x65, 0x63, 0x73, 0x22, 0x47, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 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, 0x21, 0x0a, 0x0c, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, + 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 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, 0x33, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x41, 0x0a, 0x0f, 0x43, 0x61, 0x6e, + 0x44, 0x65, 0x62, 0x75, 0x67, 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, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x10, + 0x43, 0x61, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x22, 0x42, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 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, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x3e, + 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, + 0x62, 0x53, 0x70, 0x65, 0x63, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x22, 0x78, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, - 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, - 0xd0, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x03, + 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, + 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, + 0xa9, 0x0a, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x6a, + 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, + 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, + 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, - 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, - 0x61, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x19, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x45, 0x0a, + 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x07, 0x65, 0x6e, 0x76, + 0x56, 0x61, 0x72, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, + 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, + 0x12, 0x38, 0x0a, 0x18, 0x65, 0x70, 0x69, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x5f, 0x61, 0x6c, 0x77, + 0x61, 0x79, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x16, 0x65, 0x70, 0x69, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x41, 0x6c, 0x77, 0x61, + 0x79, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x70, + 0x69, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x65, + 0x70, 0x69, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x4f, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x70, 0x69, 0x6c, 0x6f, 0x67, 0x75, + 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x65, 0x70, 0x69, 0x6c, 0x6f, 0x67, + 0x75, 0x65, 0x4f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x14, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0xd2, + 0x04, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, - 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x22, 0x18, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, - 0x0c, 0x0a, 0x08, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x44, 0x41, 0x59, 0x10, 0x00, 0x22, 0x51, 0x0a, - 0x1a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, - 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x73, - 0x22, 0x47, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 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, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0c, 0x53, 0x74, 0x6f, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 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, - 0x33, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x41, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, - 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, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x44, 0x65, - 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0x42, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 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, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x28, 0x0a, 0x10, - 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x4f, - 0x4a, 0x45, 0x43, 0x54, 0x10, 0x01, 0x32, 0xd0, 0x08, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, - 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, + 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x07, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, + 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x12, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, + 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x73, 0x1a, 0x38, 0x0a, 0x07, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0xdc, 0x01, + 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, + 0x45, 0x0a, 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, + 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x07, 0x65, + 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, + 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x25, 0x0a, 0x0f, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x1a, 0x1c, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x1a, 0x32, 0x0a, 0x06, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x34, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2a, 0x28, 0x0a, 0x10, 0x44, + 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x4f, 0x4a, + 0x45, 0x43, 0x54, 0x10, 0x01, 0x32, 0xb1, 0x09, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x05, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x04, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, - 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, + 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x05, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, + 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, - 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x04, 0x53, - 0x74, 0x6f, 0x70, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, - 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x04, 0x53, 0x74, + 0x6f, 0x70, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x2e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, - 0x62, 0x2e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, - 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x44, - 0x65, 0x62, 0x75, 0x67, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, - 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, - 0x61, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x68, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, - 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x66, 0x61, 0x72, 0x6d, 0x2e, 0x6a, 0x6f, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x32, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, + 0x2e, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x61, + 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, + 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, + 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x12, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x46, 0x61, 0x72, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x46, 0x5a, 0x44, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, + 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, + 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x2e, 0x6a, 0x6f, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2492,7 +3369,7 @@ func file_server_farm_job_proto_rawDescGZIP() []byte { } var file_server_farm_job_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_server_farm_job_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_server_farm_job_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_server_farm_job_proto_goTypes = []interface{}{ (DebugSessionType)(0), // 0: InternalApi.ServerFarm.Job.DebugSessionType (Job_State)(0), // 1: InternalApi.ServerFarm.Job.Job.State @@ -2522,71 +3399,97 @@ var file_server_farm_job_proto_goTypes = []interface{}{ (*CanDebugResponse)(nil), // 25: InternalApi.ServerFarm.Job.CanDebugResponse (*CanAttachRequest)(nil), // 26: InternalApi.ServerFarm.Job.CanAttachRequest (*CanAttachResponse)(nil), // 27: InternalApi.ServerFarm.Job.CanAttachResponse - (*Job_Timeline)(nil), // 28: InternalApi.ServerFarm.Job.Job.Timeline - (*CountByStateResponse_CountByState)(nil), // 29: InternalApi.ServerFarm.Job.CountByStateResponse.CountByState - (*response_status.ResponseStatus)(nil), // 30: InternalApi.ResponseStatus - (*timestamp.Timestamp)(nil), // 31: google.protobuf.Timestamp + (*CreateRequest)(nil), // 28: InternalApi.ServerFarm.Job.CreateRequest + (*CreateResponse)(nil), // 29: InternalApi.ServerFarm.Job.CreateResponse + (*JobSpec)(nil), // 30: InternalApi.ServerFarm.Job.JobSpec + (*Job_Timeline)(nil), // 31: InternalApi.ServerFarm.Job.Job.Timeline + (*CountByStateResponse_CountByState)(nil), // 32: InternalApi.ServerFarm.Job.CountByStateResponse.CountByState + (*JobSpec_Agent)(nil), // 33: InternalApi.ServerFarm.Job.JobSpec.Agent + (*JobSpec_Secret)(nil), // 34: InternalApi.ServerFarm.Job.JobSpec.Secret + (*JobSpec_EnvVar)(nil), // 35: InternalApi.ServerFarm.Job.JobSpec.EnvVar + (*JobSpec_File)(nil), // 36: InternalApi.ServerFarm.Job.JobSpec.File + (*JobSpec_Agent_Machine)(nil), // 37: InternalApi.ServerFarm.Job.JobSpec.Agent.Machine + (*JobSpec_Agent_Container)(nil), // 38: InternalApi.ServerFarm.Job.JobSpec.Agent.Container + (*JobSpec_Agent_ImagePullSecret)(nil), // 39: InternalApi.ServerFarm.Job.JobSpec.Agent.ImagePullSecret + (*response_status.ResponseStatus)(nil), // 40: InternalApi.ResponseStatus + (*timestamp.Timestamp)(nil), // 41: google.protobuf.Timestamp } var file_server_farm_job_proto_depIdxs = []int32{ - 28, // 0: InternalApi.ServerFarm.Job.Job.timeline:type_name -> InternalApi.ServerFarm.Job.Job.Timeline + 31, // 0: InternalApi.ServerFarm.Job.Job.timeline:type_name -> InternalApi.ServerFarm.Job.Job.Timeline 1, // 1: InternalApi.ServerFarm.Job.Job.state:type_name -> InternalApi.ServerFarm.Job.Job.State 2, // 2: InternalApi.ServerFarm.Job.Job.result:type_name -> InternalApi.ServerFarm.Job.Job.Result - 30, // 3: InternalApi.ServerFarm.Job.DescribeResponse.status:type_name -> InternalApi.ResponseStatus + 40, // 3: InternalApi.ServerFarm.Job.DescribeResponse.status:type_name -> InternalApi.ResponseStatus 7, // 4: InternalApi.ServerFarm.Job.DescribeResponse.job:type_name -> InternalApi.ServerFarm.Job.Job 3, // 5: InternalApi.ServerFarm.Job.ListRequest.order:type_name -> InternalApi.ServerFarm.Job.ListRequest.Order 1, // 6: InternalApi.ServerFarm.Job.ListRequest.job_states:type_name -> InternalApi.ServerFarm.Job.Job.State - 31, // 7: InternalApi.ServerFarm.Job.ListRequest.finished_at_gt:type_name -> google.protobuf.Timestamp - 31, // 8: InternalApi.ServerFarm.Job.ListRequest.finished_at_gte:type_name -> google.protobuf.Timestamp - 30, // 9: InternalApi.ServerFarm.Job.ListResponse.status:type_name -> InternalApi.ResponseStatus - 7, // 10: InternalApi.ServerFarm.Job.ListResponse.jobs:type_name -> InternalApi.ServerFarm.Job.Job - 4, // 11: InternalApi.ServerFarm.Job.ListDebugSessionsRequest.order:type_name -> InternalApi.ServerFarm.Job.ListDebugSessionsRequest.Order - 1, // 12: InternalApi.ServerFarm.Job.ListDebugSessionsRequest.debug_session_states:type_name -> InternalApi.ServerFarm.Job.Job.State - 0, // 13: InternalApi.ServerFarm.Job.ListDebugSessionsRequest.types:type_name -> InternalApi.ServerFarm.Job.DebugSessionType - 30, // 14: InternalApi.ServerFarm.Job.ListDebugSessionsResponse.status:type_name -> InternalApi.ResponseStatus - 13, // 15: InternalApi.ServerFarm.Job.ListDebugSessionsResponse.debug_sessions:type_name -> InternalApi.ServerFarm.Job.DebugSession - 7, // 16: InternalApi.ServerFarm.Job.DebugSession.debug_session:type_name -> InternalApi.ServerFarm.Job.Job - 0, // 17: InternalApi.ServerFarm.Job.DebugSession.type:type_name -> InternalApi.ServerFarm.Job.DebugSessionType - 7, // 18: InternalApi.ServerFarm.Job.DebugSession.debugged_job:type_name -> InternalApi.ServerFarm.Job.Job - 1, // 19: InternalApi.ServerFarm.Job.CountRequest.job_states:type_name -> InternalApi.ServerFarm.Job.Job.State - 31, // 20: InternalApi.ServerFarm.Job.CountRequest.finished_at_gte:type_name -> google.protobuf.Timestamp - 31, // 21: InternalApi.ServerFarm.Job.CountRequest.finished_at_lte:type_name -> google.protobuf.Timestamp - 30, // 22: InternalApi.ServerFarm.Job.CountResponse.status:type_name -> InternalApi.ResponseStatus - 1, // 23: InternalApi.ServerFarm.Job.CountByStateRequest.states:type_name -> InternalApi.ServerFarm.Job.Job.State - 29, // 24: InternalApi.ServerFarm.Job.CountByStateResponse.counts:type_name -> InternalApi.ServerFarm.Job.CountByStateResponse.CountByState - 5, // 25: InternalApi.ServerFarm.Job.TotalExecutionTimeRequest.interval:type_name -> InternalApi.ServerFarm.Job.TotalExecutionTimeRequest.Interval - 30, // 26: InternalApi.ServerFarm.Job.StopResponse.status:type_name -> InternalApi.ResponseStatus - 31, // 27: InternalApi.ServerFarm.Job.Job.Timeline.created_at:type_name -> google.protobuf.Timestamp - 31, // 28: InternalApi.ServerFarm.Job.Job.Timeline.enqueued_at:type_name -> google.protobuf.Timestamp - 31, // 29: InternalApi.ServerFarm.Job.Job.Timeline.started_at:type_name -> google.protobuf.Timestamp - 31, // 30: InternalApi.ServerFarm.Job.Job.Timeline.finished_at:type_name -> google.protobuf.Timestamp - 31, // 31: InternalApi.ServerFarm.Job.Job.Timeline.execution_started_at:type_name -> google.protobuf.Timestamp - 31, // 32: InternalApi.ServerFarm.Job.Job.Timeline.execution_finished_at:type_name -> google.protobuf.Timestamp - 1, // 33: InternalApi.ServerFarm.Job.CountByStateResponse.CountByState.state:type_name -> InternalApi.ServerFarm.Job.Job.State - 6, // 34: InternalApi.ServerFarm.Job.JobService.Describe:input_type -> InternalApi.ServerFarm.Job.DescribeRequest - 9, // 35: InternalApi.ServerFarm.Job.JobService.List:input_type -> InternalApi.ServerFarm.Job.ListRequest - 11, // 36: InternalApi.ServerFarm.Job.JobService.ListDebugSessions:input_type -> InternalApi.ServerFarm.Job.ListDebugSessionsRequest - 14, // 37: InternalApi.ServerFarm.Job.JobService.Count:input_type -> InternalApi.ServerFarm.Job.CountRequest - 16, // 38: InternalApi.ServerFarm.Job.JobService.CountByState:input_type -> InternalApi.ServerFarm.Job.CountByStateRequest - 20, // 39: InternalApi.ServerFarm.Job.JobService.Stop:input_type -> InternalApi.ServerFarm.Job.StopRequest - 18, // 40: InternalApi.ServerFarm.Job.JobService.TotalExecutionTime:input_type -> InternalApi.ServerFarm.Job.TotalExecutionTimeRequest - 22, // 41: InternalApi.ServerFarm.Job.JobService.GetAgentPayload:input_type -> InternalApi.ServerFarm.Job.GetAgentPayloadRequest - 24, // 42: InternalApi.ServerFarm.Job.JobService.CanDebug:input_type -> InternalApi.ServerFarm.Job.CanDebugRequest - 26, // 43: InternalApi.ServerFarm.Job.JobService.CanAttach:input_type -> InternalApi.ServerFarm.Job.CanAttachRequest - 8, // 44: InternalApi.ServerFarm.Job.JobService.Describe:output_type -> InternalApi.ServerFarm.Job.DescribeResponse - 10, // 45: InternalApi.ServerFarm.Job.JobService.List:output_type -> InternalApi.ServerFarm.Job.ListResponse - 12, // 46: InternalApi.ServerFarm.Job.JobService.ListDebugSessions:output_type -> InternalApi.ServerFarm.Job.ListDebugSessionsResponse - 15, // 47: InternalApi.ServerFarm.Job.JobService.Count:output_type -> InternalApi.ServerFarm.Job.CountResponse - 17, // 48: InternalApi.ServerFarm.Job.JobService.CountByState:output_type -> InternalApi.ServerFarm.Job.CountByStateResponse - 21, // 49: InternalApi.ServerFarm.Job.JobService.Stop:output_type -> InternalApi.ServerFarm.Job.StopResponse - 19, // 50: InternalApi.ServerFarm.Job.JobService.TotalExecutionTime:output_type -> InternalApi.ServerFarm.Job.TotalExecutionTimeResponse - 23, // 51: InternalApi.ServerFarm.Job.JobService.GetAgentPayload:output_type -> InternalApi.ServerFarm.Job.GetAgentPayloadResponse - 25, // 52: InternalApi.ServerFarm.Job.JobService.CanDebug:output_type -> InternalApi.ServerFarm.Job.CanDebugResponse - 27, // 53: InternalApi.ServerFarm.Job.JobService.CanAttach:output_type -> InternalApi.ServerFarm.Job.CanAttachResponse - 44, // [44:54] is the sub-list for method output_type - 34, // [34:44] is the sub-list for method input_type - 34, // [34:34] is the sub-list for extension type_name - 34, // [34:34] is the sub-list for extension extendee - 0, // [0:34] is the sub-list for field type_name + 41, // 7: InternalApi.ServerFarm.Job.ListRequest.finished_at_gt:type_name -> google.protobuf.Timestamp + 41, // 8: InternalApi.ServerFarm.Job.ListRequest.finished_at_gte:type_name -> google.protobuf.Timestamp + 41, // 9: InternalApi.ServerFarm.Job.ListRequest.created_at_gte:type_name -> google.protobuf.Timestamp + 41, // 10: InternalApi.ServerFarm.Job.ListRequest.created_at_lte:type_name -> google.protobuf.Timestamp + 40, // 11: InternalApi.ServerFarm.Job.ListResponse.status:type_name -> InternalApi.ResponseStatus + 7, // 12: InternalApi.ServerFarm.Job.ListResponse.jobs:type_name -> InternalApi.ServerFarm.Job.Job + 4, // 13: InternalApi.ServerFarm.Job.ListDebugSessionsRequest.order:type_name -> InternalApi.ServerFarm.Job.ListDebugSessionsRequest.Order + 1, // 14: InternalApi.ServerFarm.Job.ListDebugSessionsRequest.debug_session_states:type_name -> InternalApi.ServerFarm.Job.Job.State + 0, // 15: InternalApi.ServerFarm.Job.ListDebugSessionsRequest.types:type_name -> InternalApi.ServerFarm.Job.DebugSessionType + 40, // 16: InternalApi.ServerFarm.Job.ListDebugSessionsResponse.status:type_name -> InternalApi.ResponseStatus + 13, // 17: InternalApi.ServerFarm.Job.ListDebugSessionsResponse.debug_sessions:type_name -> InternalApi.ServerFarm.Job.DebugSession + 7, // 18: InternalApi.ServerFarm.Job.DebugSession.debug_session:type_name -> InternalApi.ServerFarm.Job.Job + 0, // 19: InternalApi.ServerFarm.Job.DebugSession.type:type_name -> InternalApi.ServerFarm.Job.DebugSessionType + 7, // 20: InternalApi.ServerFarm.Job.DebugSession.debugged_job:type_name -> InternalApi.ServerFarm.Job.Job + 1, // 21: InternalApi.ServerFarm.Job.CountRequest.job_states:type_name -> InternalApi.ServerFarm.Job.Job.State + 41, // 22: InternalApi.ServerFarm.Job.CountRequest.finished_at_gte:type_name -> google.protobuf.Timestamp + 41, // 23: InternalApi.ServerFarm.Job.CountRequest.finished_at_lte:type_name -> google.protobuf.Timestamp + 40, // 24: InternalApi.ServerFarm.Job.CountResponse.status:type_name -> InternalApi.ResponseStatus + 1, // 25: InternalApi.ServerFarm.Job.CountByStateRequest.states:type_name -> InternalApi.ServerFarm.Job.Job.State + 32, // 26: InternalApi.ServerFarm.Job.CountByStateResponse.counts:type_name -> InternalApi.ServerFarm.Job.CountByStateResponse.CountByState + 5, // 27: InternalApi.ServerFarm.Job.TotalExecutionTimeRequest.interval:type_name -> InternalApi.ServerFarm.Job.TotalExecutionTimeRequest.Interval + 40, // 28: InternalApi.ServerFarm.Job.StopResponse.status:type_name -> InternalApi.ResponseStatus + 30, // 29: InternalApi.ServerFarm.Job.CreateRequest.job_spec:type_name -> InternalApi.ServerFarm.Job.JobSpec + 40, // 30: InternalApi.ServerFarm.Job.CreateResponse.status:type_name -> InternalApi.ResponseStatus + 7, // 31: InternalApi.ServerFarm.Job.CreateResponse.job:type_name -> InternalApi.ServerFarm.Job.Job + 33, // 32: InternalApi.ServerFarm.Job.JobSpec.agent:type_name -> InternalApi.ServerFarm.Job.JobSpec.Agent + 34, // 33: InternalApi.ServerFarm.Job.JobSpec.secrets:type_name -> InternalApi.ServerFarm.Job.JobSpec.Secret + 35, // 34: InternalApi.ServerFarm.Job.JobSpec.env_vars:type_name -> InternalApi.ServerFarm.Job.JobSpec.EnvVar + 36, // 35: InternalApi.ServerFarm.Job.JobSpec.files:type_name -> InternalApi.ServerFarm.Job.JobSpec.File + 41, // 36: InternalApi.ServerFarm.Job.Job.Timeline.created_at:type_name -> google.protobuf.Timestamp + 41, // 37: InternalApi.ServerFarm.Job.Job.Timeline.enqueued_at:type_name -> google.protobuf.Timestamp + 41, // 38: InternalApi.ServerFarm.Job.Job.Timeline.started_at:type_name -> google.protobuf.Timestamp + 41, // 39: InternalApi.ServerFarm.Job.Job.Timeline.finished_at:type_name -> google.protobuf.Timestamp + 41, // 40: InternalApi.ServerFarm.Job.Job.Timeline.execution_started_at:type_name -> google.protobuf.Timestamp + 41, // 41: InternalApi.ServerFarm.Job.Job.Timeline.execution_finished_at:type_name -> google.protobuf.Timestamp + 1, // 42: InternalApi.ServerFarm.Job.CountByStateResponse.CountByState.state:type_name -> InternalApi.ServerFarm.Job.Job.State + 37, // 43: InternalApi.ServerFarm.Job.JobSpec.Agent.machine:type_name -> InternalApi.ServerFarm.Job.JobSpec.Agent.Machine + 38, // 44: InternalApi.ServerFarm.Job.JobSpec.Agent.containers:type_name -> InternalApi.ServerFarm.Job.JobSpec.Agent.Container + 39, // 45: InternalApi.ServerFarm.Job.JobSpec.Agent.image_pull_secrets:type_name -> InternalApi.ServerFarm.Job.JobSpec.Agent.ImagePullSecret + 35, // 46: InternalApi.ServerFarm.Job.JobSpec.Agent.Container.env_vars:type_name -> InternalApi.ServerFarm.Job.JobSpec.EnvVar + 34, // 47: InternalApi.ServerFarm.Job.JobSpec.Agent.Container.secrets:type_name -> InternalApi.ServerFarm.Job.JobSpec.Secret + 6, // 48: InternalApi.ServerFarm.Job.JobService.Describe:input_type -> InternalApi.ServerFarm.Job.DescribeRequest + 9, // 49: InternalApi.ServerFarm.Job.JobService.List:input_type -> InternalApi.ServerFarm.Job.ListRequest + 11, // 50: InternalApi.ServerFarm.Job.JobService.ListDebugSessions:input_type -> InternalApi.ServerFarm.Job.ListDebugSessionsRequest + 14, // 51: InternalApi.ServerFarm.Job.JobService.Count:input_type -> InternalApi.ServerFarm.Job.CountRequest + 16, // 52: InternalApi.ServerFarm.Job.JobService.CountByState:input_type -> InternalApi.ServerFarm.Job.CountByStateRequest + 20, // 53: InternalApi.ServerFarm.Job.JobService.Stop:input_type -> InternalApi.ServerFarm.Job.StopRequest + 18, // 54: InternalApi.ServerFarm.Job.JobService.TotalExecutionTime:input_type -> InternalApi.ServerFarm.Job.TotalExecutionTimeRequest + 22, // 55: InternalApi.ServerFarm.Job.JobService.GetAgentPayload:input_type -> InternalApi.ServerFarm.Job.GetAgentPayloadRequest + 24, // 56: InternalApi.ServerFarm.Job.JobService.CanDebug:input_type -> InternalApi.ServerFarm.Job.CanDebugRequest + 26, // 57: InternalApi.ServerFarm.Job.JobService.CanAttach:input_type -> InternalApi.ServerFarm.Job.CanAttachRequest + 28, // 58: InternalApi.ServerFarm.Job.JobService.Create:input_type -> InternalApi.ServerFarm.Job.CreateRequest + 8, // 59: InternalApi.ServerFarm.Job.JobService.Describe:output_type -> InternalApi.ServerFarm.Job.DescribeResponse + 10, // 60: InternalApi.ServerFarm.Job.JobService.List:output_type -> InternalApi.ServerFarm.Job.ListResponse + 12, // 61: InternalApi.ServerFarm.Job.JobService.ListDebugSessions:output_type -> InternalApi.ServerFarm.Job.ListDebugSessionsResponse + 15, // 62: InternalApi.ServerFarm.Job.JobService.Count:output_type -> InternalApi.ServerFarm.Job.CountResponse + 17, // 63: InternalApi.ServerFarm.Job.JobService.CountByState:output_type -> InternalApi.ServerFarm.Job.CountByStateResponse + 21, // 64: InternalApi.ServerFarm.Job.JobService.Stop:output_type -> InternalApi.ServerFarm.Job.StopResponse + 19, // 65: InternalApi.ServerFarm.Job.JobService.TotalExecutionTime:output_type -> InternalApi.ServerFarm.Job.TotalExecutionTimeResponse + 23, // 66: InternalApi.ServerFarm.Job.JobService.GetAgentPayload:output_type -> InternalApi.ServerFarm.Job.GetAgentPayloadResponse + 25, // 67: InternalApi.ServerFarm.Job.JobService.CanDebug:output_type -> InternalApi.ServerFarm.Job.CanDebugResponse + 27, // 68: InternalApi.ServerFarm.Job.JobService.CanAttach:output_type -> InternalApi.ServerFarm.Job.CanAttachResponse + 29, // 69: InternalApi.ServerFarm.Job.JobService.Create:output_type -> InternalApi.ServerFarm.Job.CreateResponse + 59, // [59:70] is the sub-list for method output_type + 48, // [48:59] is the sub-list for method input_type + 48, // [48:48] is the sub-list for extension type_name + 48, // [48:48] is the sub-list for extension extendee + 0, // [0:48] is the sub-list for field type_name } func init() { file_server_farm_job_proto_init() } @@ -2860,7 +3763,7 @@ func file_server_farm_job_proto_init() { } } file_server_farm_job_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Job_Timeline); i { + switch v := v.(*CreateRequest); i { case 0: return &v.state case 1: @@ -2872,6 +3775,42 @@ func file_server_farm_job_proto_init() { } } file_server_farm_job_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Job_Timeline); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountByStateResponse_CountByState); i { case 0: return &v.state @@ -2883,6 +3822,90 @@ func file_server_farm_job_proto_init() { return nil } } + file_server_farm_job_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_Agent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_Secret); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_EnvVar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_File); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_Agent_Machine); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_Agent_Container); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_farm_job_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobSpec_Agent_ImagePullSecret); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2890,7 +3913,7 @@ func file_server_farm_job_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_server_farm_job_proto_rawDesc, NumEnums: 6, - NumMessages: 24, + NumMessages: 34, NumExtensions: 0, NumServices: 1, }, diff --git a/ee/velocity/pkg/protos/server_farm.job/server_farm.job_grpc.pb.go b/ee/velocity/pkg/protos/server_farm.job/server_farm.job_grpc.pb.go index dd938a554..bb3d84473 100644 --- a/ee/velocity/pkg/protos/server_farm.job/server_farm.job_grpc.pb.go +++ b/ee/velocity/pkg/protos/server_farm.job/server_farm.job_grpc.pb.go @@ -29,6 +29,7 @@ const ( JobService_GetAgentPayload_FullMethodName = "/InternalApi.ServerFarm.Job.JobService/GetAgentPayload" JobService_CanDebug_FullMethodName = "/InternalApi.ServerFarm.Job.JobService/CanDebug" JobService_CanAttach_FullMethodName = "/InternalApi.ServerFarm.Job.JobService/CanAttach" + JobService_Create_FullMethodName = "/InternalApi.ServerFarm.Job.JobService/Create" ) // JobServiceClient is the client API for JobService service. @@ -71,6 +72,8 @@ type JobServiceClient interface { CanDebug(ctx context.Context, in *CanDebugRequest, opts ...grpc.CallOption) (*CanDebugResponse, error) // Returns information if a user can attach a job. CanAttach(ctx context.Context, in *CanAttachRequest, opts ...grpc.CallOption) (*CanAttachResponse, error) + // Create a new job based on the given job spec. + Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) } type jobServiceClient struct { @@ -171,6 +174,15 @@ func (c *jobServiceClient) CanAttach(ctx context.Context, in *CanAttachRequest, return out, nil } +func (c *jobServiceClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) { + out := new(CreateResponse) + err := c.cc.Invoke(ctx, JobService_Create_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // JobServiceServer is the server API for JobService service. // All implementations should embed UnimplementedJobServiceServer // for forward compatibility @@ -211,6 +223,8 @@ type JobServiceServer interface { CanDebug(context.Context, *CanDebugRequest) (*CanDebugResponse, error) // Returns information if a user can attach a job. CanAttach(context.Context, *CanAttachRequest) (*CanAttachResponse, error) + // Create a new job based on the given job spec. + Create(context.Context, *CreateRequest) (*CreateResponse, error) } // UnimplementedJobServiceServer should be embedded to have forward compatible implementations. @@ -247,6 +261,9 @@ func (UnimplementedJobServiceServer) CanDebug(context.Context, *CanDebugRequest) func (UnimplementedJobServiceServer) CanAttach(context.Context, *CanAttachRequest) (*CanAttachResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CanAttach not implemented") } +func (UnimplementedJobServiceServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Create not implemented") +} // UnsafeJobServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to JobServiceServer will @@ -439,6 +456,24 @@ func _JobService_CanAttach_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _JobService_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(JobServiceServer).Create(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: JobService_Create_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(JobServiceServer).Create(ctx, req.(*CreateRequest)) + } + return interceptor(ctx, in, info, handler) +} + // JobService_ServiceDesc is the grpc.ServiceDesc for JobService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -486,6 +521,10 @@ var JobService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CanAttach", Handler: _JobService_CanAttach_Handler, }, + { + MethodName: "Create", + Handler: _JobService_Create_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "server_farm.job.proto", diff --git a/ee/velocity/pkg/protos/server_farm.mq.job_state_exchange/server_farm.mq.job_state_exchange.pb.go b/ee/velocity/pkg/protos/server_farm.mq.job_state_exchange/server_farm.mq.job_state_exchange.pb.go index 9058ff261..9b39e8e51 100644 --- a/ee/velocity/pkg/protos/server_farm.mq.job_state_exchange/server_farm.mq.job_state_exchange.pb.go +++ b/ee/velocity/pkg/protos/server_farm.mq.job_state_exchange/server_farm.mq.job_state_exchange.pb.go @@ -198,12 +198,13 @@ var file_server_farm_mq_job_state_exchange_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x66, 0x48, 0x6f, 0x73, 0x74, 0x65, - 0x64, 0x42, 0x4f, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x2e, 0x6d, 0x71, 0x2e, - 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x42, 0x58, 0x5a, 0x56, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, + 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x2e, 0x6d, 0x71, 0x2e, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/ee/velocity/pkg/protos/status/status.pb.go b/ee/velocity/pkg/protos/status/status.pb.go index b698486e3..7f3b95c27 100644 --- a/ee/velocity/pkg/protos/status/status.pb.go +++ b/ee/velocity/pkg/protos/status/status.pb.go @@ -100,10 +100,11 @@ var file_include_internal_api_status_proto_rawDesc = []byte{ 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, - 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, + 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ee/velocity/pkg/protos/user/user.pb.go b/ee/velocity/pkg/protos/user/user.pb.go index faf869fda..3d3b0f4fc 100644 --- a/ee/velocity/pkg/protos/user/user.pb.go +++ b/ee/velocity/pkg/protos/user/user.pb.go @@ -666,14 +666,15 @@ func (x *DescribeRequest) GetUserId() string { // - created_at = [required] date of creation a user. // - avatar_url = [required] url to user avatar. // - user_id = [required] UUID of the user. -// - github_token = [required] GitHub token of a user - use RepositoryScopes instead. -// - github_scope = [deprecated] GitHub access scope - use RepositoryScopes instead. -// - github_uid = [deprecated] GitHub uid of a user - use RepositoryScopes instead. +// - github_token = [required] GitHub token of a user - use repository_providers instead. +// - github_scope = [deprecated] GitHub access scope - use repository_providers instead. +// - github_uid = [deprecated] GitHub uid of a user - use repository_providers instead. // - name = [required] User's name used for presentation purposes. -// - github_login = [deprecated] GitHub login of a user - use RepositoryScopes instead. +// - github_login = [deprecated] GitHub login of a user - use repository_providers instead. // - company = [required] The company associated with the user. // - blocked_at = [required] the timestamp of user blocking -// - repository_scopes = [required] List of repository scopes availabe for user +// - repository_scopes = [deprecated] List of repository scopes availabe for user - use repository_providers instead. +// - repository_providers = [required] List of repository providers availabe for user type DescribeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1340,120 +1341,6 @@ func (x *RegenerateTokenResponse) GetApiToken() string { return "" } -// Referer call request -// -// - user_id = [required] The user id -type RefererRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` -} - -func (x *RefererRequest) Reset() { - *x = RefererRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RefererRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RefererRequest) ProtoMessage() {} - -func (x *RefererRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[16] - 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 RefererRequest.ProtoReflect.Descriptor instead. -func (*RefererRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{16} -} - -func (x *RefererRequest) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -// Referer call response -type RefererResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - EntryUrl string `protobuf:"bytes,2,opt,name=entry_url,json=entryUrl,proto3" json:"entry_url,omitempty"` - HttpReferer string `protobuf:"bytes,3,opt,name=http_referer,json=httpReferer,proto3" json:"http_referer,omitempty"` -} - -func (x *RefererResponse) Reset() { - *x = RefererResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RefererResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RefererResponse) ProtoMessage() {} - -func (x *RefererResponse) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[17] - 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 RefererResponse.ProtoReflect.Descriptor instead. -func (*RefererResponse) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{17} -} - -func (x *RefererResponse) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *RefererResponse) GetEntryUrl() string { - if x != nil { - return x.EntryUrl - } - return "" -} - -func (x *RefererResponse) GetHttpReferer() string { - if x != nil { - return x.HttpReferer - } - return "" -} - // CheckGithubToken call request type CheckGithubTokenRequest struct { state protoimpl.MessageState @@ -1466,7 +1353,7 @@ type CheckGithubTokenRequest struct { func (x *CheckGithubTokenRequest) Reset() { *x = CheckGithubTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[18] + mi := &file_user_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1479,7 +1366,7 @@ func (x *CheckGithubTokenRequest) String() string { func (*CheckGithubTokenRequest) ProtoMessage() {} func (x *CheckGithubTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[18] + mi := &file_user_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1492,7 +1379,7 @@ func (x *CheckGithubTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckGithubTokenRequest.ProtoReflect.Descriptor instead. func (*CheckGithubTokenRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{18} + return file_user_proto_rawDescGZIP(), []int{16} } func (x *CheckGithubTokenRequest) GetUserId() string { @@ -1521,7 +1408,7 @@ type CheckGithubTokenResponse struct { func (x *CheckGithubTokenResponse) Reset() { *x = CheckGithubTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[19] + mi := &file_user_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1534,7 +1421,7 @@ func (x *CheckGithubTokenResponse) String() string { func (*CheckGithubTokenResponse) ProtoMessage() {} func (x *CheckGithubTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[19] + mi := &file_user_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1547,7 +1434,7 @@ func (x *CheckGithubTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckGithubTokenResponse.ProtoReflect.Descriptor instead. func (*CheckGithubTokenResponse) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{19} + return file_user_proto_rawDescGZIP(), []int{17} } func (x *CheckGithubTokenResponse) GetRevoked() bool { @@ -1583,7 +1470,7 @@ type BlockAccountRequest struct { func (x *BlockAccountRequest) Reset() { *x = BlockAccountRequest{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[20] + mi := &file_user_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1596,7 +1483,7 @@ func (x *BlockAccountRequest) String() string { func (*BlockAccountRequest) ProtoMessage() {} func (x *BlockAccountRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[20] + mi := &file_user_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1609,7 +1496,7 @@ func (x *BlockAccountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockAccountRequest.ProtoReflect.Descriptor instead. func (*BlockAccountRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{20} + return file_user_proto_rawDescGZIP(), []int{18} } func (x *BlockAccountRequest) GetUserId() string { @@ -1631,7 +1518,7 @@ type UnblockAccountRequest struct { func (x *UnblockAccountRequest) Reset() { *x = UnblockAccountRequest{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[21] + mi := &file_user_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1644,7 +1531,7 @@ func (x *UnblockAccountRequest) String() string { func (*UnblockAccountRequest) ProtoMessage() {} func (x *UnblockAccountRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[21] + mi := &file_user_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1657,7 +1544,7 @@ func (x *UnblockAccountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnblockAccountRequest.ProtoReflect.Descriptor instead. func (*UnblockAccountRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{21} + return file_user_proto_rawDescGZIP(), []int{19} } func (x *UnblockAccountRequest) GetUserId() string { @@ -1679,7 +1566,7 @@ type GetRepositoryTokenRequest struct { func (x *GetRepositoryTokenRequest) Reset() { *x = GetRepositoryTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[22] + mi := &file_user_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1692,7 +1579,7 @@ func (x *GetRepositoryTokenRequest) String() string { func (*GetRepositoryTokenRequest) ProtoMessage() {} func (x *GetRepositoryTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[22] + mi := &file_user_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1705,7 +1592,7 @@ func (x *GetRepositoryTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryTokenRequest.ProtoReflect.Descriptor instead. func (*GetRepositoryTokenRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{22} + return file_user_proto_rawDescGZIP(), []int{20} } func (x *GetRepositoryTokenRequest) GetUserId() string { @@ -1734,7 +1621,7 @@ type GetRepositoryTokenResponse struct { func (x *GetRepositoryTokenResponse) Reset() { *x = GetRepositoryTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[23] + mi := &file_user_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1747,7 +1634,7 @@ func (x *GetRepositoryTokenResponse) String() string { func (*GetRepositoryTokenResponse) ProtoMessage() {} func (x *GetRepositoryTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[23] + mi := &file_user_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1760,7 +1647,7 @@ func (x *GetRepositoryTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryTokenResponse.ProtoReflect.Descriptor instead. func (*GetRepositoryTokenResponse) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{23} + return file_user_proto_rawDescGZIP(), []int{21} } func (x *GetRepositoryTokenResponse) GetToken() string { @@ -1788,7 +1675,7 @@ type DescribeByRepositoryProviderRequest struct { func (x *DescribeByRepositoryProviderRequest) Reset() { *x = DescribeByRepositoryProviderRequest{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[24] + mi := &file_user_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1801,7 +1688,7 @@ func (x *DescribeByRepositoryProviderRequest) String() string { func (*DescribeByRepositoryProviderRequest) ProtoMessage() {} func (x *DescribeByRepositoryProviderRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[24] + mi := &file_user_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1814,7 +1701,7 @@ func (x *DescribeByRepositoryProviderRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use DescribeByRepositoryProviderRequest.ProtoReflect.Descriptor instead. func (*DescribeByRepositoryProviderRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{24} + return file_user_proto_rawDescGZIP(), []int{22} } func (x *DescribeByRepositoryProviderRequest) GetProvider() *RepositoryProvider { @@ -1824,6 +1711,53 @@ func (x *DescribeByRepositoryProviderRequest) GetProvider() *RepositoryProvider return nil } +type DescribeByEmailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` +} + +func (x *DescribeByEmailRequest) Reset() { + *x = DescribeByEmailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DescribeByEmailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DescribeByEmailRequest) ProtoMessage() {} + +func (x *DescribeByEmailRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[23] + 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 DescribeByEmailRequest.ProtoReflect.Descriptor instead. +func (*DescribeByEmailRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{23} +} + +func (x *DescribeByEmailRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + type RefreshRepositoryProviderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1836,7 +1770,7 @@ type RefreshRepositoryProviderRequest struct { func (x *RefreshRepositoryProviderRequest) Reset() { *x = RefreshRepositoryProviderRequest{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[25] + mi := &file_user_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1849,7 +1783,7 @@ func (x *RefreshRepositoryProviderRequest) String() string { func (*RefreshRepositoryProviderRequest) ProtoMessage() {} func (x *RefreshRepositoryProviderRequest) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[25] + mi := &file_user_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1862,7 +1796,7 @@ func (x *RefreshRepositoryProviderRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshRepositoryProviderRequest.ProtoReflect.Descriptor instead. func (*RefreshRepositoryProviderRequest) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{25} + return file_user_proto_rawDescGZIP(), []int{24} } func (x *RefreshRepositoryProviderRequest) GetUserId() string { @@ -1891,7 +1825,7 @@ type RefreshRepositoryProviderResponse struct { func (x *RefreshRepositoryProviderResponse) Reset() { *x = RefreshRepositoryProviderResponse{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[26] + mi := &file_user_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1904,7 +1838,7 @@ func (x *RefreshRepositoryProviderResponse) String() string { func (*RefreshRepositoryProviderResponse) ProtoMessage() {} func (x *RefreshRepositoryProviderResponse) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[26] + mi := &file_user_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1917,7 +1851,7 @@ func (x *RefreshRepositoryProviderResponse) ProtoReflect() protoreflect.Message // Deprecated: Use RefreshRepositoryProviderResponse.ProtoReflect.Descriptor instead. func (*RefreshRepositoryProviderResponse) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{26} + return file_user_proto_rawDescGZIP(), []int{25} } func (x *RefreshRepositoryProviderResponse) GetUserId() string { @@ -1934,6 +1868,92 @@ func (x *RefreshRepositoryProviderResponse) GetRepositoryProvider() *RepositoryP return nil } +// Create call CreateRequest +// fields +// - email = [required] The user's email address +// - name = [required] The user's display name +// - password = [optional] The user's password +// - repository_providers = [optional] List of repository providers for the user - will be always created with email scope +// - skip_password_change = [optional] The user will not be asked to change the password on the first login. Default is false. +type CreateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` + RepositoryProviders []*RepositoryProvider `protobuf:"bytes,4,rep,name=repository_providers,json=repositoryProviders,proto3" json:"repository_providers,omitempty"` + SkipPasswordChange bool `protobuf:"varint,5,opt,name=skip_password_change,json=skipPasswordChange,proto3" json:"skip_password_change,omitempty"` +} + +func (x *CreateRequest) Reset() { + *x = CreateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRequest) ProtoMessage() {} + +func (x *CreateRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[26] + 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 CreateRequest.ProtoReflect.Descriptor instead. +func (*CreateRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{26} +} + +func (x *CreateRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *CreateRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *CreateRequest) GetRepositoryProviders() []*RepositoryProvider { + if x != nil { + return x.RepositoryProviders + } + return nil +} + +func (x *CreateRequest) GetSkipPasswordChange() bool { + if x != nil { + return x.SkipPasswordChange + } + return false +} + // - id = user UUID // - avatar_url = Url to user avatar. // - github_uid = GitHub uid of a user. @@ -2284,69 +2304,6 @@ func (x *UserUpdated) GetTimestamp() *timestamp.Timestamp { return nil } -type UserRefererCreated struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - EntryUrl string `protobuf:"bytes,2,opt,name=entry_url,json=entryUrl,proto3" json:"entry_url,omitempty"` - HttpReferer string `protobuf:"bytes,3,opt,name=http_referer,json=httpReferer,proto3" json:"http_referer,omitempty"` -} - -func (x *UserRefererCreated) Reset() { - *x = UserRefererCreated{} - if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserRefererCreated) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserRefererCreated) ProtoMessage() {} - -func (x *UserRefererCreated) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[31] - 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 UserRefererCreated.ProtoReflect.Descriptor instead. -func (*UserRefererCreated) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{31} -} - -func (x *UserRefererCreated) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *UserRefererCreated) GetEntryUrl() string { - if x != nil { - return x.EntryUrl - } - return "" -} - -func (x *UserRefererCreated) GetHttpReferer() string { - if x != nil { - return x.HttpReferer - } - return "" -} - type UserJoinedOrganization struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2360,7 +2317,7 @@ type UserJoinedOrganization struct { func (x *UserJoinedOrganization) Reset() { *x = UserJoinedOrganization{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[32] + mi := &file_user_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2373,7 +2330,7 @@ func (x *UserJoinedOrganization) String() string { func (*UserJoinedOrganization) ProtoMessage() {} func (x *UserJoinedOrganization) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[32] + mi := &file_user_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2386,7 +2343,7 @@ func (x *UserJoinedOrganization) ProtoReflect() protoreflect.Message { // Deprecated: Use UserJoinedOrganization.ProtoReflect.Descriptor instead. func (*UserJoinedOrganization) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{32} + return file_user_proto_rawDescGZIP(), []int{31} } func (x *UserJoinedOrganization) GetUserId() string { @@ -2423,7 +2380,7 @@ type UserLeftOrganization struct { func (x *UserLeftOrganization) Reset() { *x = UserLeftOrganization{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[33] + mi := &file_user_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2436,7 +2393,7 @@ func (x *UserLeftOrganization) String() string { func (*UserLeftOrganization) ProtoMessage() {} func (x *UserLeftOrganization) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[33] + mi := &file_user_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2449,7 +2406,7 @@ func (x *UserLeftOrganization) ProtoReflect() protoreflect.Message { // Deprecated: Use UserLeftOrganization.ProtoReflect.Descriptor instead. func (*UserLeftOrganization) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{33} + return file_user_proto_rawDescGZIP(), []int{32} } func (x *UserLeftOrganization) GetUserId() string { @@ -2486,7 +2443,7 @@ type MemberInvited struct { func (x *MemberInvited) Reset() { *x = MemberInvited{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[34] + mi := &file_user_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2499,7 +2456,7 @@ func (x *MemberInvited) String() string { func (*MemberInvited) ProtoMessage() {} func (x *MemberInvited) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[34] + mi := &file_user_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2512,7 +2469,7 @@ func (x *MemberInvited) ProtoReflect() protoreflect.Message { // Deprecated: Use MemberInvited.ProtoReflect.Descriptor instead. func (*MemberInvited) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{34} + return file_user_proto_rawDescGZIP(), []int{33} } func (x *MemberInvited) GetGithubUsername() string { @@ -2552,7 +2509,7 @@ type ActiveOwner struct { func (x *ActiveOwner) Reset() { *x = ActiveOwner{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[35] + mi := &file_user_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2565,7 +2522,7 @@ func (x *ActiveOwner) String() string { func (*ActiveOwner) ProtoMessage() {} func (x *ActiveOwner) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[35] + mi := &file_user_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2578,7 +2535,7 @@ func (x *ActiveOwner) ProtoReflect() protoreflect.Message { // Deprecated: Use ActiveOwner.ProtoReflect.Descriptor instead. func (*ActiveOwner) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{35} + return file_user_proto_rawDescGZIP(), []int{34} } func (x *ActiveOwner) GetUserId() string { @@ -2611,7 +2568,7 @@ type InactiveOwner struct { func (x *InactiveOwner) Reset() { *x = InactiveOwner{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[36] + mi := &file_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2624,7 +2581,7 @@ func (x *InactiveOwner) String() string { func (*InactiveOwner) ProtoMessage() {} func (x *InactiveOwner) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[36] + mi := &file_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2637,7 +2594,7 @@ func (x *InactiveOwner) ProtoReflect() protoreflect.Message { // Deprecated: Use InactiveOwner.ProtoReflect.Descriptor instead. func (*InactiveOwner) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{36} + return file_user_proto_rawDescGZIP(), []int{35} } func (x *InactiveOwner) GetUserId() string { @@ -2670,7 +2627,7 @@ type WorkEmailAdded struct { func (x *WorkEmailAdded) Reset() { *x = WorkEmailAdded{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[37] + mi := &file_user_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2683,7 +2640,7 @@ func (x *WorkEmailAdded) String() string { func (*WorkEmailAdded) ProtoMessage() {} func (x *WorkEmailAdded) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[37] + mi := &file_user_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2696,7 +2653,7 @@ func (x *WorkEmailAdded) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkEmailAdded.ProtoReflect.Descriptor instead. func (*WorkEmailAdded) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{37} + return file_user_proto_rawDescGZIP(), []int{36} } func (x *WorkEmailAdded) GetUserId() string { @@ -2741,7 +2698,7 @@ type FavoriteCreated struct { func (x *FavoriteCreated) Reset() { *x = FavoriteCreated{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[38] + mi := &file_user_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2754,7 +2711,7 @@ func (x *FavoriteCreated) String() string { func (*FavoriteCreated) ProtoMessage() {} func (x *FavoriteCreated) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[38] + mi := &file_user_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2767,7 +2724,7 @@ func (x *FavoriteCreated) ProtoReflect() protoreflect.Message { // Deprecated: Use FavoriteCreated.ProtoReflect.Descriptor instead. func (*FavoriteCreated) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{38} + return file_user_proto_rawDescGZIP(), []int{37} } func (x *FavoriteCreated) GetFavorite() *Favorite { @@ -2798,7 +2755,7 @@ type FavoriteDeleted struct { func (x *FavoriteDeleted) Reset() { *x = FavoriteDeleted{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[39] + mi := &file_user_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2811,7 +2768,7 @@ func (x *FavoriteDeleted) String() string { func (*FavoriteDeleted) ProtoMessage() {} func (x *FavoriteDeleted) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[39] + mi := &file_user_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2824,7 +2781,7 @@ func (x *FavoriteDeleted) ProtoReflect() protoreflect.Message { // Deprecated: Use FavoriteDeleted.ProtoReflect.Descriptor instead. func (*FavoriteDeleted) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{39} + return file_user_proto_rawDescGZIP(), []int{38} } func (x *FavoriteDeleted) GetFavorite() *Favorite { @@ -2854,7 +2811,7 @@ type RepositoryScopes_RepositoryScope struct { func (x *RepositoryScopes_RepositoryScope) Reset() { *x = RepositoryScopes_RepositoryScope{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[40] + mi := &file_user_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2867,7 +2824,7 @@ func (x *RepositoryScopes_RepositoryScope) String() string { func (*RepositoryScopes_RepositoryScope) ProtoMessage() {} func (x *RepositoryScopes_RepositoryScope) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[40] + mi := &file_user_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3074,142 +3031,151 @@ var file_user_proto_rawDesc = []byte{ 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x61, 0x70, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x22, 0x6a, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, - 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, 0x22, - 0x32, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x2e, - 0x0a, 0x13, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, - 0x0a, 0x15, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x61, 0x70, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x32, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x18, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x2e, 0x0a, 0x13, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x15, 0x55, 0x6e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x22, 0x92, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x12, 0x5c, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6d, + 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x67, 0x0a, + 0x23, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x2e, 0x0a, 0x16, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x7a, 0x0a, 0x20, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x21, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x55, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x57, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6b, 0x69, + 0x70, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x6b, 0x69, 0x70, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x9f, 0x05, 0x0a, 0x04, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x75, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x23, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x42, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x57, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7a, 0x0a, - 0x20, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x21, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x12, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x9f, 0x05, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x39, 0x0a, - 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x57, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x0a, - 0x76, 0x69, 0x73, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x76, 0x69, - 0x73, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x72, 0x67, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x22, 0x27, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, - 0x54, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x4b, 0x54, 0x41, 0x10, - 0x01, 0x22, 0x7a, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x64, 0x65, 0x72, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x22, 0x60, 0x0a, - 0x0b, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6f, 0x72, + 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x72, 0x67, 0x55, 0x73, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x06, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, + 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x64, 0x22, 0x27, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x45, + 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x4b, 0x54, 0x41, 0x10, 0x01, 0x22, 0x7a, 0x0a, + 0x0b, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, - 0x60, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0x6d, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, - 0x0c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x22, 0x82, 0x01, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x4f, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x22, 0x60, 0x0a, 0x0b, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x60, 0x0a, 0x0b, 0x55, + 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x82, 0x01, + 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, @@ -3217,161 +3183,158 @@ var file_user_proto_rawDesc = []byte{ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x65, - 0x66, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x38, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0x60, 0x0a, 0x0b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x62, 0x0a, 0x0d, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x9d, 0x01, 0x0a, 0x0e, 0x57, - 0x6f, 0x72, 0x6b, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6e, 0x65, 0x77, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x46, - 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x36, - 0x0a, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x52, 0x08, 0x66, 0x61, - 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xe7, 0x0b, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x12, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x60, 0x0a, 0x0b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0x62, 0x0a, 0x0d, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x9d, 0x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, + 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, + 0x77, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, + 0x65, 0x77, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x46, 0x61, 0x76, 0x6f, + 0x72, 0x69, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x66, + 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x52, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, + 0x69, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x83, 0x01, + 0x0a, 0x0f, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, + 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x52, + 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x32, 0xaf, 0x0c, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, + 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x1c, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x1c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x42, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x42, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, - 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5b, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x77, - 0x6e, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x66, 0x0a, - 0x0f, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x76, - 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, - 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, - 0x6f, 0x72, 0x69, 0x74, 0x65, 0x1a, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x1f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x66, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x28, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, + 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x1a, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, + 0x69, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x61, 0x76, + 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, - 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x61, 0x76, 0x6f, 0x72, - 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, - 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x1a, - 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x07, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x65, 0x1a, 0x1a, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x69, 0x0a, + 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x29, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x6f, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x2b, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x6f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, - 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x19, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x19, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, + 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, + 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3387,7 +3350,7 @@ func file_user_proto_rawDescGZIP() []byte { } var file_user_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_user_proto_goTypes = []interface{}{ (Favorite_Kind)(0), // 0: InternalApi.User.Favorite.Kind (DescribeResponse_RepoScope)(0), // 1: InternalApi.User.DescribeResponse.RepoScope @@ -3411,118 +3374,120 @@ var file_user_proto_goTypes = []interface{}{ (*DeleteWithOwnedOrgsRequest)(nil), // 19: InternalApi.User.DeleteWithOwnedOrgsRequest (*RegenerateTokenRequest)(nil), // 20: InternalApi.User.RegenerateTokenRequest (*RegenerateTokenResponse)(nil), // 21: InternalApi.User.RegenerateTokenResponse - (*RefererRequest)(nil), // 22: InternalApi.User.RefererRequest - (*RefererResponse)(nil), // 23: InternalApi.User.RefererResponse - (*CheckGithubTokenRequest)(nil), // 24: InternalApi.User.CheckGithubTokenRequest - (*CheckGithubTokenResponse)(nil), // 25: InternalApi.User.CheckGithubTokenResponse - (*BlockAccountRequest)(nil), // 26: InternalApi.User.BlockAccountRequest - (*UnblockAccountRequest)(nil), // 27: InternalApi.User.UnblockAccountRequest - (*GetRepositoryTokenRequest)(nil), // 28: InternalApi.User.GetRepositoryTokenRequest - (*GetRepositoryTokenResponse)(nil), // 29: InternalApi.User.GetRepositoryTokenResponse - (*DescribeByRepositoryProviderRequest)(nil), // 30: InternalApi.User.DescribeByRepositoryProviderRequest - (*RefreshRepositoryProviderRequest)(nil), // 31: InternalApi.User.RefreshRepositoryProviderRequest - (*RefreshRepositoryProviderResponse)(nil), // 32: InternalApi.User.RefreshRepositoryProviderResponse + (*CheckGithubTokenRequest)(nil), // 22: InternalApi.User.CheckGithubTokenRequest + (*CheckGithubTokenResponse)(nil), // 23: InternalApi.User.CheckGithubTokenResponse + (*BlockAccountRequest)(nil), // 24: InternalApi.User.BlockAccountRequest + (*UnblockAccountRequest)(nil), // 25: InternalApi.User.UnblockAccountRequest + (*GetRepositoryTokenRequest)(nil), // 26: InternalApi.User.GetRepositoryTokenRequest + (*GetRepositoryTokenResponse)(nil), // 27: InternalApi.User.GetRepositoryTokenResponse + (*DescribeByRepositoryProviderRequest)(nil), // 28: InternalApi.User.DescribeByRepositoryProviderRequest + (*DescribeByEmailRequest)(nil), // 29: InternalApi.User.DescribeByEmailRequest + (*RefreshRepositoryProviderRequest)(nil), // 30: InternalApi.User.RefreshRepositoryProviderRequest + (*RefreshRepositoryProviderResponse)(nil), // 31: InternalApi.User.RefreshRepositoryProviderResponse + (*CreateRequest)(nil), // 32: InternalApi.User.CreateRequest (*User)(nil), // 33: InternalApi.User.User (*UserCreated)(nil), // 34: InternalApi.User.UserCreated (*UserDeleted)(nil), // 35: InternalApi.User.UserDeleted (*UserUpdated)(nil), // 36: InternalApi.User.UserUpdated - (*UserRefererCreated)(nil), // 37: InternalApi.User.UserRefererCreated - (*UserJoinedOrganization)(nil), // 38: InternalApi.User.UserJoinedOrganization - (*UserLeftOrganization)(nil), // 39: InternalApi.User.UserLeftOrganization - (*MemberInvited)(nil), // 40: InternalApi.User.MemberInvited - (*ActiveOwner)(nil), // 41: InternalApi.User.ActiveOwner - (*InactiveOwner)(nil), // 42: InternalApi.User.InactiveOwner - (*WorkEmailAdded)(nil), // 43: InternalApi.User.WorkEmailAdded - (*FavoriteCreated)(nil), // 44: InternalApi.User.FavoriteCreated - (*FavoriteDeleted)(nil), // 45: InternalApi.User.FavoriteDeleted - (*RepositoryScopes_RepositoryScope)(nil), // 46: InternalApi.User.RepositoryScopes.RepositoryScope - (*response_status.ResponseStatus)(nil), // 47: InternalApi.ResponseStatus - (*timestamp.Timestamp)(nil), // 48: google.protobuf.Timestamp - (*status.Status)(nil), // 49: google.rpc.Status - (repository_integrator.IntegrationType)(0), // 50: InternalApi.RepositoryIntegrator.IntegrationType + (*UserJoinedOrganization)(nil), // 37: InternalApi.User.UserJoinedOrganization + (*UserLeftOrganization)(nil), // 38: InternalApi.User.UserLeftOrganization + (*MemberInvited)(nil), // 39: InternalApi.User.MemberInvited + (*ActiveOwner)(nil), // 40: InternalApi.User.ActiveOwner + (*InactiveOwner)(nil), // 41: InternalApi.User.InactiveOwner + (*WorkEmailAdded)(nil), // 42: InternalApi.User.WorkEmailAdded + (*FavoriteCreated)(nil), // 43: InternalApi.User.FavoriteCreated + (*FavoriteDeleted)(nil), // 44: InternalApi.User.FavoriteDeleted + (*RepositoryScopes_RepositoryScope)(nil), // 45: InternalApi.User.RepositoryScopes.RepositoryScope + (*response_status.ResponseStatus)(nil), // 46: InternalApi.ResponseStatus + (*timestamp.Timestamp)(nil), // 47: google.protobuf.Timestamp + (*status.Status)(nil), // 48: google.rpc.Status + (repository_integrator.IntegrationType)(0), // 49: InternalApi.RepositoryIntegrator.IntegrationType } var file_user_proto_depIdxs = []int32{ 8, // 0: InternalApi.User.ListFavoritesResponse.favorites:type_name -> InternalApi.User.Favorite 0, // 1: InternalApi.User.Favorite.kind:type_name -> InternalApi.User.Favorite.Kind 33, // 2: InternalApi.User.DescribeManyResponse.users:type_name -> InternalApi.User.User - 47, // 3: InternalApi.User.DescribeManyResponse.status:type_name -> InternalApi.ResponseStatus - 47, // 4: InternalApi.User.DescribeResponse.status:type_name -> InternalApi.ResponseStatus - 48, // 5: InternalApi.User.DescribeResponse.created_at:type_name -> google.protobuf.Timestamp + 46, // 3: InternalApi.User.DescribeManyResponse.status:type_name -> InternalApi.ResponseStatus + 46, // 4: InternalApi.User.DescribeResponse.status:type_name -> InternalApi.ResponseStatus + 47, // 5: InternalApi.User.DescribeResponse.created_at:type_name -> google.protobuf.Timestamp 1, // 6: InternalApi.User.DescribeResponse.github_scope:type_name -> InternalApi.User.DescribeResponse.RepoScope - 48, // 7: InternalApi.User.DescribeResponse.blocked_at:type_name -> google.protobuf.Timestamp + 47, // 7: InternalApi.User.DescribeResponse.blocked_at:type_name -> google.protobuf.Timestamp 14, // 8: InternalApi.User.DescribeResponse.repository_scopes:type_name -> InternalApi.User.RepositoryScopes 13, // 9: InternalApi.User.DescribeResponse.repository_providers:type_name -> InternalApi.User.RepositoryProvider 33, // 10: InternalApi.User.DescribeResponse.user:type_name -> InternalApi.User.User 2, // 11: InternalApi.User.RepositoryProvider.type:type_name -> InternalApi.User.RepositoryProvider.Type 3, // 12: InternalApi.User.RepositoryProvider.scope:type_name -> InternalApi.User.RepositoryProvider.Scope - 46, // 13: InternalApi.User.RepositoryScopes.github:type_name -> InternalApi.User.RepositoryScopes.RepositoryScope - 46, // 14: InternalApi.User.RepositoryScopes.bitbucket:type_name -> InternalApi.User.RepositoryScopes.RepositoryScope + 45, // 13: InternalApi.User.RepositoryScopes.github:type_name -> InternalApi.User.RepositoryScopes.RepositoryScope + 45, // 14: InternalApi.User.RepositoryScopes.bitbucket:type_name -> InternalApi.User.RepositoryScopes.RepositoryScope 33, // 15: InternalApi.User.UpdateRequest.user:type_name -> InternalApi.User.User - 49, // 16: InternalApi.User.UpdateResponse.status:type_name -> google.rpc.Status + 48, // 16: InternalApi.User.UpdateResponse.status:type_name -> google.rpc.Status 33, // 17: InternalApi.User.UpdateResponse.user:type_name -> InternalApi.User.User 33, // 18: InternalApi.User.SearchUsersResponse.users:type_name -> InternalApi.User.User - 49, // 19: InternalApi.User.RegenerateTokenResponse.status:type_name -> google.rpc.Status - 50, // 20: InternalApi.User.GetRepositoryTokenRequest.integration_type:type_name -> InternalApi.RepositoryIntegrator.IntegrationType - 48, // 21: InternalApi.User.GetRepositoryTokenResponse.expires_at:type_name -> google.protobuf.Timestamp + 48, // 19: InternalApi.User.RegenerateTokenResponse.status:type_name -> google.rpc.Status + 49, // 20: InternalApi.User.GetRepositoryTokenRequest.integration_type:type_name -> InternalApi.RepositoryIntegrator.IntegrationType + 47, // 21: InternalApi.User.GetRepositoryTokenResponse.expires_at:type_name -> google.protobuf.Timestamp 13, // 22: InternalApi.User.DescribeByRepositoryProviderRequest.provider:type_name -> InternalApi.User.RepositoryProvider 2, // 23: InternalApi.User.RefreshRepositoryProviderRequest.type:type_name -> InternalApi.User.RepositoryProvider.Type 13, // 24: InternalApi.User.RefreshRepositoryProviderResponse.repository_provider:type_name -> InternalApi.User.RepositoryProvider - 48, // 25: InternalApi.User.User.blocked_at:type_name -> google.protobuf.Timestamp - 48, // 26: InternalApi.User.User.created_at:type_name -> google.protobuf.Timestamp - 13, // 27: InternalApi.User.User.repository_providers:type_name -> InternalApi.User.RepositoryProvider - 48, // 28: InternalApi.User.User.visited_at:type_name -> google.protobuf.Timestamp - 5, // 29: InternalApi.User.User.creation_source:type_name -> InternalApi.User.User.CreationSource - 48, // 30: InternalApi.User.UserCreated.timestamp:type_name -> google.protobuf.Timestamp - 48, // 31: InternalApi.User.UserDeleted.timestamp:type_name -> google.protobuf.Timestamp - 48, // 32: InternalApi.User.UserUpdated.timestamp:type_name -> google.protobuf.Timestamp - 48, // 33: InternalApi.User.UserJoinedOrganization.timestamp:type_name -> google.protobuf.Timestamp - 48, // 34: InternalApi.User.UserLeftOrganization.timestamp:type_name -> google.protobuf.Timestamp - 48, // 35: InternalApi.User.MemberInvited.timestamp:type_name -> google.protobuf.Timestamp - 48, // 36: InternalApi.User.ActiveOwner.timestamp:type_name -> google.protobuf.Timestamp - 48, // 37: InternalApi.User.InactiveOwner.timestamp:type_name -> google.protobuf.Timestamp - 48, // 38: InternalApi.User.WorkEmailAdded.timestamp:type_name -> google.protobuf.Timestamp - 8, // 39: InternalApi.User.FavoriteCreated.favorite:type_name -> InternalApi.User.Favorite - 48, // 40: InternalApi.User.FavoriteCreated.timestamp:type_name -> google.protobuf.Timestamp - 8, // 41: InternalApi.User.FavoriteDeleted.favorite:type_name -> InternalApi.User.Favorite - 48, // 42: InternalApi.User.FavoriteDeleted.timestamp:type_name -> google.protobuf.Timestamp - 4, // 43: InternalApi.User.RepositoryScopes.RepositoryScope.scope:type_name -> InternalApi.User.RepositoryScopes.RepositoryScope.Scope - 11, // 44: InternalApi.User.UserService.Describe:input_type -> InternalApi.User.DescribeRequest - 30, // 45: InternalApi.User.UserService.DescribeByRepositoryProvider:input_type -> InternalApi.User.DescribeByRepositoryProviderRequest - 17, // 46: InternalApi.User.UserService.SearchUsers:input_type -> InternalApi.User.SearchUsersRequest - 9, // 47: InternalApi.User.UserService.DescribeMany:input_type -> InternalApi.User.DescribeManyRequest - 15, // 48: InternalApi.User.UserService.Update:input_type -> InternalApi.User.UpdateRequest - 19, // 49: InternalApi.User.UserService.DeleteWithOwnedOrgs:input_type -> InternalApi.User.DeleteWithOwnedOrgsRequest - 20, // 50: InternalApi.User.UserService.RegenerateToken:input_type -> InternalApi.User.RegenerateTokenRequest - 6, // 51: InternalApi.User.UserService.ListFavorites:input_type -> InternalApi.User.ListFavoritesRequest - 8, // 52: InternalApi.User.UserService.CreateFavorite:input_type -> InternalApi.User.Favorite - 8, // 53: InternalApi.User.UserService.DeleteFavorite:input_type -> InternalApi.User.Favorite - 22, // 54: InternalApi.User.UserService.Referer:input_type -> InternalApi.User.RefererRequest - 24, // 55: InternalApi.User.UserService.CheckGithubToken:input_type -> InternalApi.User.CheckGithubTokenRequest - 26, // 56: InternalApi.User.UserService.BlockAccount:input_type -> InternalApi.User.BlockAccountRequest - 27, // 57: InternalApi.User.UserService.UnblockAccount:input_type -> InternalApi.User.UnblockAccountRequest - 28, // 58: InternalApi.User.UserService.GetRepositoryToken:input_type -> InternalApi.User.GetRepositoryTokenRequest - 31, // 59: InternalApi.User.UserService.RefreshRepositoryProvider:input_type -> InternalApi.User.RefreshRepositoryProviderRequest - 12, // 60: InternalApi.User.UserService.Describe:output_type -> InternalApi.User.DescribeResponse - 33, // 61: InternalApi.User.UserService.DescribeByRepositoryProvider:output_type -> InternalApi.User.User - 18, // 62: InternalApi.User.UserService.SearchUsers:output_type -> InternalApi.User.SearchUsersResponse - 10, // 63: InternalApi.User.UserService.DescribeMany:output_type -> InternalApi.User.DescribeManyResponse - 16, // 64: InternalApi.User.UserService.Update:output_type -> InternalApi.User.UpdateResponse - 33, // 65: InternalApi.User.UserService.DeleteWithOwnedOrgs:output_type -> InternalApi.User.User - 21, // 66: InternalApi.User.UserService.RegenerateToken:output_type -> InternalApi.User.RegenerateTokenResponse - 7, // 67: InternalApi.User.UserService.ListFavorites:output_type -> InternalApi.User.ListFavoritesResponse - 8, // 68: InternalApi.User.UserService.CreateFavorite:output_type -> InternalApi.User.Favorite - 8, // 69: InternalApi.User.UserService.DeleteFavorite:output_type -> InternalApi.User.Favorite - 23, // 70: InternalApi.User.UserService.Referer:output_type -> InternalApi.User.RefererResponse - 25, // 71: InternalApi.User.UserService.CheckGithubToken:output_type -> InternalApi.User.CheckGithubTokenResponse - 33, // 72: InternalApi.User.UserService.BlockAccount:output_type -> InternalApi.User.User - 33, // 73: InternalApi.User.UserService.UnblockAccount:output_type -> InternalApi.User.User - 29, // 74: InternalApi.User.UserService.GetRepositoryToken:output_type -> InternalApi.User.GetRepositoryTokenResponse - 32, // 75: InternalApi.User.UserService.RefreshRepositoryProvider:output_type -> InternalApi.User.RefreshRepositoryProviderResponse - 60, // [60:76] is the sub-list for method output_type - 44, // [44:60] is the sub-list for method input_type - 44, // [44:44] is the sub-list for extension type_name - 44, // [44:44] is the sub-list for extension extendee - 0, // [0:44] is the sub-list for field type_name + 13, // 25: InternalApi.User.CreateRequest.repository_providers:type_name -> InternalApi.User.RepositoryProvider + 47, // 26: InternalApi.User.User.blocked_at:type_name -> google.protobuf.Timestamp + 47, // 27: InternalApi.User.User.created_at:type_name -> google.protobuf.Timestamp + 13, // 28: InternalApi.User.User.repository_providers:type_name -> InternalApi.User.RepositoryProvider + 47, // 29: InternalApi.User.User.visited_at:type_name -> google.protobuf.Timestamp + 5, // 30: InternalApi.User.User.creation_source:type_name -> InternalApi.User.User.CreationSource + 47, // 31: InternalApi.User.UserCreated.timestamp:type_name -> google.protobuf.Timestamp + 47, // 32: InternalApi.User.UserDeleted.timestamp:type_name -> google.protobuf.Timestamp + 47, // 33: InternalApi.User.UserUpdated.timestamp:type_name -> google.protobuf.Timestamp + 47, // 34: InternalApi.User.UserJoinedOrganization.timestamp:type_name -> google.protobuf.Timestamp + 47, // 35: InternalApi.User.UserLeftOrganization.timestamp:type_name -> google.protobuf.Timestamp + 47, // 36: InternalApi.User.MemberInvited.timestamp:type_name -> google.protobuf.Timestamp + 47, // 37: InternalApi.User.ActiveOwner.timestamp:type_name -> google.protobuf.Timestamp + 47, // 38: InternalApi.User.InactiveOwner.timestamp:type_name -> google.protobuf.Timestamp + 47, // 39: InternalApi.User.WorkEmailAdded.timestamp:type_name -> google.protobuf.Timestamp + 8, // 40: InternalApi.User.FavoriteCreated.favorite:type_name -> InternalApi.User.Favorite + 47, // 41: InternalApi.User.FavoriteCreated.timestamp:type_name -> google.protobuf.Timestamp + 8, // 42: InternalApi.User.FavoriteDeleted.favorite:type_name -> InternalApi.User.Favorite + 47, // 43: InternalApi.User.FavoriteDeleted.timestamp:type_name -> google.protobuf.Timestamp + 4, // 44: InternalApi.User.RepositoryScopes.RepositoryScope.scope:type_name -> InternalApi.User.RepositoryScopes.RepositoryScope.Scope + 11, // 45: InternalApi.User.UserService.Describe:input_type -> InternalApi.User.DescribeRequest + 28, // 46: InternalApi.User.UserService.DescribeByRepositoryProvider:input_type -> InternalApi.User.DescribeByRepositoryProviderRequest + 29, // 47: InternalApi.User.UserService.DescribeByEmail:input_type -> InternalApi.User.DescribeByEmailRequest + 17, // 48: InternalApi.User.UserService.SearchUsers:input_type -> InternalApi.User.SearchUsersRequest + 9, // 49: InternalApi.User.UserService.DescribeMany:input_type -> InternalApi.User.DescribeManyRequest + 15, // 50: InternalApi.User.UserService.Update:input_type -> InternalApi.User.UpdateRequest + 19, // 51: InternalApi.User.UserService.DeleteWithOwnedOrgs:input_type -> InternalApi.User.DeleteWithOwnedOrgsRequest + 20, // 52: InternalApi.User.UserService.RegenerateToken:input_type -> InternalApi.User.RegenerateTokenRequest + 6, // 53: InternalApi.User.UserService.ListFavorites:input_type -> InternalApi.User.ListFavoritesRequest + 8, // 54: InternalApi.User.UserService.CreateFavorite:input_type -> InternalApi.User.Favorite + 8, // 55: InternalApi.User.UserService.DeleteFavorite:input_type -> InternalApi.User.Favorite + 22, // 56: InternalApi.User.UserService.CheckGithubToken:input_type -> InternalApi.User.CheckGithubTokenRequest + 24, // 57: InternalApi.User.UserService.BlockAccount:input_type -> InternalApi.User.BlockAccountRequest + 25, // 58: InternalApi.User.UserService.UnblockAccount:input_type -> InternalApi.User.UnblockAccountRequest + 26, // 59: InternalApi.User.UserService.GetRepositoryToken:input_type -> InternalApi.User.GetRepositoryTokenRequest + 30, // 60: InternalApi.User.UserService.RefreshRepositoryProvider:input_type -> InternalApi.User.RefreshRepositoryProviderRequest + 32, // 61: InternalApi.User.UserService.Create:input_type -> InternalApi.User.CreateRequest + 12, // 62: InternalApi.User.UserService.Describe:output_type -> InternalApi.User.DescribeResponse + 33, // 63: InternalApi.User.UserService.DescribeByRepositoryProvider:output_type -> InternalApi.User.User + 33, // 64: InternalApi.User.UserService.DescribeByEmail:output_type -> InternalApi.User.User + 18, // 65: InternalApi.User.UserService.SearchUsers:output_type -> InternalApi.User.SearchUsersResponse + 10, // 66: InternalApi.User.UserService.DescribeMany:output_type -> InternalApi.User.DescribeManyResponse + 16, // 67: InternalApi.User.UserService.Update:output_type -> InternalApi.User.UpdateResponse + 33, // 68: InternalApi.User.UserService.DeleteWithOwnedOrgs:output_type -> InternalApi.User.User + 21, // 69: InternalApi.User.UserService.RegenerateToken:output_type -> InternalApi.User.RegenerateTokenResponse + 7, // 70: InternalApi.User.UserService.ListFavorites:output_type -> InternalApi.User.ListFavoritesResponse + 8, // 71: InternalApi.User.UserService.CreateFavorite:output_type -> InternalApi.User.Favorite + 8, // 72: InternalApi.User.UserService.DeleteFavorite:output_type -> InternalApi.User.Favorite + 23, // 73: InternalApi.User.UserService.CheckGithubToken:output_type -> InternalApi.User.CheckGithubTokenResponse + 33, // 74: InternalApi.User.UserService.BlockAccount:output_type -> InternalApi.User.User + 33, // 75: InternalApi.User.UserService.UnblockAccount:output_type -> InternalApi.User.User + 27, // 76: InternalApi.User.UserService.GetRepositoryToken:output_type -> InternalApi.User.GetRepositoryTokenResponse + 31, // 77: InternalApi.User.UserService.RefreshRepositoryProvider:output_type -> InternalApi.User.RefreshRepositoryProviderResponse + 33, // 78: InternalApi.User.UserService.Create:output_type -> InternalApi.User.User + 62, // [62:79] is the sub-list for method output_type + 45, // [45:62] is the sub-list for method input_type + 45, // [45:45] is the sub-list for extension type_name + 45, // [45:45] is the sub-list for extension extendee + 0, // [0:45] is the sub-list for field type_name } func init() { file_user_proto_init() } @@ -3724,7 +3689,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefererRequest); i { + switch v := v.(*CheckGithubTokenRequest); i { case 0: return &v.state case 1: @@ -3736,7 +3701,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefererResponse); i { + switch v := v.(*CheckGithubTokenResponse); i { case 0: return &v.state case 1: @@ -3748,7 +3713,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckGithubTokenRequest); i { + switch v := v.(*BlockAccountRequest); i { case 0: return &v.state case 1: @@ -3760,7 +3725,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckGithubTokenResponse); i { + switch v := v.(*UnblockAccountRequest); i { case 0: return &v.state case 1: @@ -3772,7 +3737,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockAccountRequest); i { + switch v := v.(*GetRepositoryTokenRequest); i { case 0: return &v.state case 1: @@ -3784,7 +3749,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnblockAccountRequest); i { + switch v := v.(*GetRepositoryTokenResponse); i { case 0: return &v.state case 1: @@ -3796,7 +3761,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoryTokenRequest); i { + switch v := v.(*DescribeByRepositoryProviderRequest); i { case 0: return &v.state case 1: @@ -3808,7 +3773,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoryTokenResponse); i { + switch v := v.(*DescribeByEmailRequest); i { case 0: return &v.state case 1: @@ -3820,7 +3785,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeByRepositoryProviderRequest); i { + switch v := v.(*RefreshRepositoryProviderRequest); i { case 0: return &v.state case 1: @@ -3832,7 +3797,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshRepositoryProviderRequest); i { + switch v := v.(*RefreshRepositoryProviderResponse); i { case 0: return &v.state case 1: @@ -3844,7 +3809,7 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshRepositoryProviderResponse); i { + switch v := v.(*CreateRequest); i { case 0: return &v.state case 1: @@ -3904,18 +3869,6 @@ func file_user_proto_init() { } } file_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRefererCreated); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserJoinedOrganization); i { case 0: return &v.state @@ -3927,7 +3880,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserLeftOrganization); i { case 0: return &v.state @@ -3939,7 +3892,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemberInvited); i { case 0: return &v.state @@ -3951,7 +3904,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActiveOwner); i { case 0: return &v.state @@ -3963,7 +3916,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InactiveOwner); i { case 0: return &v.state @@ -3975,7 +3928,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkEmailAdded); i { case 0: return &v.state @@ -3987,7 +3940,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FavoriteCreated); i { case 0: return &v.state @@ -3999,7 +3952,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FavoriteDeleted); i { case 0: return &v.state @@ -4011,7 +3964,7 @@ func file_user_proto_init() { return nil } } - file_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepositoryScopes_RepositoryScope); i { case 0: return &v.state @@ -4030,7 +3983,7 @@ func file_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_proto_rawDesc, NumEnums: 6, - NumMessages: 41, + NumMessages: 40, NumExtensions: 0, NumServices: 1, }, diff --git a/ee/velocity/pkg/protos/user/user_grpc.pb.go b/ee/velocity/pkg/protos/user/user_grpc.pb.go index 672c49879..d42c61546 100644 --- a/ee/velocity/pkg/protos/user/user_grpc.pb.go +++ b/ee/velocity/pkg/protos/user/user_grpc.pb.go @@ -21,6 +21,7 @@ const _ = grpc.SupportPackageIsVersion7 const ( UserService_Describe_FullMethodName = "/InternalApi.User.UserService/Describe" UserService_DescribeByRepositoryProvider_FullMethodName = "/InternalApi.User.UserService/DescribeByRepositoryProvider" + UserService_DescribeByEmail_FullMethodName = "/InternalApi.User.UserService/DescribeByEmail" UserService_SearchUsers_FullMethodName = "/InternalApi.User.UserService/SearchUsers" UserService_DescribeMany_FullMethodName = "/InternalApi.User.UserService/DescribeMany" UserService_Update_FullMethodName = "/InternalApi.User.UserService/Update" @@ -29,12 +30,12 @@ const ( UserService_ListFavorites_FullMethodName = "/InternalApi.User.UserService/ListFavorites" UserService_CreateFavorite_FullMethodName = "/InternalApi.User.UserService/CreateFavorite" UserService_DeleteFavorite_FullMethodName = "/InternalApi.User.UserService/DeleteFavorite" - UserService_Referer_FullMethodName = "/InternalApi.User.UserService/Referer" UserService_CheckGithubToken_FullMethodName = "/InternalApi.User.UserService/CheckGithubToken" UserService_BlockAccount_FullMethodName = "/InternalApi.User.UserService/BlockAccount" UserService_UnblockAccount_FullMethodName = "/InternalApi.User.UserService/UnblockAccount" UserService_GetRepositoryToken_FullMethodName = "/InternalApi.User.UserService/GetRepositoryToken" UserService_RefreshRepositoryProvider_FullMethodName = "/InternalApi.User.UserService/RefreshRepositoryProvider" + UserService_Create_FullMethodName = "/InternalApi.User.UserService/Create" ) // UserServiceClient is the client API for UserService service. @@ -47,6 +48,9 @@ type UserServiceClient interface { // Operation is called to find and describe an existing user based on repository provider id // Operation is synchronous. DescribeByRepositoryProvider(ctx context.Context, in *DescribeByRepositoryProviderRequest, opts ...grpc.CallOption) (*User, error) + // Operation is called to find and describe an existing user based on email address + // Operation is synchronous. + DescribeByEmail(ctx context.Context, in *DescribeByEmailRequest, opts ...grpc.CallOption) (*User, error) // Operation is called to search for users // Operation is synchronous. SearchUsers(ctx context.Context, in *SearchUsersRequest, opts ...grpc.CallOption) (*SearchUsersResponse, error) @@ -71,9 +75,6 @@ type UserServiceClient interface { // Operation is called to delete the favorite record. // Operation is synchronous. DeleteFavorite(ctx context.Context, in *Favorite, opts ...grpc.CallOption) (*Favorite, error) - // Operation is called to describe an refere data for a user. - // Operation is synchronous. - Referer(ctx context.Context, in *RefererRequest, opts ...grpc.CallOption) (*RefererResponse, error) // Operation is called to check the status of an github token. // Operation is synchronous. CheckGithubToken(ctx context.Context, in *CheckGithubTokenRequest, opts ...grpc.CallOption) (*CheckGithubTokenResponse, error) @@ -90,6 +91,9 @@ type UserServiceClient interface { // for a given user and provider type // Operation is synchronous. RefreshRepositoryProvider(ctx context.Context, in *RefreshRepositoryProviderRequest, opts ...grpc.CallOption) (*RefreshRepositoryProviderResponse, error) + // Operation is called create a new user, passing username and name. + // Operation is synchronous. + Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*User, error) } type userServiceClient struct { @@ -118,6 +122,15 @@ func (c *userServiceClient) DescribeByRepositoryProvider(ctx context.Context, in return out, nil } +func (c *userServiceClient) DescribeByEmail(ctx context.Context, in *DescribeByEmailRequest, opts ...grpc.CallOption) (*User, error) { + out := new(User) + err := c.cc.Invoke(ctx, UserService_DescribeByEmail_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *userServiceClient) SearchUsers(ctx context.Context, in *SearchUsersRequest, opts ...grpc.CallOption) (*SearchUsersResponse, error) { out := new(SearchUsersResponse) err := c.cc.Invoke(ctx, UserService_SearchUsers_FullMethodName, in, out, opts...) @@ -190,15 +203,6 @@ func (c *userServiceClient) DeleteFavorite(ctx context.Context, in *Favorite, op return out, nil } -func (c *userServiceClient) Referer(ctx context.Context, in *RefererRequest, opts ...grpc.CallOption) (*RefererResponse, error) { - out := new(RefererResponse) - err := c.cc.Invoke(ctx, UserService_Referer_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *userServiceClient) CheckGithubToken(ctx context.Context, in *CheckGithubTokenRequest, opts ...grpc.CallOption) (*CheckGithubTokenResponse, error) { out := new(CheckGithubTokenResponse) err := c.cc.Invoke(ctx, UserService_CheckGithubToken_FullMethodName, in, out, opts...) @@ -244,6 +248,15 @@ func (c *userServiceClient) RefreshRepositoryProvider(ctx context.Context, in *R return out, nil } +func (c *userServiceClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*User, error) { + out := new(User) + err := c.cc.Invoke(ctx, UserService_Create_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // UserServiceServer is the server API for UserService service. // All implementations should embed UnimplementedUserServiceServer // for forward compatibility @@ -254,6 +267,9 @@ type UserServiceServer interface { // Operation is called to find and describe an existing user based on repository provider id // Operation is synchronous. DescribeByRepositoryProvider(context.Context, *DescribeByRepositoryProviderRequest) (*User, error) + // Operation is called to find and describe an existing user based on email address + // Operation is synchronous. + DescribeByEmail(context.Context, *DescribeByEmailRequest) (*User, error) // Operation is called to search for users // Operation is synchronous. SearchUsers(context.Context, *SearchUsersRequest) (*SearchUsersResponse, error) @@ -278,9 +294,6 @@ type UserServiceServer interface { // Operation is called to delete the favorite record. // Operation is synchronous. DeleteFavorite(context.Context, *Favorite) (*Favorite, error) - // Operation is called to describe an refere data for a user. - // Operation is synchronous. - Referer(context.Context, *RefererRequest) (*RefererResponse, error) // Operation is called to check the status of an github token. // Operation is synchronous. CheckGithubToken(context.Context, *CheckGithubTokenRequest) (*CheckGithubTokenResponse, error) @@ -297,6 +310,9 @@ type UserServiceServer interface { // for a given user and provider type // Operation is synchronous. RefreshRepositoryProvider(context.Context, *RefreshRepositoryProviderRequest) (*RefreshRepositoryProviderResponse, error) + // Operation is called create a new user, passing username and name. + // Operation is synchronous. + Create(context.Context, *CreateRequest) (*User, error) } // UnimplementedUserServiceServer should be embedded to have forward compatible implementations. @@ -309,6 +325,9 @@ func (UnimplementedUserServiceServer) Describe(context.Context, *DescribeRequest func (UnimplementedUserServiceServer) DescribeByRepositoryProvider(context.Context, *DescribeByRepositoryProviderRequest) (*User, error) { return nil, status.Errorf(codes.Unimplemented, "method DescribeByRepositoryProvider not implemented") } +func (UnimplementedUserServiceServer) DescribeByEmail(context.Context, *DescribeByEmailRequest) (*User, error) { + return nil, status.Errorf(codes.Unimplemented, "method DescribeByEmail not implemented") +} func (UnimplementedUserServiceServer) SearchUsers(context.Context, *SearchUsersRequest) (*SearchUsersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchUsers not implemented") } @@ -333,9 +352,6 @@ func (UnimplementedUserServiceServer) CreateFavorite(context.Context, *Favorite) func (UnimplementedUserServiceServer) DeleteFavorite(context.Context, *Favorite) (*Favorite, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteFavorite not implemented") } -func (UnimplementedUserServiceServer) Referer(context.Context, *RefererRequest) (*RefererResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Referer not implemented") -} func (UnimplementedUserServiceServer) CheckGithubToken(context.Context, *CheckGithubTokenRequest) (*CheckGithubTokenResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CheckGithubToken not implemented") } @@ -351,6 +367,9 @@ func (UnimplementedUserServiceServer) GetRepositoryToken(context.Context, *GetRe func (UnimplementedUserServiceServer) RefreshRepositoryProvider(context.Context, *RefreshRepositoryProviderRequest) (*RefreshRepositoryProviderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RefreshRepositoryProvider not implemented") } +func (UnimplementedUserServiceServer) Create(context.Context, *CreateRequest) (*User, error) { + return nil, status.Errorf(codes.Unimplemented, "method Create not implemented") +} // UnsafeUserServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to UserServiceServer will @@ -399,6 +418,24 @@ func _UserService_DescribeByRepositoryProvider_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _UserService_DescribeByEmail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DescribeByEmailRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServiceServer).DescribeByEmail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: UserService_DescribeByEmail_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServiceServer).DescribeByEmail(ctx, req.(*DescribeByEmailRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _UserService_SearchUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SearchUsersRequest) if err := dec(in); err != nil { @@ -543,24 +580,6 @@ func _UserService_DeleteFavorite_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } -func _UserService_Referer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RefererRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).Referer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_Referer_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).Referer(ctx, req.(*RefererRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _UserService_CheckGithubToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CheckGithubTokenRequest) if err := dec(in); err != nil { @@ -651,6 +670,24 @@ func _UserService_RefreshRepositoryProvider_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _UserService_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServiceServer).Create(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: UserService_Create_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServiceServer).Create(ctx, req.(*CreateRequest)) + } + return interceptor(ctx, in, info, handler) +} + // UserService_ServiceDesc is the grpc.ServiceDesc for UserService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -666,6 +703,10 @@ var UserService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DescribeByRepositoryProvider", Handler: _UserService_DescribeByRepositoryProvider_Handler, }, + { + MethodName: "DescribeByEmail", + Handler: _UserService_DescribeByEmail_Handler, + }, { MethodName: "SearchUsers", Handler: _UserService_SearchUsers_Handler, @@ -698,10 +739,6 @@ var UserService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteFavorite", Handler: _UserService_DeleteFavorite_Handler, }, - { - MethodName: "Referer", - Handler: _UserService_Referer_Handler, - }, { MethodName: "CheckGithubToken", Handler: _UserService_CheckGithubToken_Handler, @@ -722,6 +759,10 @@ var UserService_ServiceDesc = grpc.ServiceDesc{ MethodName: "RefreshRepositoryProvider", Handler: _UserService_RefreshRepositoryProvider_Handler, }, + { + MethodName: "Create", + Handler: _UserService_Create_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user.proto", diff --git a/ee/velocity/pkg/protos/velocity/velocity.pb.go b/ee/velocity/pkg/protos/velocity/velocity.pb.go index 4ff19b5b0..519027281 100644 --- a/ee/velocity/pkg/protos/velocity/velocity.pb.go +++ b/ee/velocity/pkg/protos/velocity/velocity.pb.go @@ -5113,11 +5113,11 @@ var file_velocity_proto_rawDesc = []byte{ 0x61, 0x6c, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x46, 0x6c, 0x61, 0x6b, 0x79, 0x54, 0x65, 0x73, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x65, - 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x73, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x6d, + 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, + 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ee/velocity/test/support/fake_projecthub_service.go b/ee/velocity/test/support/fake_projecthub_service.go index aeda013ac..5069d3874 100644 --- a/ee/velocity/test/support/fake_projecthub_service.go +++ b/ee/velocity/test/support/fake_projecthub_service.go @@ -72,3 +72,19 @@ func (f FakeProjectHubServiceServer) GithubAppSwitch(ctx context.Context, in *pb panic("implement me") } + +func (f FakeProjectHubServiceServer) FinishOnboarding(ctx context.Context, in *pb.FinishOnboardingRequest) (*pb.FinishOnboardingResponse, error) { + panic("implement me") +} + +func (f FakeProjectHubServiceServer) ListKeyset(ctx context.Context, in *pb.ListKeysetRequest) (*pb.ListKeysetResponse, error) { + panic("implement me") +} + +func (f FakeProjectHubServiceServer) RegenerateWebhookSecret(ctx context.Context, in *pb.RegenerateWebhookSecretRequest) (*pb.RegenerateWebhookSecretResponse, error) { + panic("implement me") +} + +func (f FakeProjectHubServiceServer) Restore(ctx context.Context, in *pb.RestoreRequest) (*pb.RestoreResponse, error) { + panic("implement me") +} diff --git a/front/assets/js/project_settings/general.js b/front/assets/js/project_settings/general.js index 38cdd7e6d..4c4bfc20a 100644 --- a/front/assets/js/project_settings/general.js +++ b/front/assets/js/project_settings/general.js @@ -6,17 +6,18 @@ export var GeneralSettings = { init: function() { this.settings = $("#build-settings"); - this.registerIntegrationTypeSwitchHandler() - this.registerBuildPauseHandler() - this.registerBranchSwitchHandler() - this.registerBranchWhitelistSwitchHandler() - this.registerTagSwitchHandler() - this.registerTagWhitelistSwitchHandler() - this.registerForkedPRSwitchHandler() - this.registerSecretsSwitchHandler() - this.registerContributorsSwitchHandler() - this.registerVisibilitySwitchHandler() - this.registerOwnerFilter() + this.registerIntegrationTypeSwitchHandler(); + this.registerBuildPauseHandler(); + this.registerBranchSwitchHandler(); + this.registerBranchWhitelistSwitchHandler(); + this.registerTagSwitchHandler(); + this.registerTagWhitelistSwitchHandler(); + this.registerForkedPRSwitchHandler(); + this.registerDraftPRSwitchHandler(); + this.registerSecretsSwitchHandler(); + this.registerContributorsSwitchHandler(); + this.registerVisibilitySwitchHandler(); + this.registerOwnerFilter(); }, registerOwnerFilter() { @@ -142,6 +143,22 @@ export var GeneralSettings = { }) }, + registerDraftPRSwitchHandler() { + if($('input[name="project[build_prs]"][checked]').length == 0) { + $("#draft-pull-request-options").hide(); + } else { + $("#draft-pull-request-options").show(); + } + + this.settings.on("click", "[data-action=draftPRSwitch]", (e) => { + if($(e.currentTarget).prop("checked")) { + $("#draft-pull-request-options").show(); + } else { + $("#draft-pull-request-options").hide(); + } + }) + }, + registerSecretsSwitchHandler() { if($('input[name="project[expose_secrets]"][checked]').val() == "true") { $("#exposed-secrets").show(); diff --git a/front/lib/front/models/project.ex b/front/lib/front/models/project.ex index 7ef3ceee1..64c269210 100644 --- a/front/lib/front/models/project.ex +++ b/front/lib/front/models/project.ex @@ -40,6 +40,7 @@ defmodule Front.Models.Project do field(:tag_whitelist, :string) field(:build_prs, :boolean) field(:build_forked_prs, :boolean) + field(:build_draft_prs, :boolean, default: true) field(:expose_secrets, :boolean) field(:allowed_secrets, :string) field(:filter_contributors, :boolean) @@ -82,6 +83,7 @@ defmodule Front.Models.Project do :build_tags, :build_prs, :build_forked_prs, + :build_draft_prs, :custom_permissions, :allow_debug_empty_session, :allow_debug_default_branch, @@ -236,7 +238,11 @@ defmodule Front.Models.Project do Project.Spec.Repository.new( integration_type: map_integration_type(integration_type), url: repo_url, - run_on: [RunType.value(:TAGS), RunType.value(:BRANCHES)], + run_on: [ + RunType.value(:TAGS), + RunType.value(:BRANCHES), + RunType.value(:DRAFT_PULL_REQUESTS) + ], run_present: {:run, true} ) ) @@ -809,6 +815,8 @@ defmodule Front.Models.Project do :build_prs => project.spec.repository.run_on |> Enum.member?(RunType.value(:PULL_REQUESTS)), :build_forked_prs => project.spec.repository.run_on |> Enum.member?(RunType.value(:FORKED_PULL_REQUESTS)), + :build_draft_prs => + project.spec.repository.run_on |> Enum.member?(RunType.value(:DRAFT_PULL_REQUESTS)), :custom_permissions => project.spec.custom_permissions, :allow_debug_empty_session => project.spec.debug_permissions |> Enum.member?(PermissionType.value(:EMPTY)), @@ -1129,7 +1137,8 @@ defmodule Front.Models.Project do {:TAGS, data.build_tags}, {:BRANCHES, data.build_branches}, {:PULL_REQUESTS, data.build_prs}, - {:FORKED_PULL_REQUESTS, data.build_forked_prs} + {:FORKED_PULL_REQUESTS, data.build_forked_prs}, + {:DRAFT_PULL_REQUESTS, data.build_draft_prs} ] |> Enum.filter(fn e -> elem(e, 1) end) |> Enum.map(fn e -> elem(e, 0) end) diff --git a/front/lib/front_web/templates/project_settings/general/_form.html.eex b/front/lib/front_web/templates/project_settings/general/_form.html.eex index f98de44f0..674700bf1 100644 --- a/front/lib/front_web/templates/project_settings/general/_form.html.eex +++ b/front/lib/front_web/templates/project_settings/general/_form.html.eex @@ -70,9 +70,20 @@ <%= if @project.integration_type in [:GITHUB_APP, :GITHUB_OAUTH_TOKEN] do %>
- <%= checkbox f, :build_prs, disabled: !@permissions["project.general_settings.manage"] %> + <%= checkbox f, :build_prs, disabled: !@permissions["project.general_settings.manage"], data: [action: "draftPRSwitch"] %> <%= label f, :build_prs, "Pull requests", class: "ml2" %>
+
+

Build draft pull requests?

+
+ <%= radio_button f, :build_draft_prs, true, disabled: !@permissions["project.general_settings.manage"] %> + <%= label f, :build_draft_prs, "Yes", class: "ml2", for: "project_build_draft_prs_true" %> +
+
+ <%= radio_button f, :build_draft_prs, false, disabled: !@permissions["project.general_settings.manage"] %> + <%= label f, :build_draft_prs, "No", class: "ml2", for: "project_build_draft_prs_false" %> +
+
<%= checkbox f, :build_forked_prs, disabled: !@permissions["project.general_settings.manage"], data: [action: "forkedPRSwitch"] %> <%= label f, :build_forked_prs, "Forked pull requests", class: "ml2" %> diff --git a/front/lib/internal_api/projecthub.pb.ex b/front/lib/internal_api/projecthub.pb.ex index 097c4b7d7..8cb1ba837 100644 --- a/front/lib/internal_api/projecthub.pb.ex +++ b/front/lib/internal_api/projecthub.pb.ex @@ -332,6 +332,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Scheduler do diff --git a/front/test/front/models/project_test.exs b/front/test/front/models/project_test.exs index e6303fe17..f99bdb283 100644 --- a/front/test/front/models/project_test.exs +++ b/front/test/front/models/project_test.exs @@ -37,6 +37,7 @@ defmodule Front.Models.ProjectTest do :run => true, :build_branches => false, :build_forked_prs => true, + :build_draft_prs => true, :build_prs => false, :build_tags => true, :expose_secrets => true, @@ -228,6 +229,7 @@ defmodule Front.Models.ProjectTest do :run => true, :build_branches => false, :build_forked_prs => true, + :build_draft_prs => true, :build_prs => false, :build_tags => true, :expose_secrets => true, diff --git a/front/test/support/factories.ex b/front/test/support/factories.ex index 2abace91d..77c8927ee 100644 --- a/front/test/support/factories.ex +++ b/front/test/support/factories.ex @@ -322,7 +322,8 @@ defmodule Support.Factories do owner: "ryanmcdermott", run_on: [ InternalApi.Projecthub.Project.Spec.Repository.RunType.value(:TAGS), - InternalApi.Projecthub.Project.Spec.Repository.RunType.value(:FORKED_PULL_REQUESTS) + InternalApi.Projecthub.Project.Spec.Repository.RunType.value(:FORKED_PULL_REQUESTS), + InternalApi.Projecthub.Project.Spec.Repository.RunType.value(:DRAFT_PULL_REQUESTS) ], forked_pull_requests: InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.new( diff --git a/github_hooks/app/models/workflow.rb b/github_hooks/app/models/workflow.rb index c04132811..65e7f6f01 100644 --- a/github_hooks/app/models/workflow.rb +++ b/github_hooks/app/models/workflow.rb @@ -9,6 +9,7 @@ class Workflow < ActiveRecord::Base STATE_DELETING_BRANCH = "deleting_branch" STATE_SKIP_PR = "skip_pr" STATE_SKIP_FORKED_PR = "skip_forked_pr" + STATE_SKIP_DRAFT_PR = "skip_draft_pr" STATE_SKIP_FILTERED_CONTRIBUTOR = "filtered_contributor" STATE_SKIP_TAG = "skip_tag" STATE_WHITELIST_TAG = "whitelist_tag" diff --git a/github_hooks/db/migrate/20250616121000_add_run_on_draft_prs_for_projects.rb b/github_hooks/db/migrate/20250616121000_add_run_on_draft_prs_for_projects.rb new file mode 100644 index 000000000..d49671d88 --- /dev/null +++ b/github_hooks/db/migrate/20250616121000_add_run_on_draft_prs_for_projects.rb @@ -0,0 +1,5 @@ +class AddRunOnDraftPrsForProjects < ActiveRecord::Migration[5.1] + def change + add_column :projects, :build_draft_pr, :boolean, null: false, default: true + end +end diff --git a/github_hooks/fixtures/github_payloads/post_receive_hook_pull_request_draft.json b/github_hooks/fixtures/github_payloads/post_receive_hook_pull_request_draft.json new file mode 100644 index 000000000..1ca292bca --- /dev/null +++ b/github_hooks/fixtures/github_payloads/post_receive_hook_pull_request_draft.json @@ -0,0 +1,412 @@ +{ + "action": "opened", + "number": 1, + "pull_request": { + "draft": true, + "url": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/1", + "id": 12451058, + "html_url": "https://github.com/rastasheep/semaphore-flag/pull/1", + "diff_url": "https://github.com/rastasheep/semaphore-flag/pull/1.diff", + "patch_url": "https://github.com/rastasheep/semaphore-flag/pull/1.patch", + "issue_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/1", + "number": 1, + "state": "open", + "title": "Update README.md", + "user": { + "login": "rastasheep", + "id": 695790, + "avatar_url": "https://gravatar.com/avatar/5de311b7df9cf647aa27a0e6408f0df3?d=https%3A%2F%2Fidenticons.github.com%2F46ef4524c2b0204af60176c104995d4e.png&r=x", + "gravatar_id": "5de311b7df9cf647aa27a0e6408f0df3", + "url": "https://api.github.com/users/rastasheep", + "html_url": "https://github.com/rastasheep", + "followers_url": "https://api.github.com/users/rastasheep/followers", + "following_url": "https://api.github.com/users/rastasheep/following{/other_user}", + "gists_url": "https://api.github.com/users/rastasheep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rastasheep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rastasheep/subscriptions", + "organizations_url": "https://api.github.com/users/rastasheep/orgs", + "repos_url": "https://api.github.com/users/rastasheep/repos", + "events_url": "https://api.github.com/users/rastasheep/events{/privacy}", + "received_events_url": "https://api.github.com/users/rastasheep/received_events", + "type": "User", + "site_admin": false + }, + "body": "", + "created_at": "2014-02-12T06:56:37Z", + "updated_at": "2014-02-12T06:56:37Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": "a1c66cb1d810db656fd667a54a086d25b74e45ca", + "assignee": null, + "milestone": null, + "commits_url": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/1/commits", + "review_comments_url": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/1/comments", + "review_comment_url": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/comments/{number}", + "comments_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/1/comments", + "statuses_url": "https://api.github.com/repos/rastasheep/semaphore-flag/statuses/3a9bf9d09f1f639e6deff46f95cff1296a87ea1a", + "head": { + "label": "renderedtext:master", + "ref": "master", + "sha": "3a9bf9d09f1f639e6deff46f95cff1296a87ea1a", + "user": { + "login": "renderedtext", + "id": 224711, + "avatar_url": "https://gravatar.com/avatar/7c1f2250f5f193cd60d4bc3b569be862?d=https%3A%2F%2Fidenticons.github.com%2F70542cd89f8ea914293a2ea072f7c859.png&r=x", + "gravatar_id": "7c1f2250f5f193cd60d4bc3b569be862", + "url": "https://api.github.com/users/renderedtext", + "html_url": "https://github.com/renderedtext", + "followers_url": "https://api.github.com/users/renderedtext/followers", + "following_url": "https://api.github.com/users/renderedtext/following{/other_user}", + "gists_url": "https://api.github.com/users/renderedtext/gists{/gist_id}", + "starred_url": "https://api.github.com/users/renderedtext/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/renderedtext/subscriptions", + "organizations_url": "https://api.github.com/users/renderedtext/orgs", + "repos_url": "https://api.github.com/users/renderedtext/repos", + "events_url": "https://api.github.com/users/renderedtext/events{/privacy}", + "received_events_url": "https://api.github.com/users/renderedtext/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 16758785, + "name": "semaphore-flag", + "full_name": "renderedtext/semaphore-flag", + "owner": { + "login": "renderedtext", + "id": 224711, + "avatar_url": "https://gravatar.com/avatar/7c1f2250f5f193cd60d4bc3b569be862?d=https%3A%2F%2Fidenticons.github.com%2F70542cd89f8ea914293a2ea072f7c859.png&r=x", + "gravatar_id": "7c1f2250f5f193cd60d4bc3b569be862", + "url": "https://api.github.com/users/renderedtext", + "html_url": "https://github.com/renderedtext", + "followers_url": "https://api.github.com/users/renderedtext/followers", + "following_url": "https://api.github.com/users/renderedtext/following{/other_user}", + "gists_url": "https://api.github.com/users/renderedtext/gists{/gist_id}", + "starred_url": "https://api.github.com/users/renderedtext/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/renderedtext/subscriptions", + "organizations_url": "https://api.github.com/users/renderedtext/orgs", + "repos_url": "https://api.github.com/users/renderedtext/repos", + "events_url": "https://api.github.com/users/renderedtext/events{/privacy}", + "received_events_url": "https://api.github.com/users/renderedtext/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/renderedtext/semaphore-flag", + "description": "Lightweight client for Semaphore CI", + "fork": true, + "url": "https://api.github.com/repos/renderedtext/semaphore-flag", + "forks_url": "https://api.github.com/repos/renderedtext/semaphore-flag/forks", + "keys_url": "https://api.github.com/repos/renderedtext/semaphore-flag/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/renderedtext/semaphore-flag/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/renderedtext/semaphore-flag/teams", + "hooks_url": "https://api.github.com/repos/renderedtext/semaphore-flag/hooks", + "issue_events_url": "https://api.github.com/repos/renderedtext/semaphore-flag/issues/events{/number}", + "events_url": "https://api.github.com/repos/renderedtext/semaphore-flag/events", + "assignees_url": "https://api.github.com/repos/renderedtext/semaphore-flag/assignees{/user}", + "branches_url": "https://api.github.com/repos/renderedtext/semaphore-flag/branches{/branch}", + "tags_url": "https://api.github.com/repos/renderedtext/semaphore-flag/tags", + "blobs_url": "https://api.github.com/repos/renderedtext/semaphore-flag/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/renderedtext/semaphore-flag/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/renderedtext/semaphore-flag/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/renderedtext/semaphore-flag/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/renderedtext/semaphore-flag/statuses/{sha}", + "languages_url": "https://api.github.com/repos/renderedtext/semaphore-flag/languages", + "stargazers_url": "https://api.github.com/repos/renderedtext/semaphore-flag/stargazers", + "contributors_url": "https://api.github.com/repos/renderedtext/semaphore-flag/contributors", + "subscribers_url": "https://api.github.com/repos/renderedtext/semaphore-flag/subscribers", + "subscription_url": "https://api.github.com/repos/renderedtext/semaphore-flag/subscription", + "commits_url": "https://api.github.com/repos/renderedtext/semaphore-flag/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/renderedtext/semaphore-flag/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/renderedtext/semaphore-flag/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/renderedtext/semaphore-flag/issues/comments/{number}", + "contents_url": "https://api.github.com/repos/renderedtext/semaphore-flag/contents/{+path}", + "compare_url": "https://api.github.com/repos/renderedtext/semaphore-flag/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/renderedtext/semaphore-flag/merges", + "archive_url": "https://api.github.com/repos/renderedtext/semaphore-flag/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/renderedtext/semaphore-flag/downloads", + "issues_url": "https://api.github.com/repos/renderedtext/semaphore-flag/issues{/number}", + "pulls_url": "https://api.github.com/repos/renderedtext/semaphore-flag/pulls{/number}", + "milestones_url": "https://api.github.com/repos/renderedtext/semaphore-flag/milestones{/number}", + "notifications_url": "https://api.github.com/repos/renderedtext/semaphore-flag/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/renderedtext/semaphore-flag/labels{/name}", + "releases_url": "https://api.github.com/repos/renderedtext/semaphore-flag/releases{/id}", + "created_at": "2014-02-12T06:55:55Z", + "updated_at": "2014-02-12T06:56:37Z", + "pushed_at": "2014-02-12T06:56:28Z", + "git_url": "git://github.com/renderedtext/semaphore-flag.git", + "ssh_url": "git@github.com:renderedtext/semaphore-flag.git", + "clone_url": "https://github.com/renderedtext/semaphore-flag.git", + "svn_url": "https://github.com/renderedtext/semaphore-flag", + "homepage": null, + "size": 568, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Go", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "master_branch": "master" + } + }, + "base": { + "label": "rastasheep:master", + "ref": "master", + "sha": "1ddd006407eda6ea5ca0e0b538ba7d4914c08611", + "user": { + "login": "rastasheep", + "id": 695790, + "avatar_url": "https://gravatar.com/avatar/5de311b7df9cf647aa27a0e6408f0df3?d=https%3A%2F%2Fidenticons.github.com%2F46ef4524c2b0204af60176c104995d4e.png&r=x", + "gravatar_id": "5de311b7df9cf647aa27a0e6408f0df3", + "url": "https://api.github.com/users/rastasheep", + "html_url": "https://github.com/rastasheep", + "followers_url": "https://api.github.com/users/rastasheep/followers", + "following_url": "https://api.github.com/users/rastasheep/following{/other_user}", + "gists_url": "https://api.github.com/users/rastasheep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rastasheep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rastasheep/subscriptions", + "organizations_url": "https://api.github.com/users/rastasheep/orgs", + "repos_url": "https://api.github.com/users/rastasheep/repos", + "events_url": "https://api.github.com/users/rastasheep/events{/privacy}", + "received_events_url": "https://api.github.com/users/rastasheep/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 16188741, + "name": "semaphore-flag", + "full_name": "rastasheep/semaphore-flag", + "owner": { + "login": "rastasheep", + "id": 695790, + "avatar_url": "https://gravatar.com/avatar/5de311b7df9cf647aa27a0e6408f0df3?d=https%3A%2F%2Fidenticons.github.com%2F46ef4524c2b0204af60176c104995d4e.png&r=x", + "gravatar_id": "5de311b7df9cf647aa27a0e6408f0df3", + "url": "https://api.github.com/users/rastasheep", + "html_url": "https://github.com/rastasheep", + "followers_url": "https://api.github.com/users/rastasheep/followers", + "following_url": "https://api.github.com/users/rastasheep/following{/other_user}", + "gists_url": "https://api.github.com/users/rastasheep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rastasheep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rastasheep/subscriptions", + "organizations_url": "https://api.github.com/users/rastasheep/orgs", + "repos_url": "https://api.github.com/users/rastasheep/repos", + "events_url": "https://api.github.com/users/rastasheep/events{/privacy}", + "received_events_url": "https://api.github.com/users/rastasheep/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rastasheep/semaphore-flag", + "description": "Lightweight client for Semaphore CI", + "fork": false, + "url": "https://api.github.com/repos/rastasheep/semaphore-flag", + "forks_url": "https://api.github.com/repos/rastasheep/semaphore-flag/forks", + "keys_url": "https://api.github.com/repos/rastasheep/semaphore-flag/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rastasheep/semaphore-flag/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rastasheep/semaphore-flag/teams", + "hooks_url": "https://api.github.com/repos/rastasheep/semaphore-flag/hooks", + "issue_events_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/events{/number}", + "events_url": "https://api.github.com/repos/rastasheep/semaphore-flag/events", + "assignees_url": "https://api.github.com/repos/rastasheep/semaphore-flag/assignees{/user}", + "branches_url": "https://api.github.com/repos/rastasheep/semaphore-flag/branches{/branch}", + "tags_url": "https://api.github.com/repos/rastasheep/semaphore-flag/tags", + "blobs_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rastasheep/semaphore-flag/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rastasheep/semaphore-flag/languages", + "stargazers_url": "https://api.github.com/repos/rastasheep/semaphore-flag/stargazers", + "contributors_url": "https://api.github.com/repos/rastasheep/semaphore-flag/contributors", + "subscribers_url": "https://api.github.com/repos/rastasheep/semaphore-flag/subscribers", + "subscription_url": "https://api.github.com/repos/rastasheep/semaphore-flag/subscription", + "commits_url": "https://api.github.com/repos/rastasheep/semaphore-flag/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rastasheep/semaphore-flag/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/comments/{number}", + "contents_url": "https://api.github.com/repos/rastasheep/semaphore-flag/contents/{+path}", + "compare_url": "https://api.github.com/repos/rastasheep/semaphore-flag/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rastasheep/semaphore-flag/merges", + "archive_url": "https://api.github.com/repos/rastasheep/semaphore-flag/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rastasheep/semaphore-flag/downloads", + "issues_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues{/number}", + "pulls_url": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rastasheep/semaphore-flag/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rastasheep/semaphore-flag/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rastasheep/semaphore-flag/labels{/name}", + "releases_url": "https://api.github.com/repos/rastasheep/semaphore-flag/releases{/id}", + "created_at": "2014-01-23T23:05:02Z", + "updated_at": "2014-02-10T09:43:45Z", + "pushed_at": "2014-02-10T09:43:44Z", + "git_url": "git://github.com/rastasheep/semaphore-flag.git", + "ssh_url": "git@github.com:rastasheep/semaphore-flag.git", + "clone_url": "https://github.com/rastasheep/semaphore-flag.git", + "svn_url": "https://github.com/rastasheep/semaphore-flag", + "homepage": null, + "size": 568, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Go", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 1, + "forks": 1, + "open_issues": 1, + "watchers": 0, + "default_branch": "master", + "master_branch": "master" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/1" + }, + "html": { + "href": "https://github.com/rastasheep/semaphore-flag/pull/1" + }, + "issue": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/1" + }, + "comments": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/1/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/1/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/comments/{number}" + }, + "commits": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls/1/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/rastasheep/semaphore-flag/statuses/3a9bf9d09f1f639e6deff46f95cff1296a87ea1a" + } + }, + "merged": false, + "mergeable": true, + "mergeable_state": "clean", + "merged_by": null, + "comments": 0, + "review_comments": 0, + "commits": 1, + "additions": 3, + "deletions": 1, + "changed_files": 1 + }, + "repository": { + "id": 16188741, + "name": "semaphore-flag", + "full_name": "rastasheep/semaphore-flag", + "owner": { + "login": "rastasheep", + "id": 695790, + "avatar_url": "https://gravatar.com/avatar/5de311b7df9cf647aa27a0e6408f0df3?d=https%3A%2F%2Fidenticons.github.com%2F46ef4524c2b0204af60176c104995d4e.png&r=x", + "gravatar_id": "5de311b7df9cf647aa27a0e6408f0df3", + "url": "https://api.github.com/users/rastasheep", + "html_url": "https://github.com/rastasheep", + "followers_url": "https://api.github.com/users/rastasheep/followers", + "following_url": "https://api.github.com/users/rastasheep/following{/other_user}", + "gists_url": "https://api.github.com/users/rastasheep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rastasheep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rastasheep/subscriptions", + "organizations_url": "https://api.github.com/users/rastasheep/orgs", + "repos_url": "https://api.github.com/users/rastasheep/repos", + "events_url": "https://api.github.com/users/rastasheep/events{/privacy}", + "received_events_url": "https://api.github.com/users/rastasheep/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rastasheep/semaphore-flag", + "description": "Lightweight client for Semaphore CI", + "fork": false, + "url": "https://api.github.com/repos/rastasheep/semaphore-flag", + "forks_url": "https://api.github.com/repos/rastasheep/semaphore-flag/forks", + "keys_url": "https://api.github.com/repos/rastasheep/semaphore-flag/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rastasheep/semaphore-flag/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rastasheep/semaphore-flag/teams", + "hooks_url": "https://api.github.com/repos/rastasheep/semaphore-flag/hooks", + "issue_events_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/events{/number}", + "events_url": "https://api.github.com/repos/rastasheep/semaphore-flag/events", + "assignees_url": "https://api.github.com/repos/rastasheep/semaphore-flag/assignees{/user}", + "branches_url": "https://api.github.com/repos/rastasheep/semaphore-flag/branches{/branch}", + "tags_url": "https://api.github.com/repos/rastasheep/semaphore-flag/tags", + "blobs_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rastasheep/semaphore-flag/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rastasheep/semaphore-flag/languages", + "stargazers_url": "https://api.github.com/repos/rastasheep/semaphore-flag/stargazers", + "contributors_url": "https://api.github.com/repos/rastasheep/semaphore-flag/contributors", + "subscribers_url": "https://api.github.com/repos/rastasheep/semaphore-flag/subscribers", + "subscription_url": "https://api.github.com/repos/rastasheep/semaphore-flag/subscription", + "commits_url": "https://api.github.com/repos/rastasheep/semaphore-flag/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rastasheep/semaphore-flag/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rastasheep/semaphore-flag/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues/comments/{number}", + "contents_url": "https://api.github.com/repos/rastasheep/semaphore-flag/contents/{+path}", + "compare_url": "https://api.github.com/repos/rastasheep/semaphore-flag/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rastasheep/semaphore-flag/merges", + "archive_url": "https://api.github.com/repos/rastasheep/semaphore-flag/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rastasheep/semaphore-flag/downloads", + "issues_url": "https://api.github.com/repos/rastasheep/semaphore-flag/issues{/number}", + "pulls_url": "https://api.github.com/repos/rastasheep/semaphore-flag/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rastasheep/semaphore-flag/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rastasheep/semaphore-flag/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rastasheep/semaphore-flag/labels{/name}", + "releases_url": "https://api.github.com/repos/rastasheep/semaphore-flag/releases{/id}", + "created_at": "2014-01-23T23:05:02Z", + "updated_at": "2014-02-10T09:43:45Z", + "pushed_at": "2014-02-10T09:43:44Z", + "git_url": "git://github.com/rastasheep/semaphore-flag.git", + "ssh_url": "git@github.com:rastasheep/semaphore-flag.git", + "clone_url": "https://github.com/rastasheep/semaphore-flag.git", + "svn_url": "https://github.com/rastasheep/semaphore-flag", + "homepage": null, + "size": 568, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Go", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 1, + "forks": 1, + "open_issues": 1, + "watchers": 0, + "default_branch": "master", + "master_branch": "master" + }, + "sender": { + "login": "rastasheep", + "id": 695790, + "avatar_url": "https://gravatar.com/avatar/5de311b7df9cf647aa27a0e6408f0df3?d=https%3A%2F%2Fidenticons.github.com%2F46ef4524c2b0204af60176c104995d4e.png&r=x", + "gravatar_id": "5de311b7df9cf647aa27a0e6408f0df3", + "url": "https://api.github.com/users/rastasheep", + "html_url": "https://github.com/rastasheep", + "followers_url": "https://api.github.com/users/rastasheep/followers", + "following_url": "https://api.github.com/users/rastasheep/following{/other_user}", + "gists_url": "https://api.github.com/users/rastasheep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rastasheep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rastasheep/subscriptions", + "organizations_url": "https://api.github.com/users/rastasheep/orgs", + "repos_url": "https://api.github.com/users/rastasheep/repos", + "events_url": "https://api.github.com/users/rastasheep/events{/privacy}", + "received_events_url": "https://api.github.com/users/rastasheep/received_events", + "type": "User", + "site_admin": false + } +} diff --git a/github_hooks/lib/repo_host/bitbucket/payload.rb b/github_hooks/lib/repo_host/bitbucket/payload.rb index 83d418ac3..81e4c9e45 100644 --- a/github_hooks/lib/repo_host/bitbucket/payload.rb +++ b/github_hooks/lib/repo_host/bitbucket/payload.rb @@ -145,6 +145,10 @@ def repo_url @data.dig("repository", "links", "html", "href") end + def is_draft_pull_request? # rubocop:disable Naming/PredicateName + false + end + alias_method :pull_request?, :is_pull_request? # ❌ diff --git a/github_hooks/lib/repo_host/git/payload.rb b/github_hooks/lib/repo_host/git/payload.rb index 2a36b2b3b..8f244f533 100644 --- a/github_hooks/lib/repo_host/git/payload.rb +++ b/github_hooks/lib/repo_host/git/payload.rb @@ -15,6 +15,10 @@ def pull_request? end alias is_pull_request? pull_request? + def is_draft_pull_request? # rubocop:disable Naming/PredicateName + false + end + def pr_head_repo_name nil end diff --git a/github_hooks/lib/repo_host/github/payload.rb b/github_hooks/lib/repo_host/github/payload.rb index 7f363a7b2..3ab9c3bdf 100644 --- a/github_hooks/lib/repo_host/github/payload.rb +++ b/github_hooks/lib/repo_host/github/payload.rb @@ -138,6 +138,10 @@ def is_pull_request? # rubocop:disable Naming/PredicateName @data["pull_request"].present? end + def is_draft_pull_request? # rubocop:disable Naming/PredicateName + is_pull_request? && (@data.dig("pull_request", "draft") == true) + end + alias_method :pull_request?, :is_pull_request? def pull_request_within_repo? diff --git a/github_hooks/lib/repo_host/github/responses/payload.rb b/github_hooks/lib/repo_host/github/responses/payload.rb index 253cdb3be..2bab19a9f 100644 --- a/github_hooks/lib/repo_host/github/responses/payload.rb +++ b/github_hooks/lib/repo_host/github/responses/payload.rb @@ -23,6 +23,10 @@ def post_receive_hook_pull_request_closed get_payload("fixtures/github_payloads/post_receive_hook_pull_request_closed.json") end + def post_receive_draft_hook_pull_request + get_payload("fixtures/github_payloads/post_receive_hook_pull_request_draft.json") + end + def post_receive_hook_pull_request get_payload("fixtures/github_payloads/post_receive_hook_pull_request.json") end diff --git a/github_hooks/lib/repo_host/gitlab/payload.rb b/github_hooks/lib/repo_host/gitlab/payload.rb index 74fcbab5c..ac8197952 100644 --- a/github_hooks/lib/repo_host/gitlab/payload.rb +++ b/github_hooks/lib/repo_host/gitlab/payload.rb @@ -31,6 +31,10 @@ def pull_request? end alias is_pull_request? pull_request? + def is_draft_pull_request? # rubocop:disable Naming/PredicateName + pull_request? && data.dig("object_attributes", "draft") + end + def pr_head_repo_name data.dig("object_attributes", "repository", "name") end diff --git a/github_hooks/lib/semaphore/repo_host/hooks/handler.rb b/github_hooks/lib/semaphore/repo_host/hooks/handler.rb index 64d6c05c8..3ebc1558f 100644 --- a/github_hooks/lib/semaphore/repo_host/hooks/handler.rb +++ b/github_hooks/lib/semaphore/repo_host/hooks/handler.rb @@ -105,6 +105,13 @@ def self.run(workflow, logger, hook_payload = "", signature = "", retries = 0) return end + if workflow.payload.is_draft_pull_request? && !draft_pr_allowed?(workflow.project) + logger.info("skip-draft-prs") + workflow.update(:state => Workflow::STATE_SKIP_DRAFT_PR) + + return + end + requestor = workflow.payload.pr_head_repo_owner # Check if this a member, and if the organization allows member workflows. @@ -180,6 +187,13 @@ def self.run(workflow, logger, hook_payload = "", signature = "", retries = 0) if workflow.payload.pull_request? begin + if workflow.payload.is_draft_pull_request? && !draft_pr_allowed?(workflow.project) + logger.info("skip-draft-prs") + workflow.update(:state => Workflow::STATE_SKIP_DRAFT_PR) + + return + end + state, meta, msg = update_pr_data(workflow.project, workflow.pull_request_number, workflow.commit_sha) case state when :not_found @@ -295,6 +309,14 @@ def self.forked_pr_allowed?(requestor, project) end end + def self.draft_pr_allowed?(project) + if project.build_draft_pr + return true + end + + false + end + def self.project_member?(project, github_username) repo = RepoHostAccount.find_by(:login => github_username) diff --git a/github_hooks/protobuffer/generated/projecthub_pb.rb b/github_hooks/protobuffer/generated/projecthub_pb.rb index bf735716e..deab9a023 100644 --- a/github_hooks/protobuffer/generated/projecthub_pb.rb +++ b/github_hooks/protobuffer/generated/projecthub_pb.rb @@ -9,7 +9,7 @@ require_relative 'google/protobuf/timestamp_pb' -descriptor_data = "\n\x10projecthub.proto\x12\x16InternalApi.Projecthub\x1a\nuser.proto\x1a\x1brepository_integrator.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"a\n\x0bRequestMeta\x12\x13\n\x0b\x61pi_version\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0e\n\x06req_id\x18\x03 \x01(\t\x12\x0e\n\x06org_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\t\"\xab\x02\n\x0cResponseMeta\x12\x13\n\x0b\x61pi_version\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0e\n\x06req_id\x18\x03 \x01(\t\x12\x0e\n\x06org_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\t\x12;\n\x06status\x18\x06 \x01(\x0b\x32+.InternalApi.Projecthub.ResponseMeta.Status\x1aR\n\x06Status\x12\x37\n\x04\x63ode\x18\x01 \x01(\x0e\x32).InternalApi.Projecthub.ResponseMeta.Code\x12\x0f\n\x07message\x18\x02 \x01(\t\"6\n\x04\x43ode\x12\x06\n\x02OK\x10\x00\x12\r\n\tNOT_FOUND\x10\x02\x12\x17\n\x13\x46\x41ILED_PRECONDITION\x10\x03\"4\n\x11PaginationRequest\x12\x0c\n\x04page\x18\x01 \x01(\x05\x12\x11\n\tpage_size\x18\x02 \x01(\x05\"h\n\x12PaginationResponse\x12\x13\n\x0bpage_number\x18\x01 \x01(\x05\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x15\n\rtotal_entries\x18\x03 \x01(\x05\x12\x13\n\x0btotal_pages\x18\x04 \x01(\x05\"\xc5\x1c\n\x07Project\x12:\n\x08metadata\x18\x01 \x01(\x0b\x32(.InternalApi.Projecthub.Project.Metadata\x12\x32\n\x04spec\x18\x02 \x01(\x0b\x32$.InternalApi.Projecthub.Project.Spec\x12\x36\n\x06status\x18\x03 \x01(\x0b\x32&.InternalApi.Projecthub.Project.Status\x1a\x8b\x01\n\x08Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x10\n\x08owner_id\x18\x03 \x01(\t\x12\x0e\n\x06org_id\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x92\x13\n\x04Spec\x12\x43\n\nrepository\x18\x01 \x01(\x0b\x32/.InternalApi.Projecthub.Project.Spec.Repository\x12\x42\n\nschedulers\x18\x02 \x03(\x0b\x32..InternalApi.Projecthub.Project.Spec.Scheduler\x12\x0f\n\x07private\x18\x03 \x01(\x08\x12\x0e\n\x06public\x18\x04 \x01(\x08\x12\x43\n\nvisibility\x18\x05 \x01(\x0e\x32/.InternalApi.Projecthub.Project.Spec.Visibility\x12N\n\x11\x64\x65\x62ug_permissions\x18\x06 \x03(\x0e\x32\x33.InternalApi.Projecthub.Project.Spec.PermissionType\x12O\n\x12\x61ttach_permissions\x18\x07 \x03(\x0e\x32\x33.InternalApi.Projecthub.Project.Spec.PermissionType\x12\x1a\n\x12\x63ustom_permissions\x18\x08 \x01(\x08\x12\x19\n\x11\x61rtifact_store_id\x18\t \x01(\t\x12\x10\n\x08\x63\x61\x63he_id\x18\n \x01(\t\x12\x1a\n\x12\x64ocker_registry_id\x18\x0b \x01(\t\x12\x38\n\x05tasks\x18\x0c \x03(\x0b\x32).InternalApi.Projecthub.Project.Spec.Task\x1a\x8d\x08\n\nRepository\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05owner\x18\x03 \x01(\t\x12G\n\x06run_on\x18\x04 \x03(\x0e\x32\x37.InternalApi.Projecthub.Project.Spec.Repository.RunType\x12`\n\x14\x66orked_pull_requests\x18\x05 \x01(\x0b\x32\x42.InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests\x12\r\n\x03run\x18\x06 \x01(\x08H\x00\x12\x15\n\rpipeline_file\x18\x07 \x01(\t\x12\x46\n\x06status\x18\x08 \x01(\x0b\x32\x36.InternalApi.Projecthub.Project.Spec.Repository.Status\x12L\n\twhitelist\x18\t \x01(\x0b\x32\x39.InternalApi.Projecthub.Project.Spec.Repository.Whitelist\x12\x0e\n\x06public\x18\n \x01(\x08\x12K\n\x10integration_type\x18\x0b \x01(\x0e\x32\x31.InternalApi.RepositoryIntegrator.IntegrationType\x12\x11\n\tconnected\x18\x0c \x01(\x08\x12\n\n\x02id\x18\r \x01(\t\x12\x16\n\x0e\x64\x65\x66\x61ult_branch\x18\x0e \x01(\t\x1aK\n\x12\x46orkedPullRequests\x12\x17\n\x0f\x61llowed_secrets\x18\x01 \x03(\t\x12\x1c\n\x14\x61llowed_contributors\x18\x02 \x03(\t\x1a\x80\x02\n\x06Status\x12[\n\x0epipeline_files\x18\x01 \x03(\x0b\x32\x43.InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile\x1a\x98\x01\n\x0cPipelineFile\x12\x0c\n\x04path\x18\x01 \x01(\t\x12X\n\x05level\x18\x02 \x01(\x0e\x32I.InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level\" \n\x05Level\x12\t\n\x05\x42LOCK\x10\x00\x12\x0c\n\x08PIPELINE\x10\x01\x1a+\n\tWhitelist\x12\x10\n\x08\x62ranches\x18\x01 \x03(\t\x12\x0c\n\x04tags\x18\x02 \x03(\t\"N\n\x07RunType\x12\x0c\n\x08\x42RANCHES\x10\x00\x12\x08\n\x04TAGS\x10\x01\x12\x11\n\rPULL_REQUESTS\x10\x02\x12\x18\n\x14\x46ORKED_PULL_REQUESTS\x10\x03\x42\r\n\x0brun_present\x1a\xe9\x01\n\tScheduler\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\n\n\x02\x61t\x18\x04 \x01(\t\x12\x15\n\rpipeline_file\x18\x05 \x01(\t\x12\x45\n\x06status\x18\x06 \x01(\x0e\x32\x35.InternalApi.Projecthub.Project.Spec.Scheduler.Status\"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0fSTATUS_INACTIVE\x10\x01\x12\x11\n\rSTATUS_ACTIVE\x10\x02\x1a\xba\x03\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\n\n\x02\x61t\x18\x04 \x01(\t\x12\x15\n\rpipeline_file\x18\x05 \x01(\t\x12@\n\x06status\x18\x06 \x01(\x0e\x32\x30.InternalApi.Projecthub.Project.Spec.Task.Status\x12\x11\n\trecurring\x18\x07 \x01(\x08\x12G\n\nparameters\x18\x08 \x03(\x0b\x32\x33.InternalApi.Projecthub.Project.Spec.Task.Parameter\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x1ah\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08required\x18\x02 \x01(\x08\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x15\n\rdefault_value\x18\x04 \x01(\t\x12\x0f\n\x07options\x18\x05 \x03(\t\"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0fSTATUS_INACTIVE\x10\x01\x12\x11\n\rSTATUS_ACTIVE\x10\x02\"%\n\nVisibility\x12\x0b\n\x07PRIVATE\x10\x00\x12\n\n\x06PUBLIC\x10\x01\"{\n\x0ePermissionType\x12\t\n\x05\x45MPTY\x10\x00\x12\x12\n\x0e\x44\x45\x46\x41ULT_BRANCH\x10\x01\x12\x16\n\x12NON_DEFAULT_BRANCH\x10\x02\x12\x10\n\x0cPULL_REQUEST\x10\x03\x12\x17\n\x13\x46ORKED_PULL_REQUEST\x10\x04\x12\x07\n\x03TAG\x10\x05\x1a\xee\x06\n\x06Status\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x12\x14\n\x0cstate_reason\x18\x02 \x01(\t\x12;\n\x05\x63\x61\x63he\x18\x03 \x01(\x0b\x32,.InternalApi.Projecthub.Project.Status.Cache\x12L\n\x0e\x61rtifact_store\x18\x04 \x01(\x0b\x32\x34.InternalApi.Projecthub.Project.Status.ArtifactStore\x12\x45\n\nrepository\x18\x05 \x01(\x0b\x32\x31.InternalApi.Projecthub.Project.Status.Repository\x12\x41\n\x08\x61nalysis\x18\x06 \x01(\x0b\x32/.InternalApi.Projecthub.Project.Status.Analysis\x12G\n\x0bpermissions\x18\x07 \x01(\x0b\x32\x32.InternalApi.Projecthub.Project.Status.Permissions\x1a\x44\n\x05\x43\x61\x63he\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aL\n\rArtifactStore\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aI\n\nRepository\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aG\n\x08\x41nalysis\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aJ\n\x0bPermissions\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\"?\n\x05State\x12\x10\n\x0cINITIALIZING\x10\x00\x12\t\n\x05READY\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\x0e\n\nONBOARDING\x10\x03\"\xbd\x01\n\x0bListRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12=\n\npagination\x18\x02 \x01(\x0b\x32).InternalApi.Projecthub.PaginationRequest\x12\x10\n\x08owner_id\x18\x03 \x01(\t\x12\x10\n\x08repo_url\x18\x04 \x01(\t\x12\x14\n\x0csoft_deleted\x18\x05 \x01(\x08\"\xb9\x01\n\x0cListResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12>\n\npagination\x18\x02 \x01(\x0b\x32*.InternalApi.Projecthub.PaginationResponse\x12\x31\n\x08projects\x18\x03 \x03(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\xb5\x02\n\x11ListKeysetRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x46\n\tdirection\x18\x04 \x01(\x0e\x32\x33.InternalApi.Projecthub.ListKeysetRequest.Direction\x12\x10\n\x08owner_id\x18\x05 \x01(\t\x12\x10\n\x08repo_url\x18\x06 \x01(\t\x12\x31\n\rcreated_after\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"#\n\tDirection\x12\x08\n\x04NEXT\x10\x00\x12\x0c\n\x08PREVIOUS\x10\x01\"\xb5\x01\n\x12ListKeysetResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x31\n\x08projects\x18\x02 \x03(\x0b\x32\x1f.InternalApi.Projecthub.Project\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t\x12\x1b\n\x13previous_page_token\x18\x04 \x01(\t\"\x8a\x01\n\x0f\x44\x65scribeRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08\x64\x65tailed\x18\x04 \x01(\x08\x12\x14\n\x0csoft_deleted\x18\x05 \x01(\x08\"|\n\x10\x44\x65scribeResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"o\n\x13\x44\x65scribeManyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x0b\n\x03ids\x18\x02 \x03(\t\x12\x14\n\x0csoft_deleted\x18\x03 \x01(\x08\"\x81\x01\n\x14\x44\x65scribeManyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x31\n\x08projects\x18\x02 \x03(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\x91\x01\n\rCreateRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\x12\x17\n\x0fskip_onboarding\x18\x03 \x01(\x08\"z\n\x0e\x43reateResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\x9b\x01\n\rUpdateRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\x12!\n\x19omit_schedulers_and_tasks\x18\x03 \x01(\x08\"z\n\x0eUpdateResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"a\n\x0e\x44\x65stroyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\"I\n\x0f\x44\x65stroyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"S\n\x0eRestoreRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"I\n\x0fRestoreResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"Q\n\x0cUsersRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"n\n\rUsersResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12%\n\x05users\x18\x02 \x03(\x0b\x32\x16.InternalApi.User.User\"Z\n\x15\x43heckDeployKeyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x93\x02\n\x16\x43heckDeployKeyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12L\n\ndeploy_key\x18\x02 \x01(\x0b\x32\x38.InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey\x1as\n\tDeployKey\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x66ingerprint\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\npublic_key\x18\x04 \x01(\t\"_\n\x1aRegenerateDeployKeyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x9d\x02\n\x1bRegenerateDeployKeyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12Q\n\ndeploy_key\x18\x02 \x01(\x0b\x32=.InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey\x1as\n\tDeployKey\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x66ingerprint\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\npublic_key\x18\x04 \x01(\t\"X\n\x13\x43heckWebhookRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x80\x01\n\x14\x43heckWebhookResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07webhook\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Webhook\"]\n\x18RegenerateWebhookRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x85\x01\n\x19RegenerateWebhookResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07webhook\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Webhook\"\x16\n\x07Webhook\x12\x0b\n\x03url\x18\x01 \x01(\t\"o\n\x19\x43hangeProjectOwnerRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\"T\n\x1a\x43hangeProjectOwnerResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"\x7f\n\x14\x46orkAndCreateRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\x81\x01\n\x15\x46orkAndCreateResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"[\n\x16GithubAppSwitchRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"Q\n\x17GithubAppSwitchResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"\\\n\x17\x46inishOnboardingRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"R\n\x18\x46inishOnboardingResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"c\n\x1eRegenerateWebhookSecretRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"i\n\x1fRegenerateWebhookSecretResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x0e\n\x06secret\x18\x02 \x01(\t\"c\n\x0eProjectCreated\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06org_id\x18\x03 \x01(\t\"c\n\x0eProjectDeleted\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06org_id\x18\x03 \x01(\t\"d\n\x0fProjectRestored\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06org_id\x18\x03 \x01(\t\"c\n\x0eProjectUpdated\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0e\n\x06org_id\x18\x02 \x01(\t\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"Y\n\x14\x43ollaboratorsChanged\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\x8b\x0f\n\x0eProjectService\x12Q\n\x04List\x12#.InternalApi.Projecthub.ListRequest\x1a$.InternalApi.Projecthub.ListResponse\x12\x63\n\nListKeyset\x12).InternalApi.Projecthub.ListKeysetRequest\x1a*.InternalApi.Projecthub.ListKeysetResponse\x12]\n\x08\x44\x65scribe\x12\'.InternalApi.Projecthub.DescribeRequest\x1a(.InternalApi.Projecthub.DescribeResponse\x12i\n\x0c\x44\x65scribeMany\x12+.InternalApi.Projecthub.DescribeManyRequest\x1a,.InternalApi.Projecthub.DescribeManyResponse\x12W\n\x06\x43reate\x12%.InternalApi.Projecthub.CreateRequest\x1a&.InternalApi.Projecthub.CreateResponse\x12W\n\x06Update\x12%.InternalApi.Projecthub.UpdateRequest\x1a&.InternalApi.Projecthub.UpdateResponse\x12Z\n\x07\x44\x65stroy\x12&.InternalApi.Projecthub.DestroyRequest\x1a\'.InternalApi.Projecthub.DestroyResponse\x12Z\n\x07Restore\x12&.InternalApi.Projecthub.RestoreRequest\x1a\'.InternalApi.Projecthub.RestoreResponse\x12T\n\x05Users\x12$.InternalApi.Projecthub.UsersRequest\x1a%.InternalApi.Projecthub.UsersResponse\x12o\n\x0e\x43heckDeployKey\x12-.InternalApi.Projecthub.CheckDeployKeyRequest\x1a..InternalApi.Projecthub.CheckDeployKeyResponse\x12~\n\x13RegenerateDeployKey\x12\x32.InternalApi.Projecthub.RegenerateDeployKeyRequest\x1a\x33.InternalApi.Projecthub.RegenerateDeployKeyResponse\x12i\n\x0c\x43heckWebhook\x12+.InternalApi.Projecthub.CheckWebhookRequest\x1a,.InternalApi.Projecthub.CheckWebhookResponse\x12x\n\x11RegenerateWebhook\x12\x30.InternalApi.Projecthub.RegenerateWebhookRequest\x1a\x31.InternalApi.Projecthub.RegenerateWebhookResponse\x12\x8a\x01\n\x17RegenerateWebhookSecret\x12\x36.InternalApi.Projecthub.RegenerateWebhookSecretRequest\x1a\x37.InternalApi.Projecthub.RegenerateWebhookSecretResponse\x12{\n\x12\x43hangeProjectOwner\x12\x31.InternalApi.Projecthub.ChangeProjectOwnerRequest\x1a\x32.InternalApi.Projecthub.ChangeProjectOwnerResponse\x12l\n\rForkAndCreate\x12,.InternalApi.Projecthub.ForkAndCreateRequest\x1a-.InternalApi.Projecthub.ForkAndCreateResponse\x12r\n\x0fGithubAppSwitch\x12..InternalApi.Projecthub.GithubAppSwitchRequest\x1a/.InternalApi.Projecthub.GithubAppSwitchResponse\x12u\n\x10\x46inishOnboarding\x12/.InternalApi.Projecthub.FinishOnboardingRequest\x1a\x30.InternalApi.Projecthub.FinishOnboardingResponseb\x06proto3" +descriptor_data = "\n\x10projecthub.proto\x12\x16InternalApi.Projecthub\x1a\nuser.proto\x1a\x1brepository_integrator.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"a\n\x0bRequestMeta\x12\x13\n\x0b\x61pi_version\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0e\n\x06req_id\x18\x03 \x01(\t\x12\x0e\n\x06org_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\t\"\xab\x02\n\x0cResponseMeta\x12\x13\n\x0b\x61pi_version\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0e\n\x06req_id\x18\x03 \x01(\t\x12\x0e\n\x06org_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\t\x12;\n\x06status\x18\x06 \x01(\x0b\x32+.InternalApi.Projecthub.ResponseMeta.Status\x1aR\n\x06Status\x12\x37\n\x04\x63ode\x18\x01 \x01(\x0e\x32).InternalApi.Projecthub.ResponseMeta.Code\x12\x0f\n\x07message\x18\x02 \x01(\t\"6\n\x04\x43ode\x12\x06\n\x02OK\x10\x00\x12\r\n\tNOT_FOUND\x10\x02\x12\x17\n\x13\x46\x41ILED_PRECONDITION\x10\x03\"4\n\x11PaginationRequest\x12\x0c\n\x04page\x18\x01 \x01(\x05\x12\x11\n\tpage_size\x18\x02 \x01(\x05\"h\n\x12PaginationResponse\x12\x13\n\x0bpage_number\x18\x01 \x01(\x05\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x15\n\rtotal_entries\x18\x03 \x01(\x05\x12\x13\n\x0btotal_pages\x18\x04 \x01(\x05\"\xde\x1c\n\x07Project\x12:\n\x08metadata\x18\x01 \x01(\x0b\x32(.InternalApi.Projecthub.Project.Metadata\x12\x32\n\x04spec\x18\x02 \x01(\x0b\x32$.InternalApi.Projecthub.Project.Spec\x12\x36\n\x06status\x18\x03 \x01(\x0b\x32&.InternalApi.Projecthub.Project.Status\x1a\x8b\x01\n\x08Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x10\n\x08owner_id\x18\x03 \x01(\t\x12\x0e\n\x06org_id\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\xab\x13\n\x04Spec\x12\x43\n\nrepository\x18\x01 \x01(\x0b\x32/.InternalApi.Projecthub.Project.Spec.Repository\x12\x42\n\nschedulers\x18\x02 \x03(\x0b\x32..InternalApi.Projecthub.Project.Spec.Scheduler\x12\x0f\n\x07private\x18\x03 \x01(\x08\x12\x0e\n\x06public\x18\x04 \x01(\x08\x12\x43\n\nvisibility\x18\x05 \x01(\x0e\x32/.InternalApi.Projecthub.Project.Spec.Visibility\x12N\n\x11\x64\x65\x62ug_permissions\x18\x06 \x03(\x0e\x32\x33.InternalApi.Projecthub.Project.Spec.PermissionType\x12O\n\x12\x61ttach_permissions\x18\x07 \x03(\x0e\x32\x33.InternalApi.Projecthub.Project.Spec.PermissionType\x12\x1a\n\x12\x63ustom_permissions\x18\x08 \x01(\x08\x12\x19\n\x11\x61rtifact_store_id\x18\t \x01(\t\x12\x10\n\x08\x63\x61\x63he_id\x18\n \x01(\t\x12\x1a\n\x12\x64ocker_registry_id\x18\x0b \x01(\t\x12\x38\n\x05tasks\x18\x0c \x03(\x0b\x32).InternalApi.Projecthub.Project.Spec.Task\x1a\xa6\x08\n\nRepository\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05owner\x18\x03 \x01(\t\x12G\n\x06run_on\x18\x04 \x03(\x0e\x32\x37.InternalApi.Projecthub.Project.Spec.Repository.RunType\x12`\n\x14\x66orked_pull_requests\x18\x05 \x01(\x0b\x32\x42.InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests\x12\r\n\x03run\x18\x06 \x01(\x08H\x00\x12\x15\n\rpipeline_file\x18\x07 \x01(\t\x12\x46\n\x06status\x18\x08 \x01(\x0b\x32\x36.InternalApi.Projecthub.Project.Spec.Repository.Status\x12L\n\twhitelist\x18\t \x01(\x0b\x32\x39.InternalApi.Projecthub.Project.Spec.Repository.Whitelist\x12\x0e\n\x06public\x18\n \x01(\x08\x12K\n\x10integration_type\x18\x0b \x01(\x0e\x32\x31.InternalApi.RepositoryIntegrator.IntegrationType\x12\x11\n\tconnected\x18\x0c \x01(\x08\x12\n\n\x02id\x18\r \x01(\t\x12\x16\n\x0e\x64\x65\x66\x61ult_branch\x18\x0e \x01(\t\x1aK\n\x12\x46orkedPullRequests\x12\x17\n\x0f\x61llowed_secrets\x18\x01 \x03(\t\x12\x1c\n\x14\x61llowed_contributors\x18\x02 \x03(\t\x1a\x80\x02\n\x06Status\x12[\n\x0epipeline_files\x18\x01 \x03(\x0b\x32\x43.InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile\x1a\x98\x01\n\x0cPipelineFile\x12\x0c\n\x04path\x18\x01 \x01(\t\x12X\n\x05level\x18\x02 \x01(\x0e\x32I.InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level\" \n\x05Level\x12\t\n\x05\x42LOCK\x10\x00\x12\x0c\n\x08PIPELINE\x10\x01\x1a+\n\tWhitelist\x12\x10\n\x08\x62ranches\x18\x01 \x03(\t\x12\x0c\n\x04tags\x18\x02 \x03(\t\"g\n\x07RunType\x12\x0c\n\x08\x42RANCHES\x10\x00\x12\x08\n\x04TAGS\x10\x01\x12\x11\n\rPULL_REQUESTS\x10\x02\x12\x18\n\x14\x46ORKED_PULL_REQUESTS\x10\x03\x12\x17\n\x13\x44RAFT_PULL_REQUESTS\x10\x04\x42\r\n\x0brun_present\x1a\xe9\x01\n\tScheduler\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\n\n\x02\x61t\x18\x04 \x01(\t\x12\x15\n\rpipeline_file\x18\x05 \x01(\t\x12\x45\n\x06status\x18\x06 \x01(\x0e\x32\x35.InternalApi.Projecthub.Project.Spec.Scheduler.Status\"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0fSTATUS_INACTIVE\x10\x01\x12\x11\n\rSTATUS_ACTIVE\x10\x02\x1a\xba\x03\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\n\n\x02\x61t\x18\x04 \x01(\t\x12\x15\n\rpipeline_file\x18\x05 \x01(\t\x12@\n\x06status\x18\x06 \x01(\x0e\x32\x30.InternalApi.Projecthub.Project.Spec.Task.Status\x12\x11\n\trecurring\x18\x07 \x01(\x08\x12G\n\nparameters\x18\x08 \x03(\x0b\x32\x33.InternalApi.Projecthub.Project.Spec.Task.Parameter\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x1ah\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08required\x18\x02 \x01(\x08\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x15\n\rdefault_value\x18\x04 \x01(\t\x12\x0f\n\x07options\x18\x05 \x03(\t\"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0fSTATUS_INACTIVE\x10\x01\x12\x11\n\rSTATUS_ACTIVE\x10\x02\"%\n\nVisibility\x12\x0b\n\x07PRIVATE\x10\x00\x12\n\n\x06PUBLIC\x10\x01\"{\n\x0ePermissionType\x12\t\n\x05\x45MPTY\x10\x00\x12\x12\n\x0e\x44\x45\x46\x41ULT_BRANCH\x10\x01\x12\x16\n\x12NON_DEFAULT_BRANCH\x10\x02\x12\x10\n\x0cPULL_REQUEST\x10\x03\x12\x17\n\x13\x46ORKED_PULL_REQUEST\x10\x04\x12\x07\n\x03TAG\x10\x05\x1a\xee\x06\n\x06Status\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x12\x14\n\x0cstate_reason\x18\x02 \x01(\t\x12;\n\x05\x63\x61\x63he\x18\x03 \x01(\x0b\x32,.InternalApi.Projecthub.Project.Status.Cache\x12L\n\x0e\x61rtifact_store\x18\x04 \x01(\x0b\x32\x34.InternalApi.Projecthub.Project.Status.ArtifactStore\x12\x45\n\nrepository\x18\x05 \x01(\x0b\x32\x31.InternalApi.Projecthub.Project.Status.Repository\x12\x41\n\x08\x61nalysis\x18\x06 \x01(\x0b\x32/.InternalApi.Projecthub.Project.Status.Analysis\x12G\n\x0bpermissions\x18\x07 \x01(\x0b\x32\x32.InternalApi.Projecthub.Project.Status.Permissions\x1a\x44\n\x05\x43\x61\x63he\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aL\n\rArtifactStore\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aI\n\nRepository\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aG\n\x08\x41nalysis\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\x1aJ\n\x0bPermissions\x12;\n\x05state\x18\x01 \x01(\x0e\x32,.InternalApi.Projecthub.Project.Status.State\"?\n\x05State\x12\x10\n\x0cINITIALIZING\x10\x00\x12\t\n\x05READY\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\x0e\n\nONBOARDING\x10\x03\"\xbd\x01\n\x0bListRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12=\n\npagination\x18\x02 \x01(\x0b\x32).InternalApi.Projecthub.PaginationRequest\x12\x10\n\x08owner_id\x18\x03 \x01(\t\x12\x10\n\x08repo_url\x18\x04 \x01(\t\x12\x14\n\x0csoft_deleted\x18\x05 \x01(\x08\"\xb9\x01\n\x0cListResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12>\n\npagination\x18\x02 \x01(\x0b\x32*.InternalApi.Projecthub.PaginationResponse\x12\x31\n\x08projects\x18\x03 \x03(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\xb5\x02\n\x11ListKeysetRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x46\n\tdirection\x18\x04 \x01(\x0e\x32\x33.InternalApi.Projecthub.ListKeysetRequest.Direction\x12\x10\n\x08owner_id\x18\x05 \x01(\t\x12\x10\n\x08repo_url\x18\x06 \x01(\t\x12\x31\n\rcreated_after\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"#\n\tDirection\x12\x08\n\x04NEXT\x10\x00\x12\x0c\n\x08PREVIOUS\x10\x01\"\xb5\x01\n\x12ListKeysetResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x31\n\x08projects\x18\x02 \x03(\x0b\x32\x1f.InternalApi.Projecthub.Project\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t\x12\x1b\n\x13previous_page_token\x18\x04 \x01(\t\"\x8a\x01\n\x0f\x44\x65scribeRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08\x64\x65tailed\x18\x04 \x01(\x08\x12\x14\n\x0csoft_deleted\x18\x05 \x01(\x08\"|\n\x10\x44\x65scribeResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"o\n\x13\x44\x65scribeManyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x0b\n\x03ids\x18\x02 \x03(\t\x12\x14\n\x0csoft_deleted\x18\x03 \x01(\x08\"\x81\x01\n\x14\x44\x65scribeManyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x31\n\x08projects\x18\x02 \x03(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\x91\x01\n\rCreateRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\x12\x17\n\x0fskip_onboarding\x18\x03 \x01(\x08\"z\n\x0e\x43reateResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\x9b\x01\n\rUpdateRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\x12!\n\x19omit_schedulers_and_tasks\x18\x03 \x01(\x08\"z\n\x0eUpdateResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"a\n\x0e\x44\x65stroyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\"I\n\x0f\x44\x65stroyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"S\n\x0eRestoreRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"I\n\x0fRestoreResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"Q\n\x0cUsersRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"n\n\rUsersResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12%\n\x05users\x18\x02 \x03(\x0b\x32\x16.InternalApi.User.User\"Z\n\x15\x43heckDeployKeyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x93\x02\n\x16\x43heckDeployKeyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12L\n\ndeploy_key\x18\x02 \x01(\x0b\x32\x38.InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey\x1as\n\tDeployKey\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x66ingerprint\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\npublic_key\x18\x04 \x01(\t\"_\n\x1aRegenerateDeployKeyRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x9d\x02\n\x1bRegenerateDeployKeyResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12Q\n\ndeploy_key\x18\x02 \x01(\x0b\x32=.InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey\x1as\n\tDeployKey\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x66ingerprint\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\npublic_key\x18\x04 \x01(\t\"X\n\x13\x43heckWebhookRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x80\x01\n\x14\x43heckWebhookResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07webhook\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Webhook\"]\n\x18RegenerateWebhookRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"\x85\x01\n\x19RegenerateWebhookResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07webhook\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Webhook\"\x16\n\x07Webhook\x12\x0b\n\x03url\x18\x01 \x01(\t\"o\n\x19\x43hangeProjectOwnerRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\"T\n\x1a\x43hangeProjectOwnerResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"\x7f\n\x14\x46orkAndCreateRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"\x81\x01\n\x15\x46orkAndCreateResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x30\n\x07project\x18\x02 \x01(\x0b\x32\x1f.InternalApi.Projecthub.Project\"[\n\x16GithubAppSwitchRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"Q\n\x17GithubAppSwitchResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"\\\n\x17\x46inishOnboardingRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"R\n\x18\x46inishOnboardingResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\"c\n\x1eRegenerateWebhookSecretRequest\x12\x35\n\x08metadata\x18\x01 \x01(\x0b\x32#.InternalApi.Projecthub.RequestMeta\x12\n\n\x02id\x18\x02 \x01(\t\"i\n\x1fRegenerateWebhookSecretResponse\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.InternalApi.Projecthub.ResponseMeta\x12\x0e\n\x06secret\x18\x02 \x01(\t\"c\n\x0eProjectCreated\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06org_id\x18\x03 \x01(\t\"c\n\x0eProjectDeleted\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06org_id\x18\x03 \x01(\t\"d\n\x0fProjectRestored\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06org_id\x18\x03 \x01(\t\"c\n\x0eProjectUpdated\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0e\n\x06org_id\x18\x02 \x01(\t\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"Y\n\x14\x43ollaboratorsChanged\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\x8b\x0f\n\x0eProjectService\x12Q\n\x04List\x12#.InternalApi.Projecthub.ListRequest\x1a$.InternalApi.Projecthub.ListResponse\x12\x63\n\nListKeyset\x12).InternalApi.Projecthub.ListKeysetRequest\x1a*.InternalApi.Projecthub.ListKeysetResponse\x12]\n\x08\x44\x65scribe\x12\'.InternalApi.Projecthub.DescribeRequest\x1a(.InternalApi.Projecthub.DescribeResponse\x12i\n\x0c\x44\x65scribeMany\x12+.InternalApi.Projecthub.DescribeManyRequest\x1a,.InternalApi.Projecthub.DescribeManyResponse\x12W\n\x06\x43reate\x12%.InternalApi.Projecthub.CreateRequest\x1a&.InternalApi.Projecthub.CreateResponse\x12W\n\x06Update\x12%.InternalApi.Projecthub.UpdateRequest\x1a&.InternalApi.Projecthub.UpdateResponse\x12Z\n\x07\x44\x65stroy\x12&.InternalApi.Projecthub.DestroyRequest\x1a\'.InternalApi.Projecthub.DestroyResponse\x12Z\n\x07Restore\x12&.InternalApi.Projecthub.RestoreRequest\x1a\'.InternalApi.Projecthub.RestoreResponse\x12T\n\x05Users\x12$.InternalApi.Projecthub.UsersRequest\x1a%.InternalApi.Projecthub.UsersResponse\x12o\n\x0e\x43heckDeployKey\x12-.InternalApi.Projecthub.CheckDeployKeyRequest\x1a..InternalApi.Projecthub.CheckDeployKeyResponse\x12~\n\x13RegenerateDeployKey\x12\x32.InternalApi.Projecthub.RegenerateDeployKeyRequest\x1a\x33.InternalApi.Projecthub.RegenerateDeployKeyResponse\x12i\n\x0c\x43heckWebhook\x12+.InternalApi.Projecthub.CheckWebhookRequest\x1a,.InternalApi.Projecthub.CheckWebhookResponse\x12x\n\x11RegenerateWebhook\x12\x30.InternalApi.Projecthub.RegenerateWebhookRequest\x1a\x31.InternalApi.Projecthub.RegenerateWebhookResponse\x12\x8a\x01\n\x17RegenerateWebhookSecret\x12\x36.InternalApi.Projecthub.RegenerateWebhookSecretRequest\x1a\x37.InternalApi.Projecthub.RegenerateWebhookSecretResponse\x12{\n\x12\x43hangeProjectOwner\x12\x31.InternalApi.Projecthub.ChangeProjectOwnerRequest\x1a\x32.InternalApi.Projecthub.ChangeProjectOwnerResponse\x12l\n\rForkAndCreate\x12,.InternalApi.Projecthub.ForkAndCreateRequest\x1a-.InternalApi.Projecthub.ForkAndCreateResponse\x12r\n\x0fGithubAppSwitch\x12..InternalApi.Projecthub.GithubAppSwitchRequest\x1a/.InternalApi.Projecthub.GithubAppSwitchResponse\x12u\n\x10\x46inishOnboarding\x12/.InternalApi.Projecthub.FinishOnboardingRequest\x1a\x30.InternalApi.Projecthub.FinishOnboardingResponseb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) diff --git a/github_hooks/protobuffer/generated/server_farm.job_services_pb.rb b/github_hooks/protobuffer/generated/server_farm.job_services_pb.rb index ff7afd4c6..aff230105 100644 --- a/github_hooks/protobuffer/generated/server_farm.job_services_pb.rb +++ b/github_hooks/protobuffer/generated/server_farm.job_services_pb.rb @@ -72,9 +72,9 @@ class Service # Returns information if a user can attach a job. # rpc :CanAttach, ::InternalApi::ServerFarm::Job::CanAttachRequest, ::InternalApi::ServerFarm::Job::CanAttachResponse - # + # # Create a new job based on the given job spec. - # + # rpc :Create, ::InternalApi::ServerFarm::Job::CreateRequest, ::InternalApi::ServerFarm::Job::CreateResponse end diff --git a/github_hooks/spec/lib/repo_host/github/payload_spec.rb b/github_hooks/spec/lib/repo_host/github/payload_spec.rb index 538950567..abd644e80 100644 --- a/github_hooks/spec/lib/repo_host/github/payload_spec.rb +++ b/github_hooks/spec/lib/repo_host/github/payload_spec.rb @@ -23,6 +23,9 @@ let(:payload_for_opened_pull_request) do RepoHost::Github::Payload.new(RepoHost::Github::Responses::Payload.post_receive_hook_pull_request) end + let(:payload_for_opened_draft_pull_request) do + RepoHost::Github::Payload.new(RepoHost::Github::Responses::Payload.post_receive_draft_hook_pull_request) + end let(:payload_for_issue_comment) do RepoHost::Github::Payload.new(RepoHost::Github::Responses::Payload.post_receive_hook_issue_comment) end @@ -113,6 +116,20 @@ end end + describe ".is_draft_pull_request?" do + context "payload has draft pull request info" do + it "returns true" do + expect(payload_for_opened_draft_pull_request.is_pull_request?).to be_truthy + end + end + + context "payload does not have draft pull request info" do + it "returns false" do + expect(payload.is_draft_pull_request?).to be_falsey + end + end + end + describe ".pull_request_opened" do context "pull request opened" do before do diff --git a/github_notifier/lib/internal_api/organization.pb.ex b/github_notifier/lib/internal_api/organization.pb.ex index 4d9481243..158ec3b1d 100644 --- a/github_notifier/lib/internal_api/organization.pb.ex +++ b/github_notifier/lib/internal_api/organization.pb.ex @@ -59,14 +59,16 @@ defmodule InternalApi.Organization.DescribeRequest do @type t :: %__MODULE__{ org_id: String.t(), org_username: String.t(), - include_quotas: boolean + include_quotas: boolean, + soft_deleted: boolean } - defstruct [:org_id, :org_username, :include_quotas] + defstruct [:org_id, :org_username, :include_quotas, :soft_deleted] field(:org_id, 1, type: :string) field(:org_username, 2, type: :string) field(:include_quotas, 3, type: :bool) + field(:soft_deleted, 4, type: :bool) end defmodule InternalApi.Organization.DescribeResponse do @@ -89,12 +91,14 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - org_ids: [String.t()] + org_ids: [String.t()], + soft_deleted: boolean } - defstruct [:org_ids] + defstruct [:org_ids, :soft_deleted] field(:org_ids, 1, repeated: true, type: :string) + field(:soft_deleted, 2, type: :bool) end defmodule InternalApi.Organization.DescribeManyResponse do @@ -119,16 +123,18 @@ defmodule InternalApi.Organization.ListRequest do created_at_gt: Google.Protobuf.Timestamp.t() | nil, order: InternalApi.Organization.ListRequest.Order.t(), page_size: integer, - page_token: String.t() + page_token: String.t(), + soft_deleted: boolean } - defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token] + defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token, :soft_deleted] field(:user_id, 2, type: :string) field(:created_at_gt, 3, type: Google.Protobuf.Timestamp) field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32) field(:page_token, 6, type: :string) + field(:soft_deleted, 7, type: :bool) end defmodule InternalApi.Organization.ListResponse do @@ -593,6 +599,19 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string) end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t() + } + + defstruct [:org_id] + + field(:org_id, 1, type: :string) +end + defmodule InternalApi.Organization.Organization do @moduledoc false use Protobuf, syntax: :proto3 @@ -1038,6 +1057,21 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:org_id, :timestamp] + + field(:org_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Organization.OrganizationService" @@ -1116,6 +1150,8 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/github_notifier/lib/internal_api/projecthub.pb.ex b/github_notifier/lib/internal_api/projecthub.pb.ex index bfa405b35..1462fa04d 100644 --- a/github_notifier/lib/internal_api/projecthub.pb.ex +++ b/github_notifier/lib/internal_api/projecthub.pb.ex @@ -49,7 +49,14 @@ end defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do @moduledoc false use Protobuf, enum: true, syntax: :proto3 - @type t :: integer | :BRANCHES | :TAGS | :PULL_REQUESTS | :FORKED_PULL_REQUESTS + + @type t :: + integer + | :BRANCHES + | :TAGS + | :PULL_REQUESTS + | :FORKED_PULL_REQUESTS + | :DRAFT_PULL_REQUESTS field(:BRANCHES, 0) @@ -58,6 +65,8 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -621,15 +630,17 @@ defmodule InternalApi.Projecthub.ListRequest do metadata: InternalApi.Projecthub.RequestMeta.t() | nil, pagination: InternalApi.Projecthub.PaginationRequest.t() | nil, owner_id: String.t(), - repo_url: String.t() + repo_url: String.t(), + soft_deleted: boolean } - defstruct [:metadata, :pagination, :owner_id, :repo_url] + defstruct [:metadata, :pagination, :owner_id, :repo_url, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string) field(:repo_url, 4, type: :string) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.ListResponse do @@ -701,15 +712,17 @@ defmodule InternalApi.Projecthub.DescribeRequest do metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t(), name: String.t(), - detailed: boolean + detailed: boolean, + soft_deleted: boolean } - defstruct [:metadata, :id, :name, :detailed] + defstruct [:metadata, :id, :name, :detailed, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.DescribeResponse do @@ -733,13 +746,15 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do @type t :: %__MODULE__{ metadata: InternalApi.Projecthub.RequestMeta.t() | nil, - ids: [String.t()] + ids: [String.t()], + soft_deleted: boolean } - defstruct [:metadata, :ids] + defstruct [:metadata, :ids, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool) end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -851,6 +866,34 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil + } + + defstruct [:metadata] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -903,14 +946,16 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() | nil + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -950,14 +995,16 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() | nil + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -1164,6 +1211,36 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + secret: String.t() + } + + defstruct [:metadata, :secret] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1198,6 +1275,23 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string) end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil, + org_id: String.t() + } + + defstruct [:project_id, :timestamp, :org_id] + + field(:project_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string) +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1256,6 +1350,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -1282,6 +1378,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/github_notifier/lib/internal_api/repo_proxy.pb.ex b/github_notifier/lib/internal_api/repo_proxy.pb.ex index a7b7e8c36..929c6855c 100644 --- a/github_notifier/lib/internal_api/repo_proxy.pb.ex +++ b/github_notifier/lib/internal_api/repo_proxy.pb.ex @@ -357,6 +357,23 @@ defmodule InternalApi.RepoProxy.CreateBlankResponse do field(:repo, 5, type: InternalApi.RepoProxy.CreateBlankResponse.Repo) end +defmodule InternalApi.RepoProxy.PullRequestUnmergeable do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + branch_name: String.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:project_id, :branch_name, :timestamp] + + field(:project_id, 1, type: :string) + field(:branch_name, 2, type: :string) + field(:timestamp, 3, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.RepoProxy.RepoProxyService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.RepoProxy.RepoProxyService" diff --git a/github_notifier/lib/internal_api/repository.pb.ex b/github_notifier/lib/internal_api/repository.pb.ex index d058faa4a..ee0b19d4a 100644 --- a/github_notifier/lib/internal_api/repository.pb.ex +++ b/github_notifier/lib/internal_api/repository.pb.ex @@ -128,14 +128,16 @@ defmodule InternalApi.Repository.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() | nil + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -533,7 +535,8 @@ defmodule InternalApi.Repository.Repository do commit_status: InternalApi.Projecthub.Project.Spec.Repository.Status.t() | nil, whitelist: InternalApi.Projecthub.Project.Spec.Repository.Whitelist.t() | nil, hook_id: String.t(), - default_branch: String.t() + default_branch: String.t(), + connected: boolean } defstruct [ @@ -549,7 +552,8 @@ defmodule InternalApi.Repository.Repository do :commit_status, :whitelist, :hook_id, - :default_branch + :default_branch, + :connected ] field(:id, 1, type: :string) @@ -565,6 +569,7 @@ defmodule InternalApi.Repository.Repository do field(:whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist) field(:hook_id, 12, type: :string) field(:default_branch, 13, type: :string) + field(:connected, 14, type: :bool) end defmodule InternalApi.Repository.RemoteRepository do @@ -984,6 +989,58 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field(:valid, 1, type: :bool) end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + + defstruct [:repository_id] + + field(:repository_id, 1, type: :string) +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository: InternalApi.Repository.Repository.t() | nil + } + + defstruct [:repository] + + field(:repository, 1, type: InternalApi.Repository.Repository) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + + defstruct [:repository_id] + + field(:repository_id, 1, type: :string) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + secret: String.t() + } + + defstruct [:secret] + + field(:secret, 1, type: :string) +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Repository.RepositoryService" @@ -1083,6 +1140,18 @@ defmodule InternalApi.Repository.RepositoryService.Service do InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse ) + + rpc( + :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + ) + + rpc( + :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse + ) end defmodule InternalApi.Repository.RepositoryService.Stub do diff --git a/guard/lib/internal_api/projecthub.pb.ex b/guard/lib/internal_api/projecthub.pb.ex index 8dd5ea802..214fc568b 100644 --- a/guard/lib/internal_api/projecthub.pb.ex +++ b/guard/lib/internal_api/projecthub.pb.ex @@ -341,6 +341,8 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Scheduler do @@ -897,13 +899,15 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.RegenerateDeployKeyRequest do @@ -941,13 +945,15 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.CheckWebhookRequest do @@ -1126,6 +1132,34 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + + defstruct [:metadata, :id] + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t(), + secret: String.t() + } + + defstruct [:metadata, :secret] + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1258,6 +1292,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/guard/lib/internal_api/repository.pb.ex b/guard/lib/internal_api/repository.pb.ex index 5627d2c69..5af1e664b 100644 --- a/guard/lib/internal_api/repository.pb.ex +++ b/guard/lib/internal_api/repository.pb.ex @@ -51,13 +51,15 @@ defmodule InternalApi.Repository.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -470,7 +472,8 @@ defmodule InternalApi.Repository.Repository do commit_status: InternalApi.Projecthub.Project.Spec.Repository.Status.t(), whitelist: InternalApi.Projecthub.Project.Spec.Repository.Whitelist.t(), hook_id: String.t(), - default_branch: String.t() + default_branch: String.t(), + connected: boolean } defstruct [ @@ -486,7 +489,8 @@ defmodule InternalApi.Repository.Repository do :commit_status, :whitelist, :hook_id, - :default_branch + :default_branch, + :connected ] field(:id, 1, type: :string) @@ -502,6 +506,7 @@ defmodule InternalApi.Repository.Repository do field(:whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist) field(:hook_id, 12, type: :string) field(:default_branch, 13, type: :string) + field(:connected, 14, type: :bool) end defmodule InternalApi.Repository.RemoteRepository do @@ -919,6 +924,54 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field(:valid, 1, type: :bool) end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + + defstruct [:repository_id] + field(:repository_id, 1, type: :string) +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository: InternalApi.Repository.Repository.t() + } + + defstruct [:repository] + field(:repository, 1, type: InternalApi.Repository.Repository) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + + defstruct [:repository_id] + field(:repository_id, 1, type: :string) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + secret: String.t() + } + + defstruct [:secret] + field(:secret, 1, type: :string) +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Repository.RepositoryService" @@ -1018,6 +1071,18 @@ defmodule InternalApi.Repository.RepositoryService.Service do InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse ) + + rpc( + :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + ) + + rpc( + :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse + ) end defmodule InternalApi.Repository.RepositoryService.Stub do diff --git a/guard/lib/internal_api/secrethub.pb.ex b/guard/lib/internal_api/secrethub.pb.ex index 0506e1509..309a7b763 100644 --- a/guard/lib/internal_api/secrethub.pb.ex +++ b/guard/lib/internal_api/secrethub.pb.ex @@ -685,7 +685,8 @@ defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenRequest do job_type: String.t(), git_pull_request_branch: String.t(), repo_slug: String.t(), - triggerer: String.t() + triggerer: String.t(), + project_name: String.t() } defstruct [ @@ -707,7 +708,8 @@ defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenRequest do :job_type, :git_pull_request_branch, :repo_slug, - :triggerer + :triggerer, + :project_name ] field(:org_id, 1, type: :string) @@ -729,6 +731,7 @@ defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenRequest do field(:git_pull_request_branch, 17, type: :string) field(:repo_slug, 18, type: :string) field(:triggerer, 19, type: :string) + field(:project_name, 20, type: :string) end defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenResponse do diff --git a/hooks_processor/Makefile b/hooks_processor/Makefile index 39779ad63..021a7326f 100644 --- a/hooks_processor/Makefile +++ b/hooks_processor/Makefile @@ -80,7 +80,7 @@ endif /home/protoc/source/plumber_w_f.workflow.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ /home/protoc/source/plumber.admin.proto - docker run --rm -v $(PWD):/home/protoc/code -v /Users/pedroforestileao/Documents/code/internal_api:/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ + docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ /home/protoc/source/plumber.pipeline.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ /home/protoc/source/branch.proto diff --git a/hooks_processor/lib/internal_api/projecthub.pb.ex b/hooks_processor/lib/internal_api/projecthub.pb.ex index 57774a79c..982bdec07 100644 --- a/hooks_processor/lib/internal_api/projecthub.pb.ex +++ b/hooks_processor/lib/internal_api/projecthub.pb.ex @@ -39,6 +39,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field :TAGS, 1 field :PULL_REQUESTS, 2 field :FORKED_PULL_REQUESTS, 3 + field :DRAFT_PULL_REQUESTS, 4 end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -383,6 +384,7 @@ defmodule InternalApi.Projecthub.ListRequest do field :pagination, 2, type: InternalApi.Projecthub.PaginationRequest field :owner_id, 3, type: :string, json_name: "ownerId" field :repo_url, 4, type: :string, json_name: "repoUrl" + field :soft_deleted, 5, type: :bool, json_name: "softDeleted" end defmodule InternalApi.Projecthub.ListResponse do @@ -429,6 +431,7 @@ defmodule InternalApi.Projecthub.DescribeRequest do field :id, 2, type: :string field :name, 3, type: :string field :detailed, 4, type: :bool + field :soft_deleted, 5, type: :bool, json_name: "softDeleted" end defmodule InternalApi.Projecthub.DescribeResponse do @@ -447,6 +450,7 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :ids, 2, repeated: true, type: :string + field :soft_deleted, 3, type: :bool, json_name: "softDeleted" end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -465,6 +469,7 @@ defmodule InternalApi.Projecthub.CreateRequest do field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :project, 2, type: InternalApi.Projecthub.Project + field :skip_onboarding, 3, type: :bool, json_name: "skipOnboarding" end defmodule InternalApi.Projecthub.CreateResponse do @@ -513,6 +518,23 @@ defmodule InternalApi.Projecthub.DestroyResponse do field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false @@ -548,6 +570,7 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt" + field :public_key, 4, type: :string, json_name: "publicKey" end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -579,6 +602,7 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt" + field :public_key, 4, type: :string, json_name: "publicKey" end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -707,6 +731,24 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta + field :secret, 2, type: :string +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false @@ -727,6 +769,16 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field :org_id, 3, type: :string, json_name: "orgId" end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :project_id, 1, type: :string, json_name: "projectId" + field :timestamp, 2, type: Google.Protobuf.Timestamp + field :org_id, 3, type: :string, json_name: "orgId" +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false @@ -771,6 +823,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc :Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse + rpc :Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse + rpc :Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse rpc :CheckDeployKey, @@ -789,6 +843,10 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookRequest, InternalApi.Projecthub.RegenerateWebhookResponse + rpc :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + rpc :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, InternalApi.Projecthub.ChangeProjectOwnerResponse diff --git a/hooks_processor/lib/internal_api/rbac.pb.ex b/hooks_processor/lib/internal_api/rbac.pb.ex index 8d92a4ba6..1fc1dd188 100644 --- a/hooks_processor/lib/internal_api/rbac.pb.ex +++ b/hooks_processor/lib/internal_api/rbac.pb.ex @@ -29,6 +29,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do field :ROLE_BINDING_SOURCE_GITLAB, 4 field :ROLE_BINDING_SOURCE_SCIM, 5 field :ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6 + field :ROLE_BINDING_SOURCE_SAML_JIT, 7 end defmodule InternalApi.RBAC.ListUserPermissionsRequest do diff --git a/hooks_processor/lib/internal_api/repo_proxy.pb.ex b/hooks_processor/lib/internal_api/repo_proxy.pb.ex index e96f522d7..93aae8f8e 100644 --- a/hooks_processor/lib/internal_api/repo_proxy.pb.ex +++ b/hooks_processor/lib/internal_api/repo_proxy.pb.ex @@ -204,6 +204,16 @@ defmodule InternalApi.RepoProxy.CreateBlankResponse do field :repo, 5, type: InternalApi.RepoProxy.CreateBlankResponse.Repo end +defmodule InternalApi.RepoProxy.PullRequestUnmergeable do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :project_id, 1, type: :string, json_name: "projectId" + field :branch_name, 2, type: :string, json_name: "branchName" + field :timestamp, 3, type: Google.Protobuf.Timestamp +end + defmodule InternalApi.RepoProxy.RepoProxyService.Service do @moduledoc false diff --git a/hooks_processor/lib/internal_api/repository.pb.ex b/hooks_processor/lib/internal_api/repository.pb.ex index 9f0ab4466..d1dda1296 100644 --- a/hooks_processor/lib/internal_api/repository.pb.ex +++ b/hooks_processor/lib/internal_api/repository.pb.ex @@ -88,6 +88,7 @@ defmodule InternalApi.Repository.DeployKey do field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt" + field :public_key, 4, type: :string, json_name: "publicKey" end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -363,6 +364,7 @@ defmodule InternalApi.Repository.Repository do field :whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist field :hook_id, 12, type: :string, json_name: "hookId" field :default_branch, 13, type: :string, json_name: "defaultBranch" + field :connected, 14, type: :bool end defmodule InternalApi.Repository.RemoteRepository do @@ -618,6 +620,38 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field :valid, 1, type: :bool end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :repository_id, 1, type: :string, json_name: "repositoryId" +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :repository, 1, type: InternalApi.Repository.Repository +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :repository_id, 1, type: :string, json_name: "repositoryId" +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field :secret, 1, type: :string +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false @@ -694,6 +728,14 @@ defmodule InternalApi.Repository.RepositoryService.Service do rpc :VerifyWebhookSignature, InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse + + rpc :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + + rpc :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse end defmodule InternalApi.Repository.RepositoryService.Stub do diff --git a/hooks_processor/lib/internal_api/user.pb.ex b/hooks_processor/lib/internal_api/user.pb.ex index d1f38404b..178f09192 100644 --- a/hooks_processor/lib/internal_api/user.pb.ex +++ b/hooks_processor/lib/internal_api/user.pb.ex @@ -235,24 +235,6 @@ defmodule InternalApi.User.RegenerateTokenResponse do field :api_token, 3, type: :string, json_name: "apiToken" end -defmodule InternalApi.User.RefererRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field :user_id, 1, type: :string, json_name: "userId" -end - -defmodule InternalApi.User.RefererResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field :user_id, 1, type: :string, json_name: "userId" - field :entry_url, 2, type: :string, json_name: "entryUrl" - field :http_referer, 3, type: :string, json_name: "httpReferer" -end - defmodule InternalApi.User.CheckGithubTokenRequest do @moduledoc false @@ -423,16 +405,6 @@ defmodule InternalApi.User.UserUpdated do field :timestamp, 2, type: Google.Protobuf.Timestamp end -defmodule InternalApi.User.UserRefererCreated do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field :user_id, 1, type: :string, json_name: "userId" - field :entry_url, 2, type: :string, json_name: "entryUrl" - field :http_referer, 3, type: :string, json_name: "httpReferer" -end - defmodule InternalApi.User.UserJoinedOrganization do @moduledoc false @@ -543,8 +515,6 @@ defmodule InternalApi.User.UserService.Service do rpc :DeleteFavorite, InternalApi.User.Favorite, InternalApi.User.Favorite - rpc :Referer, InternalApi.User.RefererRequest, InternalApi.User.RefererResponse - rpc :CheckGithubToken, InternalApi.User.CheckGithubTokenRequest, InternalApi.User.CheckGithubTokenResponse diff --git a/hooks_receiver/Makefile b/hooks_receiver/Makefile index 764dc0222..6513b5743 100644 --- a/hooks_receiver/Makefile +++ b/hooks_receiver/Makefile @@ -84,4 +84,6 @@ endif /home/protoc/source/organization.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ /home/protoc/source/projecthub.proto + docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ + /home/protoc/source/license.proto rm -rf $(TMP_INTERNAL_REPO_DIR) diff --git a/hooks_receiver/lib/internal_api/organization.pb.ex b/hooks_receiver/lib/internal_api/organization.pb.ex index 5233e0404..53dca1902 100644 --- a/hooks_receiver/lib/internal_api/organization.pb.ex +++ b/hooks_receiver/lib/internal_api/organization.pb.ex @@ -27,21 +27,6 @@ defmodule InternalApi.Organization.Member.Role do field(:ADMIN, 2) end -defmodule InternalApi.Organization.Quota.Type do - @moduledoc false - - use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:MAX_PEOPLE_IN_ORG, 0) - field(:MAX_PARALELLISM_IN_ORG, 1) - field(:MAX_PROJECTS_IN_ORG, 7) - field(:MAX_PARALLEL_E1_STANDARD_2, 2) - field(:MAX_PARALLEL_E1_STANDARD_4, 3) - field(:MAX_PARALLEL_E1_STANDARD_8, 4) - field(:MAX_PARALLEL_A1_STANDARD_4, 5) - field(:MAX_PARALLEL_A1_STANDARD_8, 6) -end - defmodule InternalApi.Organization.OrganizationContact.ContactType do @moduledoc false @@ -61,6 +46,7 @@ defmodule InternalApi.Organization.DescribeRequest do field(:org_id, 1, type: :string, json_name: "orgId") field(:org_username, 2, type: :string, json_name: "orgUsername") field(:include_quotas, 3, type: :bool, json_name: "includeQuotas") + field(:soft_deleted, 4, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeResponse do @@ -78,6 +64,7 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" field(:org_ids, 1, repeated: true, type: :string, json_name: "orgIds") + field(:soft_deleted, 2, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeManyResponse do @@ -98,6 +85,7 @@ defmodule InternalApi.Organization.ListRequest do field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32, json_name: "pageSize") field(:page_token, 6, type: :string, json_name: "pageToken") + field(:soft_deleted, 7, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.ListResponse do @@ -129,23 +117,6 @@ defmodule InternalApi.Organization.CreateResponse do field(:organization, 2, type: InternalApi.Organization.Organization) end -defmodule InternalApi.Organization.CreateWithQuotasRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:organization, 1, type: InternalApi.Organization.Organization) - field(:quotas, 2, repeated: true, type: InternalApi.Organization.Quota) -end - -defmodule InternalApi.Organization.CreateWithQuotasResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:organization, 1, type: InternalApi.Organization.Organization) -end - defmodule InternalApi.Organization.UpdateRequest do @moduledoc false @@ -401,6 +372,14 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string, json_name: "orgId") end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + defmodule InternalApi.Organization.Organization do @moduledoc false @@ -420,7 +399,6 @@ defmodule InternalApi.Organization.Organization do field(:allowed_id_providers, 13, repeated: true, type: :string, json_name: "allowedIdProviders") field(:deny_member_workflows, 14, type: :bool, json_name: "denyMemberWorkflows") field(:deny_non_member_workflows, 15, type: :bool, json_name: "denyNonMemberWorkflows") - field(:quotas, 8, repeated: true, type: InternalApi.Organization.Quota) field(:settings, 16, repeated: true, type: InternalApi.Organization.OrganizationSetting) end @@ -450,15 +428,6 @@ defmodule InternalApi.Organization.Member do field(:github_uid, 8, type: :string, json_name: "githubUid") end -defmodule InternalApi.Organization.Quota do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:type, 1, type: InternalApi.Organization.Quota.Type, enum: true) - field(:value, 2, type: :uint32) -end - defmodule InternalApi.Organization.OrganizationSetting do @moduledoc false @@ -468,40 +437,6 @@ defmodule InternalApi.Organization.OrganizationSetting do field(:value, 2, type: :string) end -defmodule InternalApi.Organization.GetQuotasRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:org_id, 1, type: :string, json_name: "orgId") - field(:types, 2, repeated: true, type: InternalApi.Organization.Quota.Type, enum: true) -end - -defmodule InternalApi.Organization.GetQuotaResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:quotas, 1, repeated: true, type: InternalApi.Organization.Quota) -end - -defmodule InternalApi.Organization.UpdateQuotasRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:org_id, 1, type: :string, json_name: "orgId") - field(:quotas, 2, repeated: true, type: InternalApi.Organization.Quota) -end - -defmodule InternalApi.Organization.UpdateQuotasResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" - - field(:quotas, 1, repeated: true, type: InternalApi.Organization.Quota) -end - defmodule InternalApi.Organization.RepositoryIntegratorsRequest do @moduledoc false @@ -696,6 +631,15 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false @@ -719,12 +663,6 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Create, InternalApi.Organization.CreateRequest, InternalApi.Organization.CreateResponse) - rpc( - :CreateWithQuotas, - InternalApi.Organization.CreateWithQuotasRequest, - InternalApi.Organization.CreateWithQuotasResponse - ) - rpc(:Update, InternalApi.Organization.UpdateRequest, InternalApi.Organization.UpdateResponse) rpc(:IsValid, InternalApi.Organization.Organization, InternalApi.Organization.IsValidResponse) @@ -781,20 +719,10 @@ defmodule InternalApi.Organization.OrganizationService.Service do InternalApi.Organization.ListSuspensionsResponse ) - rpc( - :UpdateQuotas, - InternalApi.Organization.UpdateQuotasRequest, - InternalApi.Organization.UpdateQuotasResponse - ) - - rpc( - :GetQuotas, - InternalApi.Organization.GetQuotasRequest, - InternalApi.Organization.GetQuotaResponse - ) - rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/hooks_receiver/lib/internal_api/projecthub.pb.ex b/hooks_receiver/lib/internal_api/projecthub.pb.ex index 024342be3..639cd791e 100644 --- a/hooks_receiver/lib/internal_api/projecthub.pb.ex +++ b/hooks_receiver/lib/internal_api/projecthub.pb.ex @@ -39,6 +39,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -78,6 +79,7 @@ defmodule InternalApi.Projecthub.Project.Status.State do field(:INITIALIZING, 0) field(:READY, 1) field(:ERROR, 2) + field(:ONBOARDING, 3) end defmodule InternalApi.Projecthub.ListKeysetRequest.Direction do @@ -390,6 +392,7 @@ defmodule InternalApi.Projecthub.ListRequest do field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string, json_name: "ownerId") field(:repo_url, 4, type: :string, json_name: "repoUrl") + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.ListResponse do @@ -436,6 +439,7 @@ defmodule InternalApi.Projecthub.DescribeRequest do field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeResponse do @@ -454,6 +458,7 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -472,6 +477,7 @@ defmodule InternalApi.Projecthub.CreateRequest do field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:project, 2, type: InternalApi.Projecthub.Project) + field(:skip_onboarding, 3, type: :bool, json_name: "skipOnboarding") end defmodule InternalApi.Projecthub.CreateResponse do @@ -520,6 +526,23 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false @@ -555,6 +578,7 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -587,6 +611,7 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -699,6 +724,41 @@ defmodule InternalApi.Projecthub.GithubAppSwitchResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.FinishOnboardingRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.FinishOnboardingResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false @@ -719,6 +779,16 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string, json_name: "orgId") end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:project_id, 1, type: :string, json_name: "projectId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string, json_name: "orgId") +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false @@ -767,6 +837,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -793,6 +865,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, @@ -810,6 +888,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.GithubAppSwitchRequest, InternalApi.Projecthub.GithubAppSwitchResponse ) + + rpc( + :FinishOnboarding, + InternalApi.Projecthub.FinishOnboardingRequest, + InternalApi.Projecthub.FinishOnboardingResponse + ) end defmodule InternalApi.Projecthub.ProjectService.Stub do diff --git a/hooks_receiver/lib/internal_api/repository.pb.ex b/hooks_receiver/lib/internal_api/repository.pb.ex index 9dee6dd6f..890975954 100644 --- a/hooks_receiver/lib/internal_api/repository.pb.ex +++ b/hooks_receiver/lib/internal_api/repository.pb.ex @@ -88,6 +88,7 @@ defmodule InternalApi.Repository.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -370,6 +371,7 @@ defmodule InternalApi.Repository.Repository do field(:whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist) field(:hook_id, 12, type: :string, json_name: "hookId") field(:default_branch, 13, type: :string, json_name: "defaultBranch") + field(:connected, 14, type: :bool) end defmodule InternalApi.Repository.RemoteRepository do @@ -630,6 +632,38 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field(:valid, 1, type: :bool) end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:repository_id, 1, type: :string, json_name: "repositoryId") +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:repository, 1, type: InternalApi.Repository.Repository) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:repository_id, 1, type: :string, json_name: "repositoryId") +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:secret, 1, type: :string) +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false @@ -732,6 +766,18 @@ defmodule InternalApi.Repository.RepositoryService.Service do InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse ) + + rpc( + :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + ) + + rpc( + :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse + ) end defmodule InternalApi.Repository.RepositoryService.Stub do diff --git a/plumber/proto/lib/internal_api/organization.pb.ex b/plumber/proto/lib/internal_api/organization.pb.ex index 741f05b53..ba5a6fda0 100644 --- a/plumber/proto/lib/internal_api/organization.pb.ex +++ b/plumber/proto/lib/internal_api/organization.pb.ex @@ -530,6 +530,18 @@ defmodule InternalApi.Organization.RestoreRequest do field(:org_id, 1, type: :string) end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t() + } + defstruct [:org_id] + + field :org_id, 1, type: :string +end + defmodule InternalApi.Organization.Organization do @moduledoc false use Protobuf, syntax: :proto3 @@ -994,6 +1006,20 @@ defmodule InternalApi.Organization.OrganizationRestored do field(:timestamp, 2, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() + } + defstruct [:org_id, :timestamp] + + field :org_id, 1, type: :string + field :timestamp, 2, type: Google.Protobuf.Timestamp +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Organization.OrganizationService" diff --git a/plumber/proto/lib/internal_api/projecthub.pb.ex b/plumber/proto/lib/internal_api/projecthub.pb.ex index 8cb1ba837..c10f6483d 100644 --- a/plumber/proto/lib/internal_api/projecthub.pb.ex +++ b/plumber/proto/lib/internal_api/projecthub.pb.ex @@ -811,6 +811,32 @@ defmodule InternalApi.Projecthub.RestoreResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() + } + defstruct [:metadata] + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -1135,6 +1161,60 @@ defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do field(:secret, 2, type: :string) end +defmodule InternalApi.Projecthub.FinishOnboardingRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.FinishOnboardingResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() + } + defstruct [:metadata] + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t(), + secret: String.t() + } + defstruct [:metadata, :secret] + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta + field :secret, 2, type: :string +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1183,6 +1263,22 @@ defmodule InternalApi.Projecthub.ProjectRestored do field(:org_id, 3, type: :string) end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t(), + org_id: String.t() + } + defstruct [:project_id, :timestamp, :org_id] + + field :project_id, 1, type: :string + field :timestamp, 2, type: Google.Protobuf.Timestamp + field :org_id, 3, type: :string +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false use Protobuf, syntax: :proto3 diff --git a/plumber/proto/lib/internal_api/repo_proxy.pb.ex b/plumber/proto/lib/internal_api/repo_proxy.pb.ex index 0f0f6c774..2841166f3 100644 --- a/plumber/proto/lib/internal_api/repo_proxy.pb.ex +++ b/plumber/proto/lib/internal_api/repo_proxy.pb.ex @@ -354,6 +354,22 @@ defmodule InternalApi.RepoProxy.PullRequestUnmergeable do field(:timestamp, 3, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.RepoProxy.PullRequestUnmergeable do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + branch_name: String.t(), + timestamp: Google.Protobuf.Timestamp.t() + } + defstruct [:project_id, :branch_name, :timestamp] + + field :project_id, 1, type: :string + field :branch_name, 2, type: :string + field :timestamp, 3, type: Google.Protobuf.Timestamp +end + defmodule InternalApi.RepoProxy.RepoProxyService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.RepoProxy.RepoProxyService" diff --git a/plumber/proto/lib/internal_api/repository.pb.ex b/plumber/proto/lib/internal_api/repository.pb.ex index 06aa6b023..f19c21cf1 100644 --- a/plumber/proto/lib/internal_api/repository.pb.ex +++ b/plumber/proto/lib/internal_api/repository.pb.ex @@ -956,6 +956,54 @@ defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do field(:secret, 1, type: :string) end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + defstruct [:repository_id] + + field :repository_id, 1, type: :string +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository: InternalApi.Repository.Repository.t() + } + defstruct [:repository] + + field :repository, 1, type: InternalApi.Repository.Repository +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + defstruct [:repository_id] + + field :repository_id, 1, type: :string +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + secret: String.t() + } + defstruct [:secret] + + field :secret, 1, type: :string +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Repository.RepositoryService" diff --git a/plumber/proto/lib/internal_api/user.pb.ex b/plumber/proto/lib/internal_api/user.pb.ex index 5fc2ba9a3..8d4db4124 100644 --- a/plumber/proto/lib/internal_api/user.pb.ex +++ b/plumber/proto/lib/internal_api/user.pb.ex @@ -424,6 +424,18 @@ defmodule InternalApi.User.DescribeByEmailRequest do field(:email, 1, type: :string) end +defmodule InternalApi.User.DescribeByEmailRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + email: String.t() + } + defstruct [:email] + + field :email, 1, type: :string +end + defmodule InternalApi.User.RefreshRepositoryProviderRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -472,6 +484,26 @@ defmodule InternalApi.User.CreateRequest do field(:skip_password_change, 5, type: :bool) end +defmodule InternalApi.User.CreateRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + email: String.t(), + name: String.t(), + password: String.t(), + repository_providers: [InternalApi.User.RepositoryProvider.t()], + skip_password_change: boolean + } + defstruct [:email, :name, :password, :repository_providers, :skip_password_change] + + field :email, 1, type: :string + field :name, 2, type: :string + field :password, 3, type: :string + field :repository_providers, 4, repeated: true, type: InternalApi.User.RepositoryProvider + field :skip_password_change, 5, type: :bool +end + defmodule InternalApi.User.User do @moduledoc false use Protobuf, syntax: :proto3 diff --git a/projecthub-rest-api/lib/internal_api/organization.pb.ex b/projecthub-rest-api/lib/internal_api/organization.pb.ex index 9c6c07d41..741f05b53 100644 --- a/projecthub-rest-api/lib/internal_api/organization.pb.ex +++ b/projecthub-rest-api/lib/internal_api/organization.pb.ex @@ -5,13 +5,15 @@ defmodule InternalApi.Organization.DescribeRequest do @type t :: %__MODULE__{ org_id: String.t(), org_username: String.t(), - include_quotas: boolean + include_quotas: boolean, + soft_deleted: boolean } - defstruct [:org_id, :org_username, :include_quotas] + defstruct [:org_id, :org_username, :include_quotas, :soft_deleted] field(:org_id, 1, type: :string) field(:org_username, 2, type: :string) field(:include_quotas, 3, type: :bool) + field(:soft_deleted, 4, type: :bool) end defmodule InternalApi.Organization.DescribeResponse do @@ -33,11 +35,13 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - org_ids: [String.t()] + org_ids: [String.t()], + soft_deleted: boolean } - defstruct [:org_ids] + defstruct [:org_ids, :soft_deleted] field(:org_ids, 1, repeated: true, type: :string) + field(:soft_deleted, 2, type: :bool) end defmodule InternalApi.Organization.DescribeManyResponse do @@ -61,15 +65,17 @@ defmodule InternalApi.Organization.ListRequest do created_at_gt: Google.Protobuf.Timestamp.t(), order: integer, page_size: integer, - page_token: String.t() + page_token: String.t(), + soft_deleted: boolean } - defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token] + defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token, :soft_deleted] field(:user_id, 2, type: :string) field(:created_at_gt, 3, type: Google.Protobuf.Timestamp) field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32) field(:page_token, 6, type: :string) + field(:soft_deleted, 7, type: :bool) end defmodule InternalApi.Organization.ListRequest.Order do @@ -512,6 +518,18 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string) end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t() + } + defstruct [:org_id] + + field(:org_id, 1, type: :string) +end + defmodule InternalApi.Organization.Organization do @moduledoc false use Protobuf, syntax: :proto3 @@ -962,6 +980,20 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() + } + defstruct [:org_id, :timestamp] + + field(:org_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Organization.OrganizationService" @@ -1034,6 +1066,7 @@ defmodule InternalApi.Organization.OrganizationService.Service do ) rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) rpc( :RepositoryIntegrators, diff --git a/projecthub-rest-api/lib/internal_api/projecthub.pb.ex b/projecthub-rest-api/lib/internal_api/projecthub.pb.ex index 891a46e76..8cb1ba837 100644 --- a/projecthub-rest-api/lib/internal_api/projecthub.pb.ex +++ b/projecthub-rest-api/lib/internal_api/projecthub.pb.ex @@ -332,6 +332,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Scheduler do @@ -554,14 +555,16 @@ defmodule InternalApi.Projecthub.ListRequest do metadata: InternalApi.Projecthub.RequestMeta.t(), pagination: InternalApi.Projecthub.PaginationRequest.t(), owner_id: String.t(), - repo_url: String.t() + repo_url: String.t(), + soft_deleted: boolean } - defstruct [:metadata, :pagination, :owner_id, :repo_url] + defstruct [:metadata, :pagination, :owner_id, :repo_url, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string) field(:repo_url, 4, type: :string) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.ListResponse do @@ -638,14 +641,16 @@ defmodule InternalApi.Projecthub.DescribeRequest do metadata: InternalApi.Projecthub.RequestMeta.t(), id: String.t(), name: String.t(), - detailed: boolean + detailed: boolean, + soft_deleted: boolean } - defstruct [:metadata, :id, :name, :detailed] + defstruct [:metadata, :id, :name, :detailed, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.DescribeResponse do @@ -668,12 +673,14 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do @type t :: %__MODULE__{ metadata: InternalApi.Projecthub.RequestMeta.t(), - ids: [String.t()] + ids: [String.t()], + soft_deleted: boolean } - defstruct [:metadata, :ids] + defstruct [:metadata, :ids, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool) end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -778,6 +785,32 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() + } + defstruct [:metadata] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -841,13 +874,15 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.RegenerateDeployKeyRequest do @@ -885,13 +920,15 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.CheckWebhookRequest do @@ -1070,6 +1107,34 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t(), + secret: String.t() + } + defstruct [:metadata, :secret] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1102,6 +1167,22 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string) end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t(), + org_id: String.t() + } + defstruct [:project_id, :timestamp, :org_id] + + field(:project_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string) +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1155,6 +1236,7 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Create, InternalApi.Projecthub.CreateRequest, InternalApi.Projecthub.CreateResponse) rpc(:Update, InternalApi.Projecthub.UpdateRequest, InternalApi.Projecthub.UpdateResponse) rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -1181,6 +1263,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/projecthub-rest-api/lib/internal_api/rbac.pb.ex b/projecthub-rest-api/lib/internal_api/rbac.pb.ex index a261b94f0..29fb21c76 100644 --- a/projecthub-rest-api/lib/internal_api/rbac.pb.ex +++ b/projecthub-rest-api/lib/internal_api/rbac.pb.ex @@ -536,6 +536,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do field(:ROLE_BINDING_SOURCE_GITLAB, 4) field(:ROLE_BINDING_SOURCE_SCIM, 5) field(:ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6) + field(:ROLE_BINDING_SOURCE_SAML_JIT, 7) end defmodule InternalApi.RBAC.RBAC.Service do diff --git a/projecthub/docker-compose.yml b/projecthub/docker-compose.yml index e7a519588..a29143c10 100644 --- a/projecthub/docker-compose.yml +++ b/projecthub/docker-compose.yml @@ -2,6 +2,7 @@ version: '3.6' services: app: + platform: linux/amd64 container_name: projecthub image: "${IMAGE:-projecthub-app}:${IMAGE_TAG:-latest}" build: diff --git a/projecthub/lib/internal_api/artifacthub.pb.ex b/projecthub/lib/internal_api/artifacthub.pb.ex index e0877a823..88b515a62 100644 --- a/projecthub/lib/internal_api/artifacthub.pb.ex +++ b/projecthub/lib/internal_api/artifacthub.pb.ex @@ -134,6 +134,7 @@ defmodule InternalApi.Artifacthub.ListPathRequest do field(:artifact_id, 1, type: :string, json_name: "artifactId") field(:path, 2, type: :string) + field(:unwrap_directories, 3, type: :bool, json_name: "unwrapDirectories") end defmodule InternalApi.Artifacthub.ListPathResponse do diff --git a/projecthub/lib/internal_api/organization.pb.ex b/projecthub/lib/internal_api/organization.pb.ex index 25cfe113b..2d7ec69b8 100644 --- a/projecthub/lib/internal_api/organization.pb.ex +++ b/projecthub/lib/internal_api/organization.pb.ex @@ -41,6 +41,7 @@ defmodule InternalApi.Organization.DescribeRequest do field(:org_id, 1, type: :string, json_name: "orgId") field(:org_username, 2, type: :string, json_name: "orgUsername") field(:include_quotas, 3, type: :bool, json_name: "includeQuotas") + field(:soft_deleted, 4, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeResponse do @@ -56,6 +57,7 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto3 field(:org_ids, 1, repeated: true, type: :string, json_name: "orgIds") + field(:soft_deleted, 2, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeManyResponse do @@ -74,6 +76,7 @@ defmodule InternalApi.Organization.ListRequest do field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32, json_name: "pageSize") field(:page_token, 6, type: :string, json_name: "pageToken") + field(:soft_deleted, 7, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.ListResponse do @@ -330,6 +333,13 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string, json_name: "orgId") end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto3 + + field(:org_id, 1, type: :string, json_name: "orgId") +end + defmodule InternalApi.Organization.Organization do @moduledoc false use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto3 @@ -558,6 +568,14 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto3 + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false use GRPC.Service, @@ -638,6 +656,8 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/projecthub/lib/internal_api/projecthub.pb.ex b/projecthub/lib/internal_api/projecthub.pb.ex index cd14fb505..7fbd40ce0 100644 --- a/projecthub/lib/internal_api/projecthub.pb.ex +++ b/projecthub/lib/internal_api/projecthub.pb.ex @@ -35,6 +35,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do diff --git a/projecthub/lib/internal_api/rbac.pb.ex b/projecthub/lib/internal_api/rbac.pb.ex index e5041f22d..2b68009be 100644 --- a/projecthub/lib/internal_api/rbac.pb.ex +++ b/projecthub/lib/internal_api/rbac.pb.ex @@ -26,6 +26,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do field(:ROLE_BINDING_SOURCE_GITLAB, 4) field(:ROLE_BINDING_SOURCE_SCIM, 5) field(:ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6) + field(:ROLE_BINDING_SOURCE_SAML_JIT, 7) end defmodule InternalApi.RBAC.ListUserPermissionsRequest do diff --git a/projecthub/lib/projecthub/api/grpc_server.ex b/projecthub/lib/projecthub/api/grpc_server.ex index 3fd9702c8..801cdfa8e 100644 --- a/projecthub/lib/projecthub/api/grpc_server.ex +++ b/projecthub/lib/projecthub/api/grpc_server.ex @@ -943,7 +943,8 @@ defmodule Projecthub.Api.GrpcServer do build_tag: Enum.member?(run_on, :TAGS), build_branch: Enum.member?(run_on, :BRANCHES), build_pr: Enum.member?(run_on, :PULL_REQUESTS), - build_forked_pr: Enum.member?(run_on, :FORKED_PULL_REQUESTS) + build_forked_pr: Enum.member?(run_on, :FORKED_PULL_REQUESTS), + build_draft_pr: Enum.member?(run_on, :DRAFT_PULL_REQUESTS) } end @@ -1225,7 +1226,8 @@ defmodule Projecthub.Api.GrpcServer do {:TAGS, project.build_tag}, {:BRANCHES, project.build_branch}, {:PULL_REQUESTS, project.build_pr}, - {:FORKED_PULL_REQUESTS, project.build_forked_pr} + {:FORKED_PULL_REQUESTS, project.build_forked_pr}, + {:DRAFT_PULL_REQUESTS, project.build_draft_pr} ] |> Enum.filter(fn e -> elem(e, 1) end) |> Enum.map(fn e -> elem(e, 0) end) diff --git a/projecthub/lib/projecthub/models/project.ex b/projecthub/lib/projecthub/models/project.ex index 8c76a811b..0ea1008c7 100644 --- a/projecthub/lib/projecthub/models/project.ex +++ b/projecthub/lib/projecthub/models/project.ex @@ -36,6 +36,7 @@ defmodule Projecthub.Models.Project do field(:build_branch, :boolean, default: true) field(:build_pr, :boolean, default: false) field(:build_forked_pr, :boolean, default: false) + field(:build_draft_pr, :boolean, default: true) field(:allowed_secrets, :string, default: "") field(:allowed_contributors, :string, default: "") @@ -224,6 +225,7 @@ defmodule Projecthub.Models.Project do :build_branch, :build_pr, :build_forked_pr, + :build_draft_pr, :allowed_secrets, :allowed_contributors, :public, diff --git a/projecthub/priv/repo/migrations/20250616120601_add_build_draft_pr_for_projects.exs b/projecthub/priv/repo/migrations/20250616120601_add_build_draft_pr_for_projects.exs new file mode 100644 index 000000000..6a68be3e0 --- /dev/null +++ b/projecthub/priv/repo/migrations/20250616120601_add_build_draft_pr_for_projects.exs @@ -0,0 +1,9 @@ +defmodule Projecthub.Repo.Migrations.AddBuildDraftPrForProjects do + use Ecto.Migration + + def change do + alter table("projects") do + add :build_draft_pr, :boolean, default: true, null: false + end + end +end diff --git a/projecthub/test/projecthub/api/grpc_server_test.exs b/projecthub/test/projecthub/api/grpc_server_test.exs index e08b3ba05..8b2d98a13 100644 --- a/projecthub/test/projecthub/api/grpc_server_test.exs +++ b/projecthub/test/projecthub/api/grpc_server_test.exs @@ -85,7 +85,7 @@ defmodule Projecthub.Api.GrpcServerTest do InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.new( allowed_secrets: [] ), - run_on: [:TAGS, :BRANCHES], + run_on: [:TAGS, :BRANCHES, :DRAFT_PULL_REQUESTS], pipeline_file: ".semaphore/semaphore.yml", status: InternalApi.Projecthub.Project.Spec.Repository.Status.new( @@ -196,7 +196,7 @@ defmodule Projecthub.Api.GrpcServerTest do InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.new( allowed_secrets: [] ), - run_on: [:TAGS, :BRANCHES], + run_on: [:TAGS, :BRANCHES, :DRAFT_PULL_REQUESTS], pipeline_file: ".semaphore/semaphore.yml", status: InternalApi.Projecthub.Project.Spec.Repository.Status.new( @@ -340,7 +340,7 @@ defmodule Projecthub.Api.GrpcServerTest do InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.new( allowed_secrets: [] ), - run_on: [:TAGS, :BRANCHES], + run_on: [:TAGS, :BRANCHES, :DRAFT_PULL_REQUESTS], pipeline_file: ".semaphore/semaphore.yml", status: InternalApi.Projecthub.Project.Spec.Repository.Status.new( @@ -526,7 +526,7 @@ defmodule Projecthub.Api.GrpcServerTest do InternalApi.Projecthub.Project.Spec.Repository.ForkedPullRequests.new( allowed_secrets: [] ), - run_on: [:TAGS, :BRANCHES], + run_on: [:TAGS, :BRANCHES, :DRAFT_PULL_REQUESTS], pipeline_file: ".semaphore/semaphore.yml", status: InternalApi.Projecthub.Project.Spec.Repository.Status.new( diff --git a/projecthub/test/projecthub/models/project_test.exs b/projecthub/test/projecthub/models/project_test.exs index ac2390d7a..caaac2917 100644 --- a/projecthub/test/projecthub/models/project_test.exs +++ b/projecthub/test/projecthub/models/project_test.exs @@ -125,6 +125,7 @@ defmodule Projecthub.Models.ProjectTest do assert project.build_tag == true assert project.build_branch == true assert project.build_forked_pr == false + assert project.build_draft_pr == true end test "it should create a repo record" do @@ -285,6 +286,7 @@ defmodule Projecthub.Models.ProjectTest do id: project.id, org_id: org_id, description: "A repo for testing SemaphoreCI features", + build_draft_pr: false, state: "ready" } @@ -310,6 +312,7 @@ defmodule Projecthub.Models.ProjectTest do assert updated_project.creator_id == creator_id assert updated_project.organization_id == project.organization_id assert updated_project.description == "A repo for testing SemaphoreCI features" + assert updated_project.build_draft_pr == false end test "it emits a project created event" do diff --git a/public-api/v1alpha/lib/internal_api/plumber_w_f.workflow.pb.ex b/public-api/v1alpha/lib/internal_api/plumber_w_f.workflow.pb.ex index 3124b5830..10e53ae68 100644 --- a/public-api/v1alpha/lib/internal_api/plumber_w_f.workflow.pb.ex +++ b/public-api/v1alpha/lib/internal_api/plumber_w_f.workflow.pb.ex @@ -608,32 +608,6 @@ defmodule InternalApi.PlumberWF.DescribeManyResponse do field(:workflows, 2, repeated: true, type: InternalApi.PlumberWF.WorkflowDetails) end -defmodule InternalApi.PlumberWF.DescribeManyRequest do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - wf_ids: [String.t()] - } - defstruct [:wf_ids] - - field(:wf_ids, 1, repeated: true, type: :string) -end - -defmodule InternalApi.PlumberWF.DescribeManyResponse do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - status: InternalApi.Status.t(), - workflows: [InternalApi.PlumberWF.WorkflowDetails.t()] - } - defstruct [:status, :workflows] - - field(:status, 1, type: InternalApi.Status) - field(:workflows, 2, repeated: true, type: InternalApi.PlumberWF.WorkflowDetails) -end - defmodule InternalApi.PlumberWF.TerminateRequest do @moduledoc false use Protobuf, syntax: :proto3 diff --git a/public-api/v1alpha/lib/internal_api/projecthub.pb.ex b/public-api/v1alpha/lib/internal_api/projecthub.pb.ex index 097c4b7d7..8cb1ba837 100644 --- a/public-api/v1alpha/lib/internal_api/projecthub.pb.ex +++ b/public-api/v1alpha/lib/internal_api/projecthub.pb.ex @@ -332,6 +332,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Scheduler do diff --git a/public-api/v1alpha/scripts/internal_protos.sh b/public-api/v1alpha/scripts/internal_protos.sh index 37f6649e4..adcd6eb01 100755 --- a/public-api/v1alpha/scripts/internal_protos.sh +++ b/public-api/v1alpha/scripts/internal_protos.sh @@ -23,6 +23,8 @@ secrethub self_hosted server_farm.job user +loghub +loghub2 ' for element in $list;do diff --git a/public-api/v2/Makefile b/public-api/v2/Makefile index 7ea5186fd..6ce640faa 100644 --- a/public-api/v2/Makefile +++ b/public-api/v2/Makefile @@ -83,9 +83,9 @@ endif docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ /home/protoc/source/include/google/rpc/google/protobuf/any.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ - /home/protoc/source/include/google/rpc/google/rpc/status.proto + /home/protoc/source/include/google/rpc/status.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ - /home/protoc/source/include/google/rpc/google/rpc/code.proto + /home/protoc/source/include/google/rpc/code.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ /home/protoc/source/audit.proto docker run --rm -v $(PWD):/home/protoc/code -v $(TMP_INTERNAL_REPO_DIR):/home/protoc/source renderedtext/protoc:$(RT_PROTOC_IMG_VSN) protoc -I /home/protoc/source -I /home/protoc/source/include --elixir_out=plugins=grpc:$(RELATIVE_INTERNAL_PB_OUTPUT_DIR) --plugin=/root/.mix/escripts/protoc-gen-elixir \ diff --git a/public-api/v2/lib/internal_api/artifacthub.pb.ex b/public-api/v2/lib/internal_api/artifacthub.pb.ex index c5fb5c6c1..340b6241b 100644 --- a/public-api/v2/lib/internal_api/artifacthub.pb.ex +++ b/public-api/v2/lib/internal_api/artifacthub.pb.ex @@ -148,6 +148,7 @@ defmodule InternalApi.Artifacthub.ListPathRequest do field(:artifact_id, 1, type: :string, json_name: "artifactId") field(:path, 2, type: :string) + field(:unwrap_directories, 3, type: :bool, json_name: "unwrapDirectories") end defmodule InternalApi.Artifacthub.ListPathResponse do diff --git a/public-api/v2/lib/internal_api/audit.pb.ex b/public-api/v2/lib/internal_api/audit.pb.ex new file mode 100644 index 000000000..be6266fca --- /dev/null +++ b/public-api/v2/lib/internal_api/audit.pb.ex @@ -0,0 +1,376 @@ +defmodule InternalApi.Audit.StreamProvider do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:S3, 0) +end + +defmodule InternalApi.Audit.StreamStatus do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:ACTIVE, 0) + field(:PAUSED, 1) +end + +defmodule InternalApi.Audit.PaginatedListRequest.Direction do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:NEXT, 0) + field(:PREVIOUS, 1) +end + +defmodule InternalApi.Audit.ListStreamLogsRequest.Direction do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:NEXT, 0) + field(:PREVIOUS, 1) +end + +defmodule InternalApi.Audit.S3StreamConfig.Type do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:USER, 0) + field(:INSTANCE_ROLE, 1) +end + +defmodule InternalApi.Audit.Event.Resource do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:Project, 0) + field(:User, 1) + field(:Workflow, 2) + field(:Pipeline, 3) + field(:DebugSession, 4) + field(:PeriodicScheduler, 5) + field(:Secret, 6) + field(:Notification, 7) + field(:Dashboard, 8) + field(:Job, 9) + field(:Artifact, 10) + field(:Organization, 11) + field(:SelfHostedAgentType, 12) + field(:SelfHostedAgent, 13) + field(:CustomDashboard, 14) + field(:CustomDashboardItem, 15) + field(:ProjectInsightsSettings, 16) + field(:Okta, 17) + field(:FlakyTests, 18) + field(:RBACRole, 19) +end + +defmodule InternalApi.Audit.Event.Operation do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:Added, 0) + field(:Removed, 1) + field(:Modified, 2) + field(:Started, 3) + field(:Stopped, 4) + field(:Promoted, 5) + field(:Demoted, 6) + field(:Rebuild, 7) + field(:Download, 8) + field(:Disabled, 9) +end + +defmodule InternalApi.Audit.Event.Medium do + @moduledoc false + + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:Web, 0) + field(:API, 1) + field(:CLI, 2) +end + +defmodule InternalApi.Audit.ListRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:all_events_in_operation, 2, type: :bool, json_name: "allEventsInOperation") +end + +defmodule InternalApi.Audit.ListResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:events, 1, repeated: true, type: InternalApi.Audit.Event) +end + +defmodule InternalApi.Audit.PaginatedListRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:page_size, 2, type: :int32, json_name: "pageSize") + field(:page_token, 3, type: :string, json_name: "pageToken") + field(:direction, 4, type: InternalApi.Audit.PaginatedListRequest.Direction, enum: true) +end + +defmodule InternalApi.Audit.PaginatedListResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:events, 1, repeated: true, type: InternalApi.Audit.Event) + field(:next_page_token, 2, type: :string, json_name: "nextPageToken") + field(:previous_page_token, 3, type: :string, json_name: "previousPageToken") +end + +defmodule InternalApi.Audit.ListStreamLogsRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:page_size, 2, type: :int32, json_name: "pageSize") + field(:page_token, 3, type: :string, json_name: "pageToken") + field(:direction, 4, type: InternalApi.Audit.ListStreamLogsRequest.Direction, enum: true) +end + +defmodule InternalApi.Audit.ListStreamLogsResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream_logs, 1, + repeated: true, + type: InternalApi.Audit.StreamLog, + json_name: "streamLogs" + ) + + field(:next_page_token, 2, type: :string, json_name: "nextPageToken") + field(:previous_page_token, 3, type: :string, json_name: "previousPageToken") +end + +defmodule InternalApi.Audit.StreamLog do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:timestamp, 1, type: Google.Protobuf.Timestamp) + field(:error_message, 2, type: :string, json_name: "errorMessage") + field(:file_size, 3, type: :int32, json_name: "fileSize") + field(:file_name, 4, type: :string, json_name: "fileName") + + field(:first_event_timestamp, 5, + type: Google.Protobuf.Timestamp, + json_name: "firstEventTimestamp" + ) + + field(:last_event_timestamp, 6, + type: Google.Protobuf.Timestamp, + json_name: "lastEventTimestamp" + ) +end + +defmodule InternalApi.Audit.Stream do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:provider, 2, type: InternalApi.Audit.StreamProvider, enum: true) + field(:status, 3, type: InternalApi.Audit.StreamStatus, enum: true) + field(:s3_config, 4, type: InternalApi.Audit.S3StreamConfig, json_name: "s3Config") +end + +defmodule InternalApi.Audit.EditMeta do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:created_at, 1, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:updated_at, 2, type: Google.Protobuf.Timestamp, json_name: "updatedAt") + field(:activity_toggled_at, 3, type: Google.Protobuf.Timestamp, json_name: "activityToggledAt") + field(:updated_by, 4, type: :string, json_name: "updatedBy") + field(:activity_toggled_by, 5, type: :string, json_name: "activityToggledBy") +end + +defmodule InternalApi.Audit.S3StreamConfig do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:bucket, 1, type: :string) + field(:key_id, 2, type: :string, json_name: "keyId") + field(:key_secret, 3, type: :string, json_name: "keySecret") + field(:host, 4, type: :string) + field(:region, 5, type: :string) + field(:type, 6, type: InternalApi.Audit.S3StreamConfig.Type, enum: true) +end + +defmodule InternalApi.Audit.TestStreamRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream, 1, type: InternalApi.Audit.Stream) +end + +defmodule InternalApi.Audit.TestStreamResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:success, 1, type: :bool) + field(:message, 2, type: :string) +end + +defmodule InternalApi.Audit.CreateStreamRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream, 1, type: InternalApi.Audit.Stream) + field(:user_id, 2, type: :string, json_name: "userId") +end + +defmodule InternalApi.Audit.CreateStreamResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream, 1, type: InternalApi.Audit.Stream) + field(:meta, 2, type: InternalApi.Audit.EditMeta) +end + +defmodule InternalApi.Audit.DescribeStreamRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + +defmodule InternalApi.Audit.DescribeStreamResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream, 1, type: InternalApi.Audit.Stream) + field(:meta, 2, type: InternalApi.Audit.EditMeta) +end + +defmodule InternalApi.Audit.UpdateStreamRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream, 1, type: InternalApi.Audit.Stream) + field(:user_id, 2, type: :string, json_name: "userId") +end + +defmodule InternalApi.Audit.UpdateStreamResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:stream, 1, type: InternalApi.Audit.Stream) + field(:meta, 2, type: InternalApi.Audit.EditMeta) +end + +defmodule InternalApi.Audit.DestroyStreamRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + +defmodule InternalApi.Audit.SetStreamStateRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:status, 2, type: InternalApi.Audit.StreamStatus, enum: true) + field(:user_id, 3, type: :string, json_name: "userId") +end + +defmodule InternalApi.Audit.Event do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:resource, 1, type: InternalApi.Audit.Event.Resource, enum: true) + field(:operation, 2, type: InternalApi.Audit.Event.Operation, enum: true) + field(:user_id, 3, type: :string, json_name: "userId") + field(:org_id, 4, type: :string, json_name: "orgId") + field(:ip_address, 5, type: :string, json_name: "ipAddress") + field(:username, 6, type: :string) + field(:description, 7, type: :string) + field(:metadata, 8, type: :string) + field(:timestamp, 9, type: Google.Protobuf.Timestamp) + field(:operation_id, 10, type: :string, json_name: "operationId") + field(:resource_id, 11, type: :string, json_name: "resourceId") + field(:resource_name, 12, type: :string, json_name: "resourceName") + field(:medium, 13, type: InternalApi.Audit.Event.Medium, enum: true) +end + +defmodule InternalApi.Audit.AuditService.Service do + @moduledoc false + + use GRPC.Service, name: "InternalApi.Audit.AuditService", protoc_gen_elixir_version: "0.12.0" + + rpc(:List, InternalApi.Audit.ListRequest, InternalApi.Audit.ListResponse) + + rpc( + :PaginatedList, + InternalApi.Audit.PaginatedListRequest, + InternalApi.Audit.PaginatedListResponse + ) + + rpc(:TestStream, InternalApi.Audit.TestStreamRequest, InternalApi.Audit.TestStreamResponse) + + rpc( + :CreateStream, + InternalApi.Audit.CreateStreamRequest, + InternalApi.Audit.CreateStreamResponse + ) + + rpc( + :DescribeStream, + InternalApi.Audit.DescribeStreamRequest, + InternalApi.Audit.DescribeStreamResponse + ) + + rpc( + :UpdateStream, + InternalApi.Audit.UpdateStreamRequest, + InternalApi.Audit.UpdateStreamResponse + ) + + rpc(:DestroyStream, InternalApi.Audit.DestroyStreamRequest, Google.Protobuf.Empty) + + rpc(:SetStreamState, InternalApi.Audit.SetStreamStateRequest, Google.Protobuf.Empty) + + rpc( + :ListStreamLogs, + InternalApi.Audit.ListStreamLogsRequest, + InternalApi.Audit.ListStreamLogsResponse + ) +end + +defmodule InternalApi.Audit.AuditService.Stub do + @moduledoc false + + use GRPC.Stub, service: InternalApi.Audit.AuditService.Service +end diff --git a/public-api/v2/lib/internal_api/organization.pb.ex b/public-api/v2/lib/internal_api/organization.pb.ex index daabc6df6..4413258b8 100644 --- a/public-api/v2/lib/internal_api/organization.pb.ex +++ b/public-api/v2/lib/internal_api/organization.pb.ex @@ -27,21 +27,6 @@ defmodule InternalApi.Organization.Member.Role do field(:ADMIN, 2) end -defmodule InternalApi.Organization.Quota.Type do - @moduledoc false - - use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:MAX_PEOPLE_IN_ORG, 0) - field(:MAX_PARALELLISM_IN_ORG, 1) - field(:MAX_PROJECTS_IN_ORG, 7) - field(:MAX_PARALLEL_E1_STANDARD_2, 2) - field(:MAX_PARALLEL_E1_STANDARD_4, 3) - field(:MAX_PARALLEL_E1_STANDARD_8, 4) - field(:MAX_PARALLEL_A1_STANDARD_4, 5) - field(:MAX_PARALLEL_A1_STANDARD_8, 6) -end - defmodule InternalApi.Organization.OrganizationContact.ContactType do @moduledoc false @@ -61,6 +46,7 @@ defmodule InternalApi.Organization.DescribeRequest do field(:org_id, 1, type: :string, json_name: "orgId") field(:org_username, 2, type: :string, json_name: "orgUsername") field(:include_quotas, 3, type: :bool, json_name: "includeQuotas") + field(:soft_deleted, 4, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeResponse do @@ -78,6 +64,7 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:org_ids, 1, repeated: true, type: :string, json_name: "orgIds") + field(:soft_deleted, 2, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeManyResponse do @@ -98,6 +85,7 @@ defmodule InternalApi.Organization.ListRequest do field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32, json_name: "pageSize") field(:page_token, 6, type: :string, json_name: "pageToken") + field(:soft_deleted, 7, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.ListResponse do @@ -129,23 +117,6 @@ defmodule InternalApi.Organization.CreateResponse do field(:organization, 2, type: InternalApi.Organization.Organization) end -defmodule InternalApi.Organization.CreateWithQuotasRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:organization, 1, type: InternalApi.Organization.Organization) - field(:quotas, 2, repeated: true, type: InternalApi.Organization.Quota) -end - -defmodule InternalApi.Organization.CreateWithQuotasResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:organization, 1, type: InternalApi.Organization.Organization) -end - defmodule InternalApi.Organization.UpdateRequest do @moduledoc false @@ -401,6 +372,14 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string, json_name: "orgId") end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + defmodule InternalApi.Organization.Organization do @moduledoc false @@ -420,7 +399,6 @@ defmodule InternalApi.Organization.Organization do field(:allowed_id_providers, 13, repeated: true, type: :string, json_name: "allowedIdProviders") field(:deny_member_workflows, 14, type: :bool, json_name: "denyMemberWorkflows") field(:deny_non_member_workflows, 15, type: :bool, json_name: "denyNonMemberWorkflows") - field(:quotas, 8, repeated: true, type: InternalApi.Organization.Quota) field(:settings, 16, repeated: true, type: InternalApi.Organization.OrganizationSetting) end @@ -450,15 +428,6 @@ defmodule InternalApi.Organization.Member do field(:github_uid, 8, type: :string, json_name: "githubUid") end -defmodule InternalApi.Organization.Quota do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:type, 1, type: InternalApi.Organization.Quota.Type, enum: true) - field(:value, 2, type: :uint32) -end - defmodule InternalApi.Organization.OrganizationSetting do @moduledoc false @@ -468,40 +437,6 @@ defmodule InternalApi.Organization.OrganizationSetting do field(:value, 2, type: :string) end -defmodule InternalApi.Organization.GetQuotasRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:org_id, 1, type: :string, json_name: "orgId") - field(:types, 2, repeated: true, type: InternalApi.Organization.Quota.Type, enum: true) -end - -defmodule InternalApi.Organization.GetQuotaResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:quotas, 1, repeated: true, type: InternalApi.Organization.Quota) -end - -defmodule InternalApi.Organization.UpdateQuotasRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:org_id, 1, type: :string, json_name: "orgId") - field(:quotas, 2, repeated: true, type: InternalApi.Organization.Quota) -end - -defmodule InternalApi.Organization.UpdateQuotasResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:quotas, 1, repeated: true, type: InternalApi.Organization.Quota) -end - defmodule InternalApi.Organization.RepositoryIntegratorsRequest do @moduledoc false @@ -696,6 +631,15 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false @@ -719,12 +663,6 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Create, InternalApi.Organization.CreateRequest, InternalApi.Organization.CreateResponse) - rpc( - :CreateWithQuotas, - InternalApi.Organization.CreateWithQuotasRequest, - InternalApi.Organization.CreateWithQuotasResponse - ) - rpc(:Update, InternalApi.Organization.UpdateRequest, InternalApi.Organization.UpdateResponse) rpc(:IsValid, InternalApi.Organization.Organization, InternalApi.Organization.IsValidResponse) @@ -781,20 +719,10 @@ defmodule InternalApi.Organization.OrganizationService.Service do InternalApi.Organization.ListSuspensionsResponse ) - rpc( - :UpdateQuotas, - InternalApi.Organization.UpdateQuotasRequest, - InternalApi.Organization.UpdateQuotasResponse - ) - - rpc( - :GetQuotas, - InternalApi.Organization.GetQuotasRequest, - InternalApi.Organization.GetQuotaResponse - ) - rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/public-api/v2/lib/internal_api/plumber_w_f.workflow.pb.ex b/public-api/v2/lib/internal_api/plumber_w_f.workflow.pb.ex index ab60d90ca..6bb59b4ae 100644 --- a/public-api/v2/lib/internal_api/plumber_w_f.workflow.pb.ex +++ b/public-api/v2/lib/internal_api/plumber_w_f.workflow.pb.ex @@ -28,6 +28,8 @@ defmodule InternalApi.PlumberWF.ScheduleRequest.ServiceType do field(:LOCAL, 1) field(:SNAPSHOT, 2) field(:BITBUCKET, 3) + field(:GITLAB, 4) + field(:GIT, 5) end defmodule InternalApi.PlumberWF.ListLatestWorkflowsRequest.Order do diff --git a/public-api/v2/lib/internal_api/projecthub.pb.ex b/public-api/v2/lib/internal_api/projecthub.pb.ex index bb2555b35..2232a1dc2 100644 --- a/public-api/v2/lib/internal_api/projecthub.pb.ex +++ b/public-api/v2/lib/internal_api/projecthub.pb.ex @@ -39,6 +39,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -78,6 +79,7 @@ defmodule InternalApi.Projecthub.Project.Status.State do field(:INITIALIZING, 0) field(:READY, 1) field(:ERROR, 2) + field(:ONBOARDING, 3) end defmodule InternalApi.Projecthub.ListKeysetRequest.Direction do @@ -390,6 +392,7 @@ defmodule InternalApi.Projecthub.ListRequest do field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string, json_name: "ownerId") field(:repo_url, 4, type: :string, json_name: "repoUrl") + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.ListResponse do @@ -413,6 +416,7 @@ defmodule InternalApi.Projecthub.ListKeysetRequest do field(:direction, 4, type: InternalApi.Projecthub.ListKeysetRequest.Direction, enum: true) field(:owner_id, 5, type: :string, json_name: "ownerId") field(:repo_url, 6, type: :string, json_name: "repoUrl") + field(:created_after, 7, type: Google.Protobuf.Timestamp, json_name: "createdAfter") end defmodule InternalApi.Projecthub.ListKeysetResponse do @@ -435,6 +439,7 @@ defmodule InternalApi.Projecthub.DescribeRequest do field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeResponse do @@ -453,6 +458,7 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -471,6 +477,7 @@ defmodule InternalApi.Projecthub.CreateRequest do field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:project, 2, type: InternalApi.Projecthub.Project) + field(:skip_onboarding, 3, type: :bool, json_name: "skipOnboarding") end defmodule InternalApi.Projecthub.CreateResponse do @@ -519,6 +526,23 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false @@ -554,6 +578,7 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -586,6 +611,7 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -698,6 +724,41 @@ defmodule InternalApi.Projecthub.GithubAppSwitchResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.FinishOnboardingRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.FinishOnboardingResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false @@ -718,6 +779,16 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string, json_name: "orgId") end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:project_id, 1, type: :string, json_name: "projectId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string, json_name: "orgId") +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false @@ -766,6 +837,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -792,6 +865,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, @@ -809,6 +888,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.GithubAppSwitchRequest, InternalApi.Projecthub.GithubAppSwitchResponse ) + + rpc( + :FinishOnboarding, + InternalApi.Projecthub.FinishOnboardingRequest, + InternalApi.Projecthub.FinishOnboardingResponse + ) end defmodule InternalApi.Projecthub.ProjectService.Stub do diff --git a/public-api/v2/lib/internal_api/rbac.pb.ex b/public-api/v2/lib/internal_api/rbac.pb.ex index f185a325f..fed11bb6f 100644 --- a/public-api/v2/lib/internal_api/rbac.pb.ex +++ b/public-api/v2/lib/internal_api/rbac.pb.ex @@ -1,7 +1,7 @@ defmodule InternalApi.RBAC.SubjectType do @moduledoc false - use Protobuf, enum: true, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:USER, 0) field(:GROUP, 1) @@ -10,7 +10,7 @@ end defmodule InternalApi.RBAC.Scope do @moduledoc false - use Protobuf, enum: true, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:SCOPE_UNSPECIFIED, 0) field(:SCOPE_ORG, 1) @@ -20,7 +20,7 @@ end defmodule InternalApi.RBAC.RoleBindingSource do @moduledoc false - use Protobuf, enum: true, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, enum: true, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:ROLE_BINDING_SOURCE_UNSPECIFIED, 0) field(:ROLE_BINDING_SOURCE_MANUALLY, 1) @@ -29,12 +29,13 @@ defmodule InternalApi.RBAC.RoleBindingSource do field(:ROLE_BINDING_SOURCE_GITLAB, 4) field(:ROLE_BINDING_SOURCE_SCIM, 5) field(:ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6) + field(:ROLE_BINDING_SOURCE_SAML_JIT, 7) end defmodule InternalApi.RBAC.ListUserPermissionsRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:user_id, 1, type: :string, json_name: "userId") field(:org_id, 2, type: :string, json_name: "orgId") @@ -44,7 +45,7 @@ end defmodule InternalApi.RBAC.ListUserPermissionsResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:user_id, 1, type: :string, json_name: "userId") field(:org_id, 2, type: :string, json_name: "orgId") @@ -55,7 +56,7 @@ end defmodule InternalApi.RBAC.ListExistingPermissionsRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:scope, 1, type: InternalApi.RBAC.Scope, enum: true) end @@ -63,7 +64,7 @@ end defmodule InternalApi.RBAC.ListExistingPermissionsResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:permissions, 1, repeated: true, type: InternalApi.RBAC.Permission) end @@ -71,7 +72,7 @@ end defmodule InternalApi.RBAC.AssignRoleRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role_assignment, 1, type: InternalApi.RBAC.RoleAssignment, json_name: "roleAssignment") field(:requester_id, 2, type: :string, json_name: "requesterId") @@ -80,13 +81,13 @@ end defmodule InternalApi.RBAC.AssignRoleResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" end defmodule InternalApi.RBAC.RetractRoleRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role_assignment, 1, type: InternalApi.RBAC.RoleAssignment, json_name: "roleAssignment") field(:requester_id, 2, type: :string, json_name: "requesterId") @@ -95,13 +96,13 @@ end defmodule InternalApi.RBAC.RetractRoleResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" end defmodule InternalApi.RBAC.SubjectsHaveRolesRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role_assignments, 1, repeated: true, @@ -113,7 +114,7 @@ end defmodule InternalApi.RBAC.SubjectsHaveRolesResponse.HasRole do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role_assignment, 1, type: InternalApi.RBAC.RoleAssignment, json_name: "roleAssignment") field(:has_role, 2, type: :bool, json_name: "hasRole") @@ -122,7 +123,7 @@ end defmodule InternalApi.RBAC.SubjectsHaveRolesResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:has_roles, 1, repeated: true, @@ -134,7 +135,7 @@ end defmodule InternalApi.RBAC.ListRolesRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:org_id, 1, type: :string, json_name: "orgId") field(:scope, 2, type: InternalApi.RBAC.Scope, enum: true) @@ -143,7 +144,7 @@ end defmodule InternalApi.RBAC.ListRolesResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:roles, 1, repeated: true, type: InternalApi.RBAC.Role) end @@ -151,7 +152,7 @@ end defmodule InternalApi.RBAC.DescribeRoleRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:org_id, 1, type: :string, json_name: "orgId") field(:role_id, 2, type: :string, json_name: "roleId") @@ -160,7 +161,7 @@ end defmodule InternalApi.RBAC.DescribeRoleResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role, 1, type: InternalApi.RBAC.Role) end @@ -168,7 +169,7 @@ end defmodule InternalApi.RBAC.ModifyRoleRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role, 1, type: InternalApi.RBAC.Role) field(:requester_id, 2, type: :string, json_name: "requesterId") @@ -177,7 +178,7 @@ end defmodule InternalApi.RBAC.ModifyRoleResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role, 1, type: InternalApi.RBAC.Role) end @@ -185,7 +186,7 @@ end defmodule InternalApi.RBAC.DestroyRoleRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:org_id, 1, type: :string, json_name: "orgId") field(:role_id, 2, type: :string, json_name: "roleId") @@ -195,7 +196,7 @@ end defmodule InternalApi.RBAC.DestroyRoleResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role_id, 1, type: :string, json_name: "roleId") end @@ -203,7 +204,7 @@ end defmodule InternalApi.RBAC.ListMembersRequest.Page do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:page_no, 1, type: :int32, json_name: "pageNo") field(:page_size, 2, type: :int32, json_name: "pageSize") @@ -212,7 +213,7 @@ end defmodule InternalApi.RBAC.ListMembersRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:org_id, 1, type: :string, json_name: "orgId") field(:project_id, 2, type: :string, json_name: "projectId") @@ -225,7 +226,7 @@ end defmodule InternalApi.RBAC.ListMembersResponse.Member do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:subject, 1, type: InternalApi.RBAC.Subject) @@ -239,16 +240,32 @@ end defmodule InternalApi.RBAC.ListMembersResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:members, 1, repeated: true, type: InternalApi.RBAC.ListMembersResponse.Member) field(:total_pages, 2, type: :int32, json_name: "totalPages") end +defmodule InternalApi.RBAC.CountMembersRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + +defmodule InternalApi.RBAC.CountMembersResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:members, 1, type: :int32) +end + defmodule InternalApi.RBAC.SubjectRoleBinding do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role, 1, type: InternalApi.RBAC.Role) field(:source, 2, type: InternalApi.RBAC.RoleBindingSource, enum: true) @@ -258,7 +275,7 @@ end defmodule InternalApi.RBAC.ListAccessibleOrgsRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:user_id, 1, type: :string, json_name: "userId") end @@ -266,7 +283,7 @@ end defmodule InternalApi.RBAC.ListAccessibleOrgsResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:org_ids, 1, repeated: true, type: :string, json_name: "orgIds") end @@ -274,7 +291,7 @@ end defmodule InternalApi.RBAC.ListAccessibleProjectsRequest do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:user_id, 1, type: :string, json_name: "userId") field(:org_id, 2, type: :string, json_name: "orgId") @@ -283,7 +300,7 @@ end defmodule InternalApi.RBAC.ListAccessibleProjectsResponse do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:project_ids, 1, repeated: true, type: :string, json_name: "projectIds") end @@ -291,7 +308,7 @@ end defmodule InternalApi.RBAC.RoleAssignment do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:role_id, 1, type: :string, json_name: "roleId") field(:subject, 2, type: InternalApi.RBAC.Subject) @@ -302,7 +319,7 @@ end defmodule InternalApi.RBAC.Subject do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:subject_type, 1, type: InternalApi.RBAC.SubjectType, @@ -314,10 +331,24 @@ defmodule InternalApi.RBAC.Subject do field(:display_name, 3, type: :string, json_name: "displayName") end +defmodule InternalApi.RBAC.RefreshCollaboratorsRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + +defmodule InternalApi.RBAC.RefreshCollaboratorsResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" +end + defmodule InternalApi.RBAC.Role do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:id, 1, type: :string) field(:name, 2, type: :string) @@ -340,7 +371,7 @@ end defmodule InternalApi.RBAC.Permission do @moduledoc false - use Protobuf, protoc_gen_elixir_version: "0.12.0", syntax: :proto3 + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:id, 1, type: :string) field(:name, 2, type: :string) @@ -385,6 +416,8 @@ defmodule InternalApi.RBAC.RBAC.Service do rpc(:ListMembers, InternalApi.RBAC.ListMembersRequest, InternalApi.RBAC.ListMembersResponse) + rpc(:CountMembers, InternalApi.RBAC.CountMembersRequest, InternalApi.RBAC.CountMembersResponse) + rpc( :ListAccessibleOrgs, InternalApi.RBAC.ListAccessibleOrgsRequest, @@ -396,6 +429,12 @@ defmodule InternalApi.RBAC.RBAC.Service do InternalApi.RBAC.ListAccessibleProjectsRequest, InternalApi.RBAC.ListAccessibleProjectsResponse ) + + rpc( + :RefreshCollaborators, + InternalApi.RBAC.RefreshCollaboratorsRequest, + InternalApi.RBAC.RefreshCollaboratorsResponse + ) end defmodule InternalApi.RBAC.RBAC.Stub do diff --git a/public-api/v2/lib/internal_api/repo_proxy.pb.ex b/public-api/v2/lib/internal_api/repo_proxy.pb.ex index 3731b4080..69e2e88a4 100644 --- a/public-api/v2/lib/internal_api/repo_proxy.pb.ex +++ b/public-api/v2/lib/internal_api/repo_proxy.pb.ex @@ -207,6 +207,16 @@ defmodule InternalApi.RepoProxy.CreateBlankResponse do field(:repo, 5, type: InternalApi.RepoProxy.CreateBlankResponse.Repo) end +defmodule InternalApi.RepoProxy.PullRequestUnmergeable do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:project_id, 1, type: :string, json_name: "projectId") + field(:branch_name, 2, type: :string, json_name: "branchName") + field(:timestamp, 3, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.RepoProxy.RepoProxyService.Service do @moduledoc false diff --git a/public-api/v2/lib/internal_api/repository_integrator.pb.ex b/public-api/v2/lib/internal_api/repository_integrator.pb.ex index 5a6aef6f7..40146c80e 100644 --- a/public-api/v2/lib/internal_api/repository_integrator.pb.ex +++ b/public-api/v2/lib/internal_api/repository_integrator.pb.ex @@ -6,6 +6,8 @@ defmodule InternalApi.RepositoryIntegrator.IntegrationType do field(:GITHUB_OAUTH_TOKEN, 0) field(:GITHUB_APP, 1) field(:BITBUCKET, 2) + field(:GITLAB, 3) + field(:GIT, 4) end defmodule InternalApi.RepositoryIntegrator.IntegrationScope do @@ -112,6 +114,18 @@ defmodule InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse do field(:installation_url, 3, type: :string, json_name: "installationUrl") end +defmodule InternalApi.RepositoryIntegrator.InitGithubInstallationRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" +end + +defmodule InternalApi.RepositoryIntegrator.InitGithubInstallationResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" +end + defmodule InternalApi.RepositoryIntegrator.GetRepositoriesRequest do @moduledoc false @@ -183,6 +197,12 @@ defmodule InternalApi.RepositoryIntegrator.RepositoryIntegratorService.Service d InternalApi.RepositoryIntegrator.GithubInstallationInfoResponse ) + rpc( + :InitGithubInstallation, + InternalApi.RepositoryIntegrator.InitGithubInstallationRequest, + InternalApi.RepositoryIntegrator.InitGithubInstallationResponse + ) + rpc( :GetRepositories, InternalApi.RepositoryIntegrator.GetRepositoriesRequest, diff --git a/public-api/v2/lib/internal_api/secrethub.pb.ex b/public-api/v2/lib/internal_api/secrethub.pb.ex index e4734b7dd..df9b5a7d2 100644 --- a/public-api/v2/lib/internal_api/secrethub.pb.ex +++ b/public-api/v2/lib/internal_api/secrethub.pb.ex @@ -498,6 +498,8 @@ defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenRequest do field(:job_type, 16, type: :string, json_name: "jobType") field(:git_pull_request_branch, 17, type: :string, json_name: "gitPullRequestBranch") field(:repo_slug, 18, type: :string, json_name: "repoSlug") + field(:triggerer, 19, type: :string) + field(:project_name, 20, type: :string, json_name: "projectName") end defmodule InternalApi.Secrethub.GenerateOpenIDConnectTokenResponse do @@ -563,6 +565,59 @@ defmodule InternalApi.Secrethub.UpdateEncryptedResponse do field(:encrypted_data, 3, type: InternalApi.Secrethub.EncryptedData, json_name: "encryptedData") end +defmodule InternalApi.Secrethub.GetJWTConfigRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:project_id, 2, type: :string, json_name: "projectId") +end + +defmodule InternalApi.Secrethub.GetJWTConfigResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:project_id, 2, type: :string, json_name: "projectId") + field(:claims, 3, repeated: true, type: InternalApi.Secrethub.ClaimConfig) + field(:is_active, 4, type: :bool, json_name: "isActive") +end + +defmodule InternalApi.Secrethub.UpdateJWTConfigRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:project_id, 2, type: :string, json_name: "projectId") + field(:claims, 3, repeated: true, type: InternalApi.Secrethub.ClaimConfig) + field(:is_active, 4, type: :bool, json_name: "isActive") +end + +defmodule InternalApi.Secrethub.UpdateJWTConfigResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:project_id, 2, type: :string, json_name: "projectId") +end + +defmodule InternalApi.Secrethub.ClaimConfig do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:name, 1, type: :string) + field(:description, 2, type: :string) + field(:is_active, 3, type: :bool, json_name: "isActive") + field(:is_mandatory, 4, type: :bool, json_name: "isMandatory") + field(:is_aws_tag, 5, type: :bool, json_name: "isAwsTag") + field(:is_system_claim, 6, type: :bool, json_name: "isSystemClaim") +end + defmodule InternalApi.Secrethub.SecretService.Service do @moduledoc false @@ -619,6 +674,18 @@ defmodule InternalApi.Secrethub.SecretService.Service do InternalApi.Secrethub.CheckoutManyRequest, InternalApi.Secrethub.CheckoutManyResponse ) + + rpc( + :GetJWTConfig, + InternalApi.Secrethub.GetJWTConfigRequest, + InternalApi.Secrethub.GetJWTConfigResponse + ) + + rpc( + :UpdateJWTConfig, + InternalApi.Secrethub.UpdateJWTConfigRequest, + InternalApi.Secrethub.UpdateJWTConfigResponse + ) end defmodule InternalApi.Secrethub.SecretService.Stub do diff --git a/public-api/v2/lib/internal_api/server_farm.job.pb.ex b/public-api/v2/lib/internal_api/server_farm.job.pb.ex index 5fecc68f9..616268258 100644 --- a/public-api/v2/lib/internal_api/server_farm.job.pb.ex +++ b/public-api/v2/lib/internal_api/server_farm.job.pb.ex @@ -63,7 +63,6 @@ defmodule InternalApi.ServerFarm.Job.DescribeRequest do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" field(:job_id, 1, type: :string, json_name: "jobId") - field(:with_spec, 2, type: :bool, json_name: "withSpec") end defmodule InternalApi.ServerFarm.Job.Job.Timeline do @@ -117,147 +116,7 @@ defmodule InternalApi.ServerFarm.Job.Job do field(:organization_id, 23, type: :string, json_name: "organizationId") field(:build_req_id, 24, type: :string, json_name: "buildReqId") field(:agent_name, 25, type: :string, json_name: "agentName") - field(:job_spec, 26, type: InternalApi.ServerFarm.Job.JobSpec, json_name: "jobSpec") -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.Secret do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:name, 1, type: :string) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.EnvVar do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:name, 1, type: :string) - field(:value, 2, type: :string) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.File do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:path, 1, type: :string) - field(:content, 2, type: :string) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.AgentType.Machine do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:type, 1, type: :string) - field(:os_image, 2, type: :string, json_name: "osImage") -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.AgentType.Container do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:name, 1, type: :string) - field(:image, 2, type: :string) - field(:command, 3, type: :string) - - field(:env_vars, 4, - repeated: true, - type: InternalApi.ServerFarm.Job.JobSpec.EnvVar, - json_name: "envVars" - ) - - field(:secrets, 5, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.Secret) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.AgentType.ImagePullSecret do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:name, 1, type: :string) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.AgentType do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:machine, 1, type: InternalApi.ServerFarm.Job.JobSpec.AgentType.Machine) - - field(:containers, 2, - repeated: true, - type: InternalApi.ServerFarm.Job.JobSpec.AgentType.Container - ) - - field(:image_pull_secrets, 3, - repeated: true, - type: InternalApi.ServerFarm.Job.JobSpec.AgentType.ImagePullSecret, - json_name: "imagePullSecrets" - ) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.Agent.Port do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:name, 1, type: :string) - field(:number, 2, type: :int32) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec.Agent do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:ip, 1, type: :string) - field(:ports, 2, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.Agent.Port) - field(:name, 3, type: :string) -end - -defmodule InternalApi.ServerFarm.Job.JobSpec do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:agent_type, 1, - type: InternalApi.ServerFarm.Job.JobSpec.AgentType, - json_name: "agentType" - ) - - field(:secrets, 2, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.Secret) - - field(:env_vars, 3, - repeated: true, - type: InternalApi.ServerFarm.Job.JobSpec.EnvVar, - json_name: "envVars" - ) - - field(:files, 4, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.File) - field(:agent, 5, type: InternalApi.ServerFarm.Job.JobSpec.Agent) - field(:commands, 6, repeated: true, type: :string) - - field(:epilogue_always_commands, 7, - repeated: true, - type: :string, - json_name: "epilogueAlwaysCommands" - ) - - field(:epilogue_on_pass_commands, 8, - repeated: true, - type: :string, - json_name: "epilogueOnPassCommands" - ) - - field(:epilogue_on_fail_commands, 9, - repeated: true, - type: :string, - json_name: "epilogueOnFailCommands" - ) + field(:agent_id, 27, type: :string, json_name: "agentId") end defmodule InternalApi.ServerFarm.Job.DescribeResponse do @@ -292,7 +151,8 @@ defmodule InternalApi.ServerFarm.Job.ListRequest do field(:ppl_ids, 9, repeated: true, type: :string, json_name: "pplIds") field(:created_at_gte, 10, type: Google.Protobuf.Timestamp, json_name: "createdAtGte") field(:created_at_lte, 11, type: Google.Protobuf.Timestamp, json_name: "createdAtLte") - field(:with_spec, 12, type: :bool, json_name: "withSpec") + field(:project_ids, 13, repeated: true, type: :string, json_name: "projectIds") + field(:machine_types, 14, repeated: true, type: :string, json_name: "machineTypes") end defmodule InternalApi.ServerFarm.Job.ListResponse do @@ -505,7 +365,13 @@ defmodule InternalApi.ServerFarm.Job.CreateRequest do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:job, 1, type: InternalApi.ServerFarm.Job.Job) + field(:requester_id, 1, type: :string, json_name: "requesterId") + field(:organization_id, 2, type: :string, json_name: "organizationId") + field(:project_id, 3, type: :string, json_name: "projectId") + field(:branch_name, 4, type: :string, json_name: "branchName") + field(:commit_sha, 5, type: :string, json_name: "commitSha") + field(:job_spec, 6, type: InternalApi.ServerFarm.Job.JobSpec, json_name: "jobSpec") + field(:restricted_job, 7, type: :bool, json_name: "restrictedJob") end defmodule InternalApi.ServerFarm.Job.CreateResponse do @@ -513,52 +379,124 @@ defmodule InternalApi.ServerFarm.Job.CreateResponse do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:job, 1, type: InternalApi.ServerFarm.Job.Job) + field(:status, 1, type: InternalApi.ResponseStatus) + field(:job, 2, type: InternalApi.ServerFarm.Job.Job) end -defmodule InternalApi.ServerFarm.Job.GetDebugSSHKeyRequest do +defmodule InternalApi.ServerFarm.Job.JobSpec.Agent.Machine do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:job_id, 1, type: :string, json_name: "jobId") + field(:type, 1, type: :string) + field(:os_image, 2, type: :string, json_name: "osImage") +end + +defmodule InternalApi.ServerFarm.Job.JobSpec.Agent.Container do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:name, 1, type: :string) + field(:image, 2, type: :string) + field(:command, 3, type: :string) + + field(:env_vars, 4, + repeated: true, + type: InternalApi.ServerFarm.Job.JobSpec.EnvVar, + json_name: "envVars" + ) + + field(:secrets, 5, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.Secret) end -defmodule InternalApi.ServerFarm.Job.GetDebugSSHKeyResponse do +defmodule InternalApi.ServerFarm.Job.JobSpec.Agent.ImagePullSecret do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:key, 1, type: :string) + field(:name, 1, type: :string) end -defmodule InternalApi.ServerFarm.Job.CreateDebugJobRequest do +defmodule InternalApi.ServerFarm.Job.JobSpec.Agent do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:job_id, 1, type: :string, json_name: "jobId") - field(:duration, 2, type: :uint32) - field(:user_id, 3, type: :string, json_name: "userId") + field(:machine, 1, type: InternalApi.ServerFarm.Job.JobSpec.Agent.Machine) + field(:containers, 2, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.Agent.Container) + + field(:image_pull_secrets, 3, + repeated: true, + type: InternalApi.ServerFarm.Job.JobSpec.Agent.ImagePullSecret, + json_name: "imagePullSecrets" + ) end -defmodule InternalApi.ServerFarm.Job.CreateDebugProjectRequest do +defmodule InternalApi.ServerFarm.Job.JobSpec.Secret do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:project_id, 1, type: :string, json_name: "projectId") - field(:duration, 2, type: :uint32) - field(:machine_type, 3, type: :string, json_name: "machineType") - field(:user_id, 4, type: :string, json_name: "userId") + field(:name, 1, type: :string) end -defmodule InternalApi.ServerFarm.Job.CreateDebugResponse do +defmodule InternalApi.ServerFarm.Job.JobSpec.EnvVar do @moduledoc false use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - field(:job, 1, type: InternalApi.ServerFarm.Job.Job) + field(:name, 1, type: :string) + field(:value, 2, type: :string) +end + +defmodule InternalApi.ServerFarm.Job.JobSpec.File do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:path, 1, type: :string) + field(:content, 2, type: :string) +end + +defmodule InternalApi.ServerFarm.Job.JobSpec do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:job_name, 1, type: :string, json_name: "jobName") + field(:agent, 2, type: InternalApi.ServerFarm.Job.JobSpec.Agent) + field(:secrets, 3, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.Secret) + + field(:env_vars, 4, + repeated: true, + type: InternalApi.ServerFarm.Job.JobSpec.EnvVar, + json_name: "envVars" + ) + + field(:files, 5, repeated: true, type: InternalApi.ServerFarm.Job.JobSpec.File) + field(:commands, 6, repeated: true, type: :string) + + field(:epilogue_always_commands, 7, + repeated: true, + type: :string, + json_name: "epilogueAlwaysCommands" + ) + + field(:epilogue_on_pass_commands, 8, + repeated: true, + type: :string, + json_name: "epilogueOnPassCommands" + ) + + field(:epilogue_on_fail_commands, 9, + repeated: true, + type: :string, + json_name: "epilogueOnFailCommands" + ) + + field(:priority, 10, type: :int32) + field(:execution_time_limit, 11, type: :int32, json_name: "executionTimeLimit") end defmodule InternalApi.ServerFarm.Job.JobService.Service do @@ -616,29 +554,11 @@ defmodule InternalApi.ServerFarm.Job.JobService.Service do InternalApi.ServerFarm.Job.CanAttachResponse ) - rpc( - :GetDebugSSHKey, - InternalApi.ServerFarm.Job.GetDebugSSHKeyRequest, - InternalApi.ServerFarm.Job.GetDebugSSHKeyResponse - ) - rpc( :Create, InternalApi.ServerFarm.Job.CreateRequest, InternalApi.ServerFarm.Job.CreateResponse ) - - rpc( - :CreateJobDebug, - InternalApi.ServerFarm.Job.CreateDebugJobRequest, - InternalApi.ServerFarm.Job.CreateDebugResponse - ) - - rpc( - :CreateProjectDebug, - InternalApi.ServerFarm.Job.CreateDebugProjectRequest, - InternalApi.ServerFarm.Job.CreateDebugResponse - ) end defmodule InternalApi.ServerFarm.Job.JobService.Stub do diff --git a/public-api/v2/lib/internal_api/user.pb.ex b/public-api/v2/lib/internal_api/user.pb.ex index 83ddd36fe..fdc19bcbc 100644 --- a/public-api/v2/lib/internal_api/user.pb.ex +++ b/public-api/v2/lib/internal_api/user.pb.ex @@ -238,24 +238,6 @@ defmodule InternalApi.User.RegenerateTokenResponse do field(:api_token, 3, type: :string, json_name: "apiToken") end -defmodule InternalApi.User.RefererRequest do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:user_id, 1, type: :string, json_name: "userId") -end - -defmodule InternalApi.User.RefererResponse do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:user_id, 1, type: :string, json_name: "userId") - field(:entry_url, 2, type: :string, json_name: "entryUrl") - field(:http_referer, 3, type: :string, json_name: "httpReferer") -end - defmodule InternalApi.User.CheckGithubTokenRequest do @moduledoc false @@ -321,6 +303,14 @@ defmodule InternalApi.User.DescribeByRepositoryProviderRequest do field(:provider, 1, type: InternalApi.User.RepositoryProvider) end +defmodule InternalApi.User.DescribeByEmailRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:email, 1, type: :string) +end + defmodule InternalApi.User.RefreshRepositoryProviderRequest do @moduledoc false @@ -343,6 +333,24 @@ defmodule InternalApi.User.RefreshRepositoryProviderResponse do ) end +defmodule InternalApi.User.CreateRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" + + field(:email, 1, type: :string) + field(:name, 2, type: :string) + field(:password, 3, type: :string) + + field(:repository_providers, 4, + repeated: true, + type: InternalApi.User.RepositoryProvider, + json_name: "repositoryProviders" + ) + + field(:skip_password_change, 5, type: :bool, json_name: "skipPasswordChange") +end + defmodule InternalApi.User.User do @moduledoc false @@ -405,16 +413,6 @@ defmodule InternalApi.User.UserUpdated do field(:timestamp, 2, type: Google.Protobuf.Timestamp) end -defmodule InternalApi.User.UserRefererCreated do - @moduledoc false - - use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0" - - field(:user_id, 1, type: :string, json_name: "userId") - field(:entry_url, 2, type: :string, json_name: "entryUrl") - field(:http_referer, 3, type: :string, json_name: "httpReferer") -end - defmodule InternalApi.User.UserJoinedOrganization do @moduledoc false @@ -505,6 +503,8 @@ defmodule InternalApi.User.UserService.Service do InternalApi.User.User ) + rpc(:DescribeByEmail, InternalApi.User.DescribeByEmailRequest, InternalApi.User.User) + rpc(:SearchUsers, InternalApi.User.SearchUsersRequest, InternalApi.User.SearchUsersResponse) rpc(:DescribeMany, InternalApi.User.DescribeManyRequest, InternalApi.User.DescribeManyResponse) @@ -529,8 +529,6 @@ defmodule InternalApi.User.UserService.Service do rpc(:DeleteFavorite, InternalApi.User.Favorite, InternalApi.User.Favorite) - rpc(:Referer, InternalApi.User.RefererRequest, InternalApi.User.RefererResponse) - rpc( :CheckGithubToken, InternalApi.User.CheckGithubTokenRequest, @@ -552,6 +550,8 @@ defmodule InternalApi.User.UserService.Service do InternalApi.User.RefreshRepositoryProviderRequest, InternalApi.User.RefreshRepositoryProviderResponse ) + + rpc(:Create, InternalApi.User.CreateRequest, InternalApi.User.User) end defmodule InternalApi.User.UserService.Stub do diff --git a/public-api/v2/test/support/stubs/organization.ex b/public-api/v2/test/support/stubs/organization.ex index ee8eb548e..35dca5771 100644 --- a/public-api/v2/test/support/stubs/organization.ex +++ b/public-api/v2/test/support/stubs/organization.ex @@ -109,21 +109,7 @@ defmodule Support.Stubs.Organization do def describe(req, _) do org = DB.find(:organizations, req.org_id) - - if req.include_quotas do - %DescribeResponse{ - status: ok(), - organization: %InternalApi.Organization.Organization{ - org_username: org.api_model.org_username, - name: org.api_model.name, - org_id: org.api_model.org_id, - created_at: %Google.Protobuf.Timestamp{seconds: 1_522_495_543}, - quotas: [] - } - } - else - %DescribeResponse{status: ok(), organization: org.api_model} - end + %DescribeResponse{status: ok(), organization: org.api_model} rescue _ -> %DescribeResponse{status: bad_param()} diff --git a/rbac/ce/lib/internal_api/organization.pb.ex b/rbac/ce/lib/internal_api/organization.pb.ex index dd68f3529..53dca1902 100644 --- a/rbac/ce/lib/internal_api/organization.pb.ex +++ b/rbac/ce/lib/internal_api/organization.pb.ex @@ -46,6 +46,7 @@ defmodule InternalApi.Organization.DescribeRequest do field(:org_id, 1, type: :string, json_name: "orgId") field(:org_username, 2, type: :string, json_name: "orgUsername") field(:include_quotas, 3, type: :bool, json_name: "includeQuotas") + field(:soft_deleted, 4, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeResponse do @@ -63,6 +64,7 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" field(:org_ids, 1, repeated: true, type: :string, json_name: "orgIds") + field(:soft_deleted, 2, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.DescribeManyResponse do @@ -83,6 +85,7 @@ defmodule InternalApi.Organization.ListRequest do field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32, json_name: "pageSize") field(:page_token, 6, type: :string, json_name: "pageToken") + field(:soft_deleted, 7, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Organization.ListResponse do @@ -369,6 +372,14 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string, json_name: "orgId") end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:org_id, 1, type: :string, json_name: "orgId") +end + defmodule InternalApi.Organization.Organization do @moduledoc false @@ -620,6 +631,15 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:org_id, 1, type: :string, json_name: "orgId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false @@ -701,6 +721,8 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/rbac/ce/lib/internal_api/projecthub.pb.ex b/rbac/ce/lib/internal_api/projecthub.pb.ex index c10c5fa6b..639cd791e 100644 --- a/rbac/ce/lib/internal_api/projecthub.pb.ex +++ b/rbac/ce/lib/internal_api/projecthub.pb.ex @@ -39,6 +39,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -391,6 +392,7 @@ defmodule InternalApi.Projecthub.ListRequest do field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string, json_name: "ownerId") field(:repo_url, 4, type: :string, json_name: "repoUrl") + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.ListResponse do @@ -437,6 +439,7 @@ defmodule InternalApi.Projecthub.DescribeRequest do field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeResponse do @@ -455,6 +458,7 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool, json_name: "softDeleted") end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -522,6 +526,23 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false @@ -557,6 +578,7 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -589,6 +611,7 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp, json_name: "createdAt") + field(:public_key, 4, type: :string, json_name: "publicKey") end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -718,6 +741,24 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false @@ -738,6 +779,16 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string, json_name: "orgId") end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + + use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0" + + field(:project_id, 1, type: :string, json_name: "projectId") + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string, json_name: "orgId") +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false @@ -786,6 +837,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -812,6 +865,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/rbac/ce/lib/internal_api/rbac.pb.ex b/rbac/ce/lib/internal_api/rbac.pb.ex index 307ae49a1..81e4eb9e0 100644 --- a/rbac/ce/lib/internal_api/rbac.pb.ex +++ b/rbac/ce/lib/internal_api/rbac.pb.ex @@ -29,6 +29,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do field(:ROLE_BINDING_SOURCE_GITLAB, 4) field(:ROLE_BINDING_SOURCE_SCIM, 5) field(:ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6) + field(:ROLE_BINDING_SOURCE_SAML_JIT, 7) end defmodule InternalApi.RBAC.ListUserPermissionsRequest do diff --git a/repository_hub/lib/internal_api/projecthub.pb.ex b/repository_hub/lib/internal_api/projecthub.pb.ex index 439e409e9..581c393f1 100644 --- a/repository_hub/lib/internal_api/projecthub.pb.ex +++ b/repository_hub/lib/internal_api/projecthub.pb.ex @@ -39,6 +39,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field :TAGS, 1 field :PULL_REQUESTS, 2 field :FORKED_PULL_REQUESTS, 3 + field :DRAFT_PULL_REQUESTS, 4 end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do diff --git a/secrethub/lib/internal_api/organization.pb.ex b/secrethub/lib/internal_api/organization.pb.ex index 3a4d47137..d8daae28a 100644 --- a/secrethub/lib/internal_api/organization.pb.ex +++ b/secrethub/lib/internal_api/organization.pb.ex @@ -32,38 +32,6 @@ defmodule InternalApi.Organization.Member.Role do field :ADMIN, 2 end -defmodule InternalApi.Organization.Quota.Type do - @moduledoc false - use Protobuf, enum: true, syntax: :proto3 - - @type t :: - integer - | :MAX_PEOPLE_IN_ORG - | :MAX_PARALELLISM_IN_ORG - | :MAX_PROJECTS_IN_ORG - | :MAX_PARALLEL_E1_STANDARD_2 - | :MAX_PARALLEL_E1_STANDARD_4 - | :MAX_PARALLEL_E1_STANDARD_8 - | :MAX_PARALLEL_A1_STANDARD_4 - | :MAX_PARALLEL_A1_STANDARD_8 - - field :MAX_PEOPLE_IN_ORG, 0 - - field :MAX_PARALELLISM_IN_ORG, 1 - - field :MAX_PROJECTS_IN_ORG, 7 - - field :MAX_PARALLEL_E1_STANDARD_2, 2 - - field :MAX_PARALLEL_E1_STANDARD_4, 3 - - field :MAX_PARALLEL_E1_STANDARD_8, 4 - - field :MAX_PARALLEL_A1_STANDARD_4, 5 - - field :MAX_PARALLEL_A1_STANDARD_8, 6 -end - defmodule InternalApi.Organization.OrganizationContact.ContactType do @moduledoc false use Protobuf, enum: true, syntax: :proto3 @@ -91,14 +59,16 @@ defmodule InternalApi.Organization.DescribeRequest do @type t :: %__MODULE__{ org_id: String.t(), org_username: String.t(), - include_quotas: boolean + include_quotas: boolean, + soft_deleted: boolean } - defstruct [:org_id, :org_username, :include_quotas] + defstruct [:org_id, :org_username, :include_quotas, :soft_deleted] field :org_id, 1, type: :string field :org_username, 2, type: :string field :include_quotas, 3, type: :bool + field :soft_deleted, 4, type: :bool end defmodule InternalApi.Organization.DescribeResponse do @@ -121,12 +91,14 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - org_ids: [String.t()] + org_ids: [String.t()], + soft_deleted: boolean } - defstruct [:org_ids] + defstruct [:org_ids, :soft_deleted] field :org_ids, 1, repeated: true, type: :string + field :soft_deleted, 2, type: :bool end defmodule InternalApi.Organization.DescribeManyResponse do @@ -151,16 +123,18 @@ defmodule InternalApi.Organization.ListRequest do created_at_gt: Google.Protobuf.Timestamp.t() | nil, order: InternalApi.Organization.ListRequest.Order.t(), page_size: integer, - page_token: String.t() + page_token: String.t(), + soft_deleted: boolean } - defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token] + defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token, :soft_deleted] field :user_id, 2, type: :string field :created_at_gt, 3, type: Google.Protobuf.Timestamp field :order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true field :page_size, 5, type: :int32 field :page_token, 6, type: :string + field :soft_deleted, 7, type: :bool end defmodule InternalApi.Organization.ListResponse do @@ -212,34 +186,6 @@ defmodule InternalApi.Organization.CreateResponse do field :organization, 2, type: InternalApi.Organization.Organization end -defmodule InternalApi.Organization.CreateWithQuotasRequest do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - organization: InternalApi.Organization.Organization.t() | nil, - quotas: [InternalApi.Organization.Quota.t()] - } - - defstruct [:organization, :quotas] - - field :organization, 1, type: InternalApi.Organization.Organization - field :quotas, 2, repeated: true, type: InternalApi.Organization.Quota -end - -defmodule InternalApi.Organization.CreateWithQuotasResponse do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - organization: InternalApi.Organization.Organization.t() | nil - } - - defstruct [:organization] - - field :organization, 1, type: InternalApi.Organization.Organization -end - defmodule InternalApi.Organization.UpdateRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -652,6 +598,19 @@ defmodule InternalApi.Organization.DestroyRequest do field :org_id, 1, type: :string end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t() + } + + defstruct [:org_id] + + field :org_id, 1, type: :string +end + defmodule InternalApi.Organization.Organization do @moduledoc false use Protobuf, syntax: :proto3 @@ -671,7 +630,6 @@ defmodule InternalApi.Organization.Organization do allowed_id_providers: [String.t()], deny_member_workflows: boolean, deny_non_member_workflows: boolean, - quotas: [InternalApi.Organization.Quota.t()], settings: [InternalApi.Organization.OrganizationSetting.t()] } @@ -690,7 +648,6 @@ defmodule InternalApi.Organization.Organization do :allowed_id_providers, :deny_member_workflows, :deny_non_member_workflows, - :quotas, :settings ] @@ -708,7 +665,6 @@ defmodule InternalApi.Organization.Organization do field :allowed_id_providers, 13, repeated: true, type: :string field :deny_member_workflows, 14, type: :bool field :deny_non_member_workflows, 15, type: :bool - field :quotas, 8, repeated: true, type: InternalApi.Organization.Quota field :settings, 16, repeated: true, type: InternalApi.Organization.OrganizationSetting end @@ -767,21 +723,6 @@ defmodule InternalApi.Organization.Member do field :github_uid, 8, type: :string end -defmodule InternalApi.Organization.Quota do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - type: InternalApi.Organization.Quota.Type.t(), - value: non_neg_integer - } - - defstruct [:type, :value] - - field :type, 1, type: InternalApi.Organization.Quota.Type, enum: true - field :value, 2, type: :uint32 -end - defmodule InternalApi.Organization.OrganizationSetting do @moduledoc false use Protobuf, syntax: :proto3 @@ -797,62 +738,6 @@ defmodule InternalApi.Organization.OrganizationSetting do field :value, 2, type: :string end -defmodule InternalApi.Organization.GetQuotasRequest do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - org_id: String.t(), - types: [[InternalApi.Organization.Quota.Type.t()]] - } - - defstruct [:org_id, :types] - - field :org_id, 1, type: :string - field :types, 2, repeated: true, type: InternalApi.Organization.Quota.Type, enum: true -end - -defmodule InternalApi.Organization.GetQuotaResponse do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - quotas: [InternalApi.Organization.Quota.t()] - } - - defstruct [:quotas] - - field :quotas, 1, repeated: true, type: InternalApi.Organization.Quota -end - -defmodule InternalApi.Organization.UpdateQuotasRequest do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - org_id: String.t(), - quotas: [InternalApi.Organization.Quota.t()] - } - - defstruct [:org_id, :quotas] - - field :org_id, 1, type: :string - field :quotas, 2, repeated: true, type: InternalApi.Organization.Quota -end - -defmodule InternalApi.Organization.UpdateQuotasResponse do - @moduledoc false - use Protobuf, syntax: :proto3 - - @type t :: %__MODULE__{ - quotas: [InternalApi.Organization.Quota.t()] - } - - defstruct [:quotas] - - field :quotas, 1, repeated: true, type: InternalApi.Organization.Quota -end - defmodule InternalApi.Organization.RepositoryIntegratorsRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -1169,6 +1054,21 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field :timestamp, 11, type: Google.Protobuf.Timestamp end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil + } + + defstruct [:org_id, :timestamp] + + field :org_id, 1, type: :string + field :timestamp, 2, type: Google.Protobuf.Timestamp +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Organization.OrganizationService" @@ -1189,12 +1089,6 @@ defmodule InternalApi.Organization.OrganizationService.Service do rpc(:Create, InternalApi.Organization.CreateRequest, InternalApi.Organization.CreateResponse) - rpc( - :CreateWithQuotas, - InternalApi.Organization.CreateWithQuotasRequest, - InternalApi.Organization.CreateWithQuotasResponse - ) - rpc(:Update, InternalApi.Organization.UpdateRequest, InternalApi.Organization.UpdateResponse) rpc(:IsValid, InternalApi.Organization.Organization, InternalApi.Organization.IsValidResponse) @@ -1251,20 +1145,10 @@ defmodule InternalApi.Organization.OrganizationService.Service do InternalApi.Organization.ListSuspensionsResponse ) - rpc( - :UpdateQuotas, - InternalApi.Organization.UpdateQuotasRequest, - InternalApi.Organization.UpdateQuotasResponse - ) - - rpc( - :GetQuotas, - InternalApi.Organization.GetQuotasRequest, - InternalApi.Organization.GetQuotaResponse - ) - rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) + rpc( :RepositoryIntegrators, InternalApi.Organization.RepositoryIntegratorsRequest, diff --git a/secrethub/lib/internal_api/projecthub.pb.ex b/secrethub/lib/internal_api/projecthub.pb.ex index 3958703c9..891ac8537 100644 --- a/secrethub/lib/internal_api/projecthub.pb.ex +++ b/secrethub/lib/internal_api/projecthub.pb.ex @@ -49,7 +49,14 @@ end defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do @moduledoc false use Protobuf, enum: true, syntax: :proto3 - @type t :: integer | :BRANCHES | :TAGS | :PULL_REQUESTS | :FORKED_PULL_REQUESTS + + @type t :: + integer + | :BRANCHES + | :TAGS + | :PULL_REQUESTS + | :FORKED_PULL_REQUESTS + | :DRAFT_PULL_REQUESTS field :BRANCHES, 0 @@ -58,6 +65,8 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field :PULL_REQUESTS, 2 field :FORKED_PULL_REQUESTS, 3 + + field :DRAFT_PULL_REQUESTS, 4 end defmodule InternalApi.Projecthub.Project.Spec.Repository.Status.PipelineFile.Level do @@ -615,15 +624,17 @@ defmodule InternalApi.Projecthub.ListRequest do metadata: InternalApi.Projecthub.RequestMeta.t() | nil, pagination: InternalApi.Projecthub.PaginationRequest.t() | nil, owner_id: String.t(), - repo_url: String.t() + repo_url: String.t(), + soft_deleted: boolean } - defstruct [:metadata, :pagination, :owner_id, :repo_url] + defstruct [:metadata, :pagination, :owner_id, :repo_url, :soft_deleted] field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :pagination, 2, type: InternalApi.Projecthub.PaginationRequest field :owner_id, 3, type: :string field :repo_url, 4, type: :string + field :soft_deleted, 5, type: :bool end defmodule InternalApi.Projecthub.ListResponse do @@ -695,15 +706,17 @@ defmodule InternalApi.Projecthub.DescribeRequest do metadata: InternalApi.Projecthub.RequestMeta.t() | nil, id: String.t(), name: String.t(), - detailed: boolean + detailed: boolean, + soft_deleted: boolean } - defstruct [:metadata, :id, :name, :detailed] + defstruct [:metadata, :id, :name, :detailed, :soft_deleted] field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :id, 2, type: :string field :name, 3, type: :string field :detailed, 4, type: :bool + field :soft_deleted, 5, type: :bool end defmodule InternalApi.Projecthub.DescribeResponse do @@ -727,13 +740,15 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do @type t :: %__MODULE__{ metadata: InternalApi.Projecthub.RequestMeta.t() | nil, - ids: [String.t()] + ids: [String.t()], + soft_deleted: boolean } - defstruct [:metadata, :ids] + defstruct [:metadata, :ids, :soft_deleted] field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :ids, 2, repeated: true, type: :string + field :soft_deleted, 3, type: :bool end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -757,13 +772,15 @@ defmodule InternalApi.Projecthub.CreateRequest do @type t :: %__MODULE__{ metadata: InternalApi.Projecthub.RequestMeta.t() | nil, - project: InternalApi.Projecthub.Project.t() | nil + project: InternalApi.Projecthub.Project.t() | nil, + skip_onboarding: boolean } - defstruct [:metadata, :project] + defstruct [:metadata, :project, :skip_onboarding] field :metadata, 1, type: InternalApi.Projecthub.RequestMeta field :project, 2, type: InternalApi.Projecthub.Project + field :skip_onboarding, 3, type: :bool end defmodule InternalApi.Projecthub.CreateResponse do @@ -843,6 +860,34 @@ defmodule InternalApi.Projecthub.DestroyResponse do field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil + } + + defstruct [:metadata] + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -895,14 +940,16 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() | nil + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp + field :public_key, 4, type: :string end defmodule InternalApi.Projecthub.CheckDeployKeyResponse do @@ -942,14 +989,16 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() | nil + created_at: Google.Protobuf.Timestamp.t() | nil, + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field :title, 1, type: :string field :fingerprint, 2, type: :string field :created_at, 3, type: Google.Protobuf.Timestamp + field :public_key, 4, type: :string end defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse do @@ -1156,6 +1205,36 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t() | nil, + id: String.t() + } + + defstruct [:metadata, :id] + + field :metadata, 1, type: InternalApi.Projecthub.RequestMeta + field :id, 2, type: :string +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() | nil, + secret: String.t() + } + + defstruct [:metadata, :secret] + + field :metadata, 1, type: InternalApi.Projecthub.ResponseMeta + field :secret, 2, type: :string +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1190,6 +1269,23 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field :org_id, 3, type: :string end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() | nil, + org_id: String.t() + } + + defstruct [:project_id, :timestamp, :org_id] + + field :project_id, 1, type: :string + field :timestamp, 2, type: Google.Protobuf.Timestamp + field :org_id, 3, type: :string +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1248,6 +1344,8 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) + rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -1274,6 +1372,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/secrethub/lib/internal_api/rbac.pb.ex b/secrethub/lib/internal_api/rbac.pb.ex index 839cc8b47..6961ef17a 100644 --- a/secrethub/lib/internal_api/rbac.pb.ex +++ b/secrethub/lib/internal_api/rbac.pb.ex @@ -33,6 +33,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do | :ROLE_BINDING_SOURCE_GITLAB | :ROLE_BINDING_SOURCE_SCIM | :ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE + | :ROLE_BINDING_SOURCE_SAML_JIT field :ROLE_BINDING_SOURCE_UNSPECIFIED, 0 @@ -47,6 +48,8 @@ defmodule InternalApi.RBAC.RoleBindingSource do field :ROLE_BINDING_SOURCE_SCIM, 5 field :ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6 + + field :ROLE_BINDING_SOURCE_SAML_JIT, 7 end defmodule InternalApi.RBAC.ListUserPermissionsRequest do diff --git a/zebra/lib/protos/internal_api/artifacthub.pb.ex b/zebra/lib/protos/internal_api/artifacthub.pb.ex index c5f149e7a..d952ea7c3 100644 --- a/zebra/lib/protos/internal_api/artifacthub.pb.ex +++ b/zebra/lib/protos/internal_api/artifacthub.pb.ex @@ -175,12 +175,14 @@ defmodule InternalApi.Artifacthub.ListPathRequest do @type t :: %__MODULE__{ artifact_id: String.t(), - path: String.t() + path: String.t(), + unwrap_directories: boolean } - defstruct [:artifact_id, :path] + defstruct [:artifact_id, :path, :unwrap_directories] field(:artifact_id, 1, type: :string) field(:path, 2, type: :string) + field(:unwrap_directories, 3, type: :bool) end defmodule InternalApi.Artifacthub.ListPathResponse do diff --git a/zebra/lib/protos/internal_api/organization.pb.ex b/zebra/lib/protos/internal_api/organization.pb.ex index 9c6c07d41..741f05b53 100644 --- a/zebra/lib/protos/internal_api/organization.pb.ex +++ b/zebra/lib/protos/internal_api/organization.pb.ex @@ -5,13 +5,15 @@ defmodule InternalApi.Organization.DescribeRequest do @type t :: %__MODULE__{ org_id: String.t(), org_username: String.t(), - include_quotas: boolean + include_quotas: boolean, + soft_deleted: boolean } - defstruct [:org_id, :org_username, :include_quotas] + defstruct [:org_id, :org_username, :include_quotas, :soft_deleted] field(:org_id, 1, type: :string) field(:org_username, 2, type: :string) field(:include_quotas, 3, type: :bool) + field(:soft_deleted, 4, type: :bool) end defmodule InternalApi.Organization.DescribeResponse do @@ -33,11 +35,13 @@ defmodule InternalApi.Organization.DescribeManyRequest do use Protobuf, syntax: :proto3 @type t :: %__MODULE__{ - org_ids: [String.t()] + org_ids: [String.t()], + soft_deleted: boolean } - defstruct [:org_ids] + defstruct [:org_ids, :soft_deleted] field(:org_ids, 1, repeated: true, type: :string) + field(:soft_deleted, 2, type: :bool) end defmodule InternalApi.Organization.DescribeManyResponse do @@ -61,15 +65,17 @@ defmodule InternalApi.Organization.ListRequest do created_at_gt: Google.Protobuf.Timestamp.t(), order: integer, page_size: integer, - page_token: String.t() + page_token: String.t(), + soft_deleted: boolean } - defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token] + defstruct [:user_id, :created_at_gt, :order, :page_size, :page_token, :soft_deleted] field(:user_id, 2, type: :string) field(:created_at_gt, 3, type: Google.Protobuf.Timestamp) field(:order, 4, type: InternalApi.Organization.ListRequest.Order, enum: true) field(:page_size, 5, type: :int32) field(:page_token, 6, type: :string) + field(:soft_deleted, 7, type: :bool) end defmodule InternalApi.Organization.ListRequest.Order do @@ -512,6 +518,18 @@ defmodule InternalApi.Organization.DestroyRequest do field(:org_id, 1, type: :string) end +defmodule InternalApi.Organization.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t() + } + defstruct [:org_id] + + field(:org_id, 1, type: :string) +end + defmodule InternalApi.Organization.Organization do @moduledoc false use Protobuf, syntax: :proto3 @@ -962,6 +980,20 @@ defmodule InternalApi.Organization.OrganizationDailyUpdate do field(:timestamp, 11, type: Google.Protobuf.Timestamp) end +defmodule InternalApi.Organization.OrganizationRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + org_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t() + } + defstruct [:org_id, :timestamp] + + field(:org_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.Organization.OrganizationService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Organization.OrganizationService" @@ -1034,6 +1066,7 @@ defmodule InternalApi.Organization.OrganizationService.Service do ) rpc(:Destroy, InternalApi.Organization.DestroyRequest, Google.Protobuf.Empty) + rpc(:Restore, InternalApi.Organization.RestoreRequest, Google.Protobuf.Empty) rpc( :RepositoryIntegrators, diff --git a/zebra/lib/protos/internal_api/projecthub.pb.ex b/zebra/lib/protos/internal_api/projecthub.pb.ex index 891a46e76..8cb1ba837 100644 --- a/zebra/lib/protos/internal_api/projecthub.pb.ex +++ b/zebra/lib/protos/internal_api/projecthub.pb.ex @@ -332,6 +332,7 @@ defmodule InternalApi.Projecthub.Project.Spec.Repository.RunType do field(:TAGS, 1) field(:PULL_REQUESTS, 2) field(:FORKED_PULL_REQUESTS, 3) + field(:DRAFT_PULL_REQUESTS, 4) end defmodule InternalApi.Projecthub.Project.Spec.Scheduler do @@ -554,14 +555,16 @@ defmodule InternalApi.Projecthub.ListRequest do metadata: InternalApi.Projecthub.RequestMeta.t(), pagination: InternalApi.Projecthub.PaginationRequest.t(), owner_id: String.t(), - repo_url: String.t() + repo_url: String.t(), + soft_deleted: boolean } - defstruct [:metadata, :pagination, :owner_id, :repo_url] + defstruct [:metadata, :pagination, :owner_id, :repo_url, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:pagination, 2, type: InternalApi.Projecthub.PaginationRequest) field(:owner_id, 3, type: :string) field(:repo_url, 4, type: :string) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.ListResponse do @@ -638,14 +641,16 @@ defmodule InternalApi.Projecthub.DescribeRequest do metadata: InternalApi.Projecthub.RequestMeta.t(), id: String.t(), name: String.t(), - detailed: boolean + detailed: boolean, + soft_deleted: boolean } - defstruct [:metadata, :id, :name, :detailed] + defstruct [:metadata, :id, :name, :detailed, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:id, 2, type: :string) field(:name, 3, type: :string) field(:detailed, 4, type: :bool) + field(:soft_deleted, 5, type: :bool) end defmodule InternalApi.Projecthub.DescribeResponse do @@ -668,12 +673,14 @@ defmodule InternalApi.Projecthub.DescribeManyRequest do @type t :: %__MODULE__{ metadata: InternalApi.Projecthub.RequestMeta.t(), - ids: [String.t()] + ids: [String.t()], + soft_deleted: boolean } - defstruct [:metadata, :ids] + defstruct [:metadata, :ids, :soft_deleted] field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) field(:ids, 2, repeated: true, type: :string) + field(:soft_deleted, 3, type: :bool) end defmodule InternalApi.Projecthub.DescribeManyResponse do @@ -778,6 +785,32 @@ defmodule InternalApi.Projecthub.DestroyResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RestoreRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RestoreResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t() + } + defstruct [:metadata] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) +end + defmodule InternalApi.Projecthub.UsersRequest do @moduledoc false use Protobuf, syntax: :proto3 @@ -841,13 +874,15 @@ defmodule InternalApi.Projecthub.CheckDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.RegenerateDeployKeyRequest do @@ -885,13 +920,15 @@ defmodule InternalApi.Projecthub.RegenerateDeployKeyResponse.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Projecthub.CheckWebhookRequest do @@ -1070,6 +1107,34 @@ defmodule InternalApi.Projecthub.FinishOnboardingResponse do field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) end +defmodule InternalApi.Projecthub.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.RequestMeta.t(), + id: String.t() + } + defstruct [:metadata, :id] + + field(:metadata, 1, type: InternalApi.Projecthub.RequestMeta) + field(:id, 2, type: :string) +end + +defmodule InternalApi.Projecthub.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + metadata: InternalApi.Projecthub.ResponseMeta.t(), + secret: String.t() + } + defstruct [:metadata, :secret] + + field(:metadata, 1, type: InternalApi.Projecthub.ResponseMeta) + field(:secret, 2, type: :string) +end + defmodule InternalApi.Projecthub.ProjectCreated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1102,6 +1167,22 @@ defmodule InternalApi.Projecthub.ProjectDeleted do field(:org_id, 3, type: :string) end +defmodule InternalApi.Projecthub.ProjectRestored do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + timestamp: Google.Protobuf.Timestamp.t(), + org_id: String.t() + } + defstruct [:project_id, :timestamp, :org_id] + + field(:project_id, 1, type: :string) + field(:timestamp, 2, type: Google.Protobuf.Timestamp) + field(:org_id, 3, type: :string) +end + defmodule InternalApi.Projecthub.ProjectUpdated do @moduledoc false use Protobuf, syntax: :proto3 @@ -1155,6 +1236,7 @@ defmodule InternalApi.Projecthub.ProjectService.Service do rpc(:Create, InternalApi.Projecthub.CreateRequest, InternalApi.Projecthub.CreateResponse) rpc(:Update, InternalApi.Projecthub.UpdateRequest, InternalApi.Projecthub.UpdateResponse) rpc(:Destroy, InternalApi.Projecthub.DestroyRequest, InternalApi.Projecthub.DestroyResponse) + rpc(:Restore, InternalApi.Projecthub.RestoreRequest, InternalApi.Projecthub.RestoreResponse) rpc(:Users, InternalApi.Projecthub.UsersRequest, InternalApi.Projecthub.UsersResponse) rpc( @@ -1181,6 +1263,12 @@ defmodule InternalApi.Projecthub.ProjectService.Service do InternalApi.Projecthub.RegenerateWebhookResponse ) + rpc( + :RegenerateWebhookSecret, + InternalApi.Projecthub.RegenerateWebhookSecretRequest, + InternalApi.Projecthub.RegenerateWebhookSecretResponse + ) + rpc( :ChangeProjectOwner, InternalApi.Projecthub.ChangeProjectOwnerRequest, diff --git a/zebra/lib/protos/internal_api/rbac.pb.ex b/zebra/lib/protos/internal_api/rbac.pb.ex index a261b94f0..29fb21c76 100644 --- a/zebra/lib/protos/internal_api/rbac.pb.ex +++ b/zebra/lib/protos/internal_api/rbac.pb.ex @@ -536,6 +536,7 @@ defmodule InternalApi.RBAC.RoleBindingSource do field(:ROLE_BINDING_SOURCE_GITLAB, 4) field(:ROLE_BINDING_SOURCE_SCIM, 5) field(:ROLE_BINDING_SOURCE_INHERITED_FROM_ORG_ROLE, 6) + field(:ROLE_BINDING_SOURCE_SAML_JIT, 7) end defmodule InternalApi.RBAC.RBAC.Service do diff --git a/zebra/lib/protos/internal_api/repo_proxy.pb.ex b/zebra/lib/protos/internal_api/repo_proxy.pb.ex index ec7b7f54d..0f0f6c774 100644 --- a/zebra/lib/protos/internal_api/repo_proxy.pb.ex +++ b/zebra/lib/protos/internal_api/repo_proxy.pb.ex @@ -338,6 +338,22 @@ defmodule InternalApi.RepoProxy.CreateBlankResponse.Repo do field(:repository_id, 5, type: :string) end +defmodule InternalApi.RepoProxy.PullRequestUnmergeable do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + project_id: String.t(), + branch_name: String.t(), + timestamp: Google.Protobuf.Timestamp.t() + } + defstruct [:project_id, :branch_name, :timestamp] + + field(:project_id, 1, type: :string) + field(:branch_name, 2, type: :string) + field(:timestamp, 3, type: Google.Protobuf.Timestamp) +end + defmodule InternalApi.RepoProxy.RepoProxyService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.RepoProxy.RepoProxyService" diff --git a/zebra/lib/protos/internal_api/repository.pb.ex b/zebra/lib/protos/internal_api/repository.pb.ex index aca0b60b6..06aa6b023 100644 --- a/zebra/lib/protos/internal_api/repository.pb.ex +++ b/zebra/lib/protos/internal_api/repository.pb.ex @@ -51,13 +51,15 @@ defmodule InternalApi.Repository.DeployKey do @type t :: %__MODULE__{ title: String.t(), fingerprint: String.t(), - created_at: Google.Protobuf.Timestamp.t() + created_at: Google.Protobuf.Timestamp.t(), + public_key: String.t() } - defstruct [:title, :fingerprint, :created_at] + defstruct [:title, :fingerprint, :created_at, :public_key] field(:title, 1, type: :string) field(:fingerprint, 2, type: :string) field(:created_at, 3, type: Google.Protobuf.Timestamp) + field(:public_key, 4, type: :string) end defmodule InternalApi.Repository.DescribeRemoteRepositoryRequest do @@ -460,7 +462,8 @@ defmodule InternalApi.Repository.Repository do commit_status: InternalApi.Projecthub.Project.Spec.Repository.Status.t(), whitelist: InternalApi.Projecthub.Project.Spec.Repository.Whitelist.t(), hook_id: String.t(), - default_branch: String.t() + default_branch: String.t(), + connected: boolean } defstruct [ :id, @@ -475,7 +478,8 @@ defmodule InternalApi.Repository.Repository do :commit_status, :whitelist, :hook_id, - :default_branch + :default_branch, + :connected ] field(:id, 1, type: :string) @@ -491,6 +495,7 @@ defmodule InternalApi.Repository.Repository do field(:whitelist, 11, type: InternalApi.Projecthub.Project.Spec.Repository.Whitelist) field(:hook_id, 12, type: :string) field(:default_branch, 13, type: :string) + field(:connected, 14, type: :bool) end defmodule InternalApi.Repository.RemoteRepository do @@ -903,6 +908,54 @@ defmodule InternalApi.Repository.VerifyWebhookSignatureResponse do field(:valid, 1, type: :bool) end +defmodule InternalApi.Repository.ClearExternalDataRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + defstruct [:repository_id] + + field(:repository_id, 1, type: :string) +end + +defmodule InternalApi.Repository.ClearExternalDataResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository: InternalApi.Repository.Repository.t() + } + defstruct [:repository] + + field(:repository, 1, type: InternalApi.Repository.Repository) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretRequest do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + repository_id: String.t() + } + defstruct [:repository_id] + + field(:repository_id, 1, type: :string) +end + +defmodule InternalApi.Repository.RegenerateWebhookSecretResponse do + @moduledoc false + use Protobuf, syntax: :proto3 + + @type t :: %__MODULE__{ + secret: String.t() + } + defstruct [:secret] + + field(:secret, 1, type: :string) +end + defmodule InternalApi.Repository.RepositoryService.Service do @moduledoc false use GRPC.Service, name: "InternalApi.Repository.RepositoryService" @@ -997,6 +1050,18 @@ defmodule InternalApi.Repository.RepositoryService.Service do InternalApi.Repository.VerifyWebhookSignatureRequest, InternalApi.Repository.VerifyWebhookSignatureResponse ) + + rpc( + :ClearExternalData, + InternalApi.Repository.ClearExternalDataRequest, + InternalApi.Repository.ClearExternalDataResponse + ) + + rpc( + :RegenerateWebhookSecret, + InternalApi.Repository.RegenerateWebhookSecretRequest, + InternalApi.Repository.RegenerateWebhookSecretResponse + ) end defmodule InternalApi.Repository.RepositoryService.Stub do